Fenster wird nicht erstellt



  • Moin zusammen

    Also ich hoffe ihr könnt mir bei meinem Problem helfen, ich bin mir sicher das es ein ziemlich Simpler Fehler is, aber ich finde den Bock einfach ned. Also der Code soll einfach ein Fenster erstellen, aber er erstellt mir den Windows Handel ned und Beendet das Programm mit dem Code 0. Naja seht am besten selbst ma.

    #include <windows.h>
    #include <iostream>
    
    using namespace std;
    
    const char myAppName [] = "SimpleWindow";
    LRESULT CALLBACK MsgProc(HWND, UINT, WPARAM, LPARAM);
    
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){
    
    	WNDCLASSEX wc;
    	MSG Message;
    	HWND hWnd;
    
    	ZeroMemory(&wc, sizeof(WNDCLASSEX));
    
    	wc.cbSize = sizeof(WNDCLASSEX);
    	wc.style = CS_VREDRAW | CS_HREDRAW |CS_OWNDC | CS_DBLCLKS;
    	wc.lpfnWndProc = MsgProc;
    	wc.cbClsExtra = 0;
    	wc.cbWndExtra = 0;
    	wc.hInstance = hInstance;
    	wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    	wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    	wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
    	wc.lpszMenuName = NULL;
    	wc.lpszClassName = myAppName;
    
    	hWnd = CreateWindow( myAppName, "Direct 3D Tutorial 01: Create Device", WS_OVERLAPPEDWINDOW | WS_VISIBLE,
    							 CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT, NULL,NULL, wc.hInstance, NULL);
    
    	if(hWnd == NULL){
    		return 0;
    	}
    
    	ShowWindow(hWnd, nCmdShow);
    	UpdateWindow(hWnd);
    
    	ZeroMemory(&Message, sizeof(MSG));
    
    	while(GetMessage(&Message, NULL, 0,0)){
    
    		TranslateMessage(&Message);
    		DispatchMessage(&Message);
    	}
    
    	return 0;
    }
    LRESULT CALLBACK MsgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam){
    
    	switch(msg){
    
    		case WM_DESTROY:
    			DestroyWindow(hWnd);
    			//UnregisterClass("Direct3D Tutorial", hInstance);
    			PostQuitMessage(1);
    			break;
    
    		case WM_CREATE:
    			break;
    	}
    
    	return DefWindowProc(hWnd, msg, wParam, lParam);
    }
    

    Danke schon ma für eure Hilfe



  • Es fehlt die Registrierung der Fensterklasse (RegisterClassEx).



  • Du solltest vor dem Erzeugen das Fenster Registrieren

    if (!RegisterClassEx(&wc)) return 0;
    

    Mist, zu langsam



  • Peinlich Peinlich 🙂

    Jetzt funzts, danke euch beiden für die schnelle Antwort.


Anmelden zum Antworten