du hast vergessen ShowWindow() und UpdateWindow aufzurufen:
|
Quellcode
|
1
2
|
ShowWindow(g_hWnd, SW_SHOW);
UpdateWindow(g_hwdn);
|
Wenn man WS_VISIBLE benutzt brauch man diese Funktionen nicht aufrufen.
Hast du WS_OVERLAPPEDWINDOW zu WS_VISIBLE dazugepackt? Sonst weis Windows nicht wie das Fenster ausehen soll und was für Grundfunktionen das Fenster haben soll.
Ich hab mir auch noch mal deine Fensterfunktion angesehen. Du hast vergessen di DefWindowProc Funktion aufzurufen. Ganz böse ;D
Hier mal die Änderungen. Mit denen sollte es klappen.
a) CreateWindow Funktion:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
|
g_hWindow = CreateWindowEx( NULL,
"WinClass01",
"DirectX9",
WS_VISIBLE | WS_OVERLAPPEDWINDOW,
10,10,
200,200,
NULL,
NULL,
hInstance,
NULL );
|
b) Fensterfunktion:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
LRESULT CALLBACK WindowProc2(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
{
PAINTSTRUCT ps; // used in WM_PAINT
HDC hdc; // handle to a device context
switch(msg)
{
case WM_CREATE: {
return(0);
}
break;
case WM_PAINT: {
hdc = BeginPaint(hwnd,&ps);
EndPaint(hwnd,&ps);
return(0);
}
break;
case WM_DESTROY: {
PostQuitMessage(0);
return(0);
}
break;
default: break; // kein break aufrufen, sondern DefWindowProc
return DefWindowProc(hwnd, msg, wparam, lparam);
}
return 0; // Dummy, sonst meckert der Compiler :)
}
|