Fenster kann nicht erstellt werden



  • Hi,
    es handelt sich um folgendes, ich versuche ein Fenster zu erstellen,
    ich kann es ohne fehler Kompilieren und Linken und zur Laufzeit stürtzt es auch nicht nicht ab, aber ich bekomme die Meldung "Fensterklasse konnte nicht registriert werden" & "Fenster konnte nicht erfolgreich erstellt werden".
    Ich habe schon alles mögliche ausprobiert, aber es passiert nichts. 😞
    ich benutze Dev C++ 4.9.9.2

    Hier ist der Code

    tcWindow *tcWin32_System::tcCreateWindow(const char *title, int Width, int Height,
                                             int Left, int Top, int Bpp, bool bFullscreen)
    {
        tcWindow *pWindow = NULL;
        WNDCLASSEX WindowClass;
        HINSTANCE hInstance;
        DWORD dwStyle;
    
        //Fenster-Instanz erstellen
        pWindow = new tcWindow;
    
        //Werte setzen
        pWindow->title       = (char*)title;
        pWindow->Width       = Width;
        pWindow->Height      = Height;
        pWindow->Left        = Left;
        pWindow->Top         = Top;
        pWindow->Bpp         = Bpp;
        pWindow->bFullscreen = bFullscreen;
    
        //Instanz holen
        hInstance = GetModuleHandle(NULL);
    
        //Fensterklasse zurücksetzen
        ZeroMemory(&WindowClass, sizeof(WNDCLASSEX));
    
        //Fensterklasse erstellen
        WindowClass.cbSize        = sizeof(WNDCLASSEX);
        WindowClass.style         = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
        WindowClass.lpfnWndProc   = (WNDPROC)WndProc;
        WindowClass.cbClsExtra    = 0;
    
        WindowClass.cbWndExtra    = 0;
        WindowClass.hInstance     = hInstance;
        WindowClass.hIcon         = LoadIcon(NULL, IDI_WINLOGO);
        WindowClass.hCursor       = LoadCursor(NULL, IDC_ARROW);
        WindowClass.hbrBackground = NULL;
        WindowClass.lpszMenuName  = NULL;
        WindowClass.lpszClassName = "ToxiCore-Window";
        WindowClass.hIconSm       = NULL;
    
        //Fensterklasse registrieren
        if (!RegisterClassEx(&WindowClass))
        {
            cout << "Fensterklase wurde registriert" << endl;
        }
        else
        {
            cout << "Fensterklasse konnte nicht registriert werden" << endl;
        }
    
        if (pWindow->bFullscreen == true)
        {
            //Der Style für den Vollbildmodus
            dwStyle = WS_POPUP;
        }
        else
        {
            //Der Style für den Fenstermodus
            dwStyle = WS_OVERLAPPEDWINDOW;
        }
    
        //Fenster erstellen
        m_hWnd = CreateWindowEx(NULL, "ToxiCore-Window", pWindow->title,
                                dwStyle, pWindow->Left, pWindow->Top,
                                pWindow->Width, pWindow->Height,
                                NULL, NULL, hInstance, NULL);
    
        //Überprüfen
        if (m_hWnd == NULL)
        {
            cout << "Fenster konnte nicht erfolgreich erstellt werden" << endl;
            tcDestroyWindow(pWindow);
        }
        else
        {
            cout << "Fenster wurde erfolgreich erstellt" << endl;
        }
    
        //Fenster instanz speichern
        SetWindowLong(m_hWnd, GWL_USERDATA, (long)this);
    
        ShowWindow(m_hWnd, SW_SHOW);
        SetFocus(m_hWnd);
        UpdateWindow(m_hWnd);
    
        return pWindow;
    }
    

    [EDIT]Nachrichtenschleife wurde entfernt[/EDIT]

    Wo ist da der Fehler?? 😕



  • Poste nicht soviel sinnlosen Code. Wenn die Fensterklasse nicht registriert werden kann, dann zeig nur den Code wo du die Fensterklasse registrierst. Was sagt GetLastError?



  • Was sagt GetLastError?

    GetlastError() = 2



  • mach ein beispiel ohne die klasse drumherum das sich kompilieren lässt.



  • Entfern mal das Ausrufezeichen vor RegisterClassEx(&WindowClass)...

    Walter


Anmelden zum Antworten