Wie gehts jetzt weiter??
-
Ich hab jetzt nen code, mitdem ich ein DX8 - Fenster öffne:
//////////////////// Main.cpp //////////////////// #include <windows.h> #include <dx\ddraw.h> #include "error.hpp" //Für die error-funktionen /////////////////////////// LPDIRECTDRAW7 DirectDraw; // Pointer auf das DirectDraw-Object HRESULT ddrval; // Wichtig für unsere Rückgabewerte // Die Nachrichtenverarbeitungsschleife. // Alles was mit unserem Fenster geschieht kann hier verarbeitet werden. LRESULT CALLBACK WindowProc (HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) { switch (message) { // Wenn die Nachricht kommt das das Fenster geschlossen werden soll landen wir hier. case WM_DESTROY: { // DirectDraw zurücksetzen. DirectDraw->Release(); DirectDraw = NULL; PostQuitMessage(0); // Schließt das Fenster return(0); } break; // Ansonsten passiert nichts. default: break; } return (DefWindowProc(hwnd,message,wparam,lparam)); } int WINAPI WinMain(HINSTANCE hinst, HINSTANCE hprevinst, LPSTR lpcmdline, int ncmdshow) { WNDCLASSEX winclass; // Die Fensterstruktur HWND hwnd; MSG message; const char szclassname[]="Klassenname"; // Wir füllen die Fensterstruktur mit Informationen winclass.cbSize = sizeof(WNDCLASSEX); winclass.style = CS_HREDRAW | CS_VREDRAW; winclass.lpfnWndProc = WindowProc; winclass.cbClsExtra = 0; winclass.cbWndExtra = 0; winclass.hInstance = hinst; winclass.hIcon = LoadIcon(NULL,IDI_APPLICATION); winclass.hIconSm = LoadIcon(NULL, IDI_APPLICATION); //Wichtig, sonst läuft der ganze scheiß nicht ;) winclass.hCursor = LoadCursor(NULL,IDC_ARROW); winclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); winclass.lpszMenuName = NULL; winclass.lpszClassName = szclassname; //Fenster registrieren if(!RegisterClassEx (&winclass)) { //Den letzten Fehler an error übergeben error(GetLastError(), __LINE__, "Fensterklasse konnte nicht registriert werden.", "RegisterClassEx-Error"); return 0; } hwnd = CreateWindowEx (/*NULL*/WS_EX_APPWINDOW, szclassname, "Titelleiste", WS_OVERLAPPEDWINDOW | WS_VISIBLE, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hinst, NULL); ShowWindow(hwnd,ncmdshow); UpdateWindow(hwnd); ddrval = DirectDrawCreateEx(NULL, (VOID**)&DirectDraw, IID_IDirectDraw7, NULL); DDSCL_FULLSCREEN für eine ddrval = DirectDraw->SetCooperativeLevel (hwnd, DDSCL_NORMAL | DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN); ddrval = DirectDraw->SetDisplayMode (800,600,16, 0, 0); while (GetMessage(&message,NULL,0,0)) { TranslateMessage(&message); DispatchMessage(&message); } return message.wParam ; }
Wie muss ich jetzt vorgehen, wenn ich ein Bitmap (16*16) einfügen möchte??
(Muss nicht unbedingt nen code sein)Kann ich jetzt einfach ne ein Bitmap einfügen, oder muss ich vorher noch irgendwas erstellen (z.B. eine fläche, auf der man Bitmaps einfügen kann) ??
-
In der Window Proc Message WM_PAINT abfangen und dann kanns los gehen
-
ok, danke