Fenster sieht man nicht
-
Hi Leute,
hab grad mit WinApi angefangen und schon mein erstes Problem.Wenn ich mein Fenster mit WNDCLASSEX und RegisterClassEx erstelle wir mein Programm ohne Probleme kompieliert aber das Fenster wird nicht angezeigt.
Wenn ich dasselbe mit WNDCLASS und RegisterClass mache wird das Fenster zwar angezeigt aber ich kann nix damit machen. D.h. schliesen, maximieren, verschieben, usw. klappt nicht, als obs hängen geblieben ist.
Wo liegt eigentlch der unterschied zwischen den beiden?
Ich benutze V C++ 2005 express und habe das PSDK installiert und in VS eingebunden,
BS: WinXP HomeKann mir jemand helfen?
-
Dein Code, bitte.
-
Jop, siehe WebFritzi
und mal BTW: Man erstellt ein Fenster eigentlich mit CreateWindow(Ex) und mit RegisterClass(Ex) registriert man 'lediglich' die Fensterklasse; wie du damit ein Fenster erstellt hast, ist mir ... *oHo*

-
Hallo toudy,
so sollte es ungefähr aussehen:
HWND hwnd = NULL; WNDCLASSEX WndClass; MSG Msg; WndClass.cbSize = sizeof(WNDCLASSEX); WndClass.style = 0; WndClass.lpfnWndProc = WndProc; WndClass.cbClsExtra = 0; WndClass.cbWndExtra = 0; WndClass.hInstance = hInstance; WndClass.hIcon = LoadIcon(NULL,IDI_APPLICATION); WndClass.hCursor = LoadCursor(NULL,IDC_ARROW); WndClass.hbrBackground = (HBRUSH)(COLOR_WINDOW); WndClass.lpszMenuName = "MAINMENU"; WndClass.lpszClassName = "Klassenname"; WndClass.hIconSm = WndClass.hIcon; if(!RegisterClassEx(&WndClass)) { MessageBox(NULL,"Fehler RegisterClassEx","Fehler",MB_OK); return 0; } hwnd = CreateWindowEx( WS_EX_CLIENTEDGE, "Klassenname", PROG_NAME, DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU, 0, 0, 450, 300, NULL, NULL, hInstance, NULL ); if(hwnd == NULL) { MessageBox(NULL,"Fehler CreateWindowEx","Fehler",MB_OK); return 0; } ShowWindow(hwnd,SW_SHOWNORMAL); UpdateWindow(hwnd); while(GetMessage(&Msg, NULL, 0, 0)) { TranslateMessage(&Msg); DispatchMessage(&Msg); } return Msg.wParam; }MfG
yogle
-
Hi yogle,
hab mal deinen Code übernommen und genau das selbe. Das Programm wird einwandfrei kompiliert, aber das Fenster erscheint nicht.Es kommt ne Warnung bei mir, dass bei "return msg.wParam;" möglicherweise ein Datenverlust auftreten könnte, kann das daran liegen?
Wnn ich diese Zeile jedoch auskommentiere, wird das programm auch Fehlerfrei kompiliert.
wo liegt denn eigentlich der Unerschied zwischen WNDCLASSEX und WNDCLASS?
gruss toudy.
-
toudy schrieb:
wo liegt denn eigentlich der Unerschied zwischen WNDCLASSEX und WNDCLASS?
Dass man bei einer WNDCLASSEX im gegensatz zu einer WNDCLASS eine kleines Icon für die Klasse angeben kann.
Greetz, Swordfish
-
toudy schrieb:
Es kommt ne Warnung bei mir, dass bei "return msg.wParam;" möglicherweise ein Datenverlust auftreten könnte, kann das daran liegen?
poste doch mal dein compiler log
-
int cast ...
Geb mal WS_VISIBLE als Style beim erstellen mit an...
Aja... und SW_SHOWNORMAL sollte normal durch nCmdShow ersetzt werden
