WinApi schliesst sich immer



  • Hallo,

    Bringe mir grad das API Programmieren bei, hab aber folgendes Problem:

    Alles scheint im quellcode zu stimmen aber wenn ich die Anwendung starte, schliesst sie sich wieder bzw öffnet sich kurz verschwindet aber wieder im Hintergrund.
    Im Taskmanager läuft es zwar noch aber ich kanns nicht öffnen.

    Der Code:

    #include <windows.h>
    #include <conio.h>
    
    LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
    
    LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
    	return 0;
    }
    
    const char szAppName[]    = "Textausgabe im Anwendungsbereich";
    
    int WINAPI WinMain(  HINSTANCE hInstance, HINSTANCE hPrevInstance,
                         PSTR szCmdLine, int iCmdShow)
    {
       MSG        msg;
       HWND       hWnd;
       WNDCLASS   wc;
    
       wc.style= CS_HREDRAW | CS_VREDRAW;
       wc.lpfnWndProc= WndProc;
       wc.cbClsExtra= 0;
       wc.cbWndExtra= 0;
       wc.hInstance= hInstance;
       wc.hCursor= LoadCursor(NULL, IDC_ARROW);
       wc.hIcon= LoadIcon(NULL, IDI_APPLICATION);
       wc.hbrBackground= (HBRUSH) GetStockObject(WHITE_BRUSH);
       wc.lpszClassName= szAppName;
       wc.lpszMenuName= NULL;
    
       RegisterClass(&wc);
    
       hWnd = CreateWindow(   szAppName,
                              szAppName,
                              WS_OVERLAPPEDWINDOW,
                              CW_USEDEFAULT,
                              CW_USEDEFAULT,
                              CW_USEDEFAULT,
                              CW_USEDEFAULT,
                              NULL,
                              NULL,
                              hInstance,
                              NULL);
    
       ShowWindow(hWnd, iCmdShow);
       UpdateWindow(hWnd);
    
       while (GetMessage(&msg, NULL, 0, 0))
       {
          TranslateMessage(&msg);
          DispatchMessage(&msg);
       }
       getch();
       return msg.wParam;
    }
    

    Hoffe mir kann jemand helfen.



  • Deine WndProc ist aber ziemlich mager, findest du nicht? Einfach mal google nach WinAPI-Tutorial fragen. Dann wirst du jede Menge Beispielcode finden.



  • Deine Window-Prozedur darf nicht 0 zurück geben, sondern diese Default-Funktion:

    return DefWindowProc(hWnd, Message, wParam, lParam);

    Gruß

    seventh_son



  • AHh thx seventh_son jetzt kalppts 😉


Anmelden zum Antworten