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


Anmelden zum Antworten