EditWindow
-
Ich habe gerade nach dem Tutorial von Sterminio Productions ein EditWindow erstellen wollen, habe aber eigene Änderungen vorgenommen und evtl. Dinge übersehen und deshalb erstellt sich bei mir jetzt gar kein EditWindow, aber es wird mir auch kein Fehler angezeigt.
Mein Code:
// main_cpp // #include <Windows.h> #include <iostream> int width = 640; int height = 420; LRESULT CALLBACK WndProc (HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); bool InitWndClassEx ( WNDCLASSEX *WndClassEx, HINSTANCE hInstance, const char szClassName[] = "Hallo"); const char szClassName[] = "Hallo"; char szTitle[] = "1.Programm Grafic3 Silent1297 2011 ©"; HWND hWndParent; //legt die Eigenschaften des ParentWindows fest. int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR szCmdLine, int iCmdShow) { WNDCLASSEX WndClassEx; // legt die Grundeigenschaften für das Fenster fest. MSG msg; //darin werden die Daten gespeichert. HINSTANCE hChildInst = NULL; // Registrierung // InitWndClassEx ( &WndClassEx, hInstance, szClassName); // Fenster Erstellen // hWndParent = CreateWindowEx (NULL, // beeinhaltet die Folgenden Eigenschaften und die Eigenschaften aus WndClassEx szClassName, //hierüber werden die Eigenschaften aus WndClassEx. eingebunden szTitle, WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX, //Fenster (Minimierungsbutton..... 300, //Abstand-Oben 600, //Abstand-Links width, // Breite height, // Höhe NULL, NULL, hInstance, NULL); if ( hWndParent == NULL ) {MessageBox ( NULL, "Create Window failed", "Error", MB_OK); return false; } { int cx = GetSystemMetrics(SM_CXSCREEN); //cx = desktopbreite ermitteln int cy = GetSystemMetrics(SM_CYSCREEN);//cx = desktophöhe ermitteln int px = (cx - width) / 2; //AbstanddesFensters von links errechnen int py = (cy - height) / 2; //AbstanddesFensters von oben errechnen MoveWindow( hWndParent, px, py, width, height, true); } ShowWindow( hWndParent, iCmdShow); UpdateWindow (hWndParent); while( GetMessage ( &msg, hWndParent, NULL, NULL) > NULL) // -1 = Fehler | 0 // > 0 { TranslateMessage( &msg ); // wird in Character-Message übersetzt DispatchMessage ( &msg ); // wird verschickt an die Callback Funktion }; // WINDOW-PROCEDUR(Einleitungsteil) -> WNDCLASSEX(Registrierung) -> HWND(Fenstereinstellungenfestlegen) -> MESSAGELOOP(Messages übersetzen und an die CALLBACK-Funktion weiterverschicken) return 0; } HWND hWndEdit; HINSTANCE hInstEdit; LRESULT CALLBACK WndProc (HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) //Gehirn des eigentlichen Windows, Verarbeitung von Messages... { //Jede Message hat 2 Informationen ( wParam und lParam) switch (msg) { case WM_CREATE: hWndEdit = CreateWindow ( // beeinhaltet die Folgenden Eigenschaften und die Eigenschaften aus WndClassEx "Edit", //hierüber werden die Eigenschaften aus WndClassEx. eingebunden "EditWindow", WS_OVERLAPPEDWINDOW | WS_CHILD |WS_VISIBLE, //Fenster (Minimierungsbutton..... CW_USEDEFAULT, //Abstand-Oben CW_USEDEFAULT, //Abstand-Links CW_USEDEFAULT, // Breite CW_USEDEFAULT, // Höhe hWndParent, NULL, hInstEdit, NULL); break; case WM_DESTROY: //Fenster Ende (Wenn auf das X-geklickt wird if(hWnd == hWndParent) { PostQuitMessage(0); } break; default: return DefWindowProc ( hWnd, msg, wParam, lParam); } return 0; } bool InitWndClassEx ( WNDCLASSEX *WndClassEx , HINSTANCE hInstance, const char *szClassName) //Funktion mit Defaultwerten für zB ChildWindows { WndClassEx->cbSize = sizeof( *WndClassEx); WndClassEx->style = NULL; WndClassEx->lpfnWndProc = (WNDPROC)WndProc; // hWnd -> CreateWindow (szClassName ) -> WndClass. WndClassEx->cbClsExtra = NULL; WndClassEx->cbWndExtra = NULL; WndClassEx->hInstance = hInstance; WndClassEx->hIcon = LoadIcon( NULL, IDI_WARNING); //Icon WndClassEx->hCursor = LoadCursor( NULL,IDC_ARROW); //Cursor WndClassEx->hbrBackground = (HBRUSH) GetStockObject ( WHITE_BRUSH) ; //Fensterfarbe WndClassEx->lpszMenuName = NULL; WndClassEx->lpszClassName = szClassName; // C-String WndClassEx->hIconSm = LoadIcon (NULL, IDI_APPLICATION); if ( !RegisterClassEx ( WndClassEx )) {MessageBox ( NULL, "Register Class failed", "Error", MB_OK); return false; } }Sieht jemand woran es liegt ?
Gruß
silent12