试图学习威纳皮.制作了第一个程序,必须向我显示一个窗口.CMD显示,但没有窗口

Trying to learn winapi. made a first program which has to show me a window. CMD shows but there is no window

本文关键字:窗口 显示 一个 CMD 学习 程序 第一个      更新时间:2023-10-16
#include<windows.h>
LPSTR NazwaKlasy = "Klasa Okienka";
MSG Komunikat;
LRESULT CALLBACK WndProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam );
int WINAPI WinMain( HINSTANCE hInstance,HINSTANCE hPrevInstance, LPSTR lpCmdLine,int nShowCmd)
{
WNDCLASSEX wc;
wc.cbSize = sizeof( WNDCLASSEX );
wc.style = 0;
wc.lpfnWndProc = WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon( NULL, IDI_APPLICATION );
wc.hCursor = LoadCursor( NULL, IDC_ARROW );
wc.hbrBackground =( HBRUSH )( COLOR_WINDOW + 1 );
wc.lpszMenuName = NULL;
wc.lpszClassName = NazwaKlasy;
wc.hIconSm = LoadIcon( NULL, IDI_APPLICATION );
//tutaj kłądż okienka
HWND hwnd;
hwnd = CreateWindowEx ( WS_EX_CLIENTEDGE,NazwaKlasy,"Okienko",WS_EX_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,400,400,NULL,NULL,hInstance,NULL);
//koniec obszaru okienek
ShowWindow( hwnd, nShowCmd ); // Pokaż okienko...
UpdateWindow( hwnd );
while( GetMessage( & Komunikat, NULL, 0, 0 ) )
{
 TranslateMessage( & Komunikat );
 DispatchMessage( & Komunikat );
}
return Komunikat.wParam;
}
    LRESULT CALLBACK WndProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
switch( msg )
{
 case WM_CLOSE:
        DestroyWindow( hwnd );
     break;
 case WM_DESTROY:
        PostQuitMessage( 0 );
     break;
    default:
        return DefWindowProc( hwnd, msg, wParam, lParam );
}
return 0;
}

编辑器没有显示任何错误,运行程序没有任何问题,但没有窗口的迹象我在编程方面不是很有经验,所以很可能是一个愚蠢的错误,我找不到,但每个人都必须从某个地方
开始我想我正确格式化了帖子

您没有注册窗口类。您填写WNDCLASSEX结构正常,但忽略了调用RegisterClassEx来实际注册它。