PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem beim erstellen von Window


andi0310
2009-04-19, 16:17:11
Hallo alle zusammen.

Ich habe folgendes Problem,
CreateWindow gibt immer NULL zurück.

LRESULT CALLBACK WindowProc(HWND hwnd,unsigned uMsg,WPARAM wParam,LPARAM lParam)
{
switch(uMsg)
{
case WM_PAINT:
break;
default:
DefWindowProc(hwnd,uMsg,wParam,lParam);
}
return 0;
}

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR CmdLine,int nShowCmd)
{
HWND WinHwnd;
MSG msg;
...
...
WNDCLASSEX wndcl={sizeof(WNDCLASSEX),CS_CLASSDC,WindowProc,0,0,hInstance,LoadIcon(hInstance ,MAKEINTRESOURCE(IDI_ICON1)),NULL,NULL,NULL,"3DO Tech",NULL};

if(!RegisterClassEx(&wndcl))
{
_3DOT_LogWr("Fenster Class registrieren fehlgeschlagen !",1);
delete _3DOT_Engine;
return 0;
}
WinHwnd=CreateWindow("3DO Tech",
"Hallo",
WS_VISIBLE|WS_OVERLAPPEDWINDOW,
0,0,
800,
600,
NULL,NULL,
hInstance,
NULL);
if(!WinHwnd)
{
_3DOT_LogWr("Fenster kann nicht erstellt werden !",1);
delete _3DOT_Engine;
return 0;
}

WinHwnd wird immer nur mit NULL zurückgegeben.
Bin am verzweifeln.

Danke !

Gast
2009-04-19, 16:36:24
Du darfst in der Window Function nicht grundsätzlich 0 zurückgeben, sonst wird bei der Nachricht WM_NCCREATE die Erstellung abgebrochen (genau das passiert bei dir). Versuche es mal hiermit:


LRESULT CALLBACK WindowProc(HWND hwnd,unsigned uMsg,WPARAM wParam,LPARAM lParam)
{
switch(uMsg)
{
// case WM_PAINT:
// break;
default:
return DefWindowProc(hwnd,uMsg,wParam,lParam);
}
}

Immer die geforderten Rückgabewerte beachten.

andi0310
2009-04-19, 16:56:04
Danke.
Genau das war es.

Was so eine kleinigkeit einem Kopfzerbrechen bereiten kann.