Пытаюсь выучить винапы. сделал первую программу, которая должна показать мне окно. CMD показывает но нет окна

0
#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;
}

редактор не показывает ошибок и запускает программу без каких-либо проблем, но нет никаких признаков окна, которое не очень опытно программируется, поэтому, скорее всего, это глупая ошибка, которую я не могу найти, но все должны начать где-то
Я думаю, что я правильно сформировал сообщение

  • 0
    Windows, Окно, Windows? ну вы должны быть из Финляндии :)
Теги:
winapi

1 ответ

1

Вы не регистрируете класс окна. Вы заполняете структуру WNDCLASSEX порядке, но вы пренебрегаете вызовом RegisterClassEx чтобы фактически зарегистрировать его.

  • 0
    Спасибо, это сработало. Сайт, на котором я учусь, объединил его в код, который я только что опубликовал там, чтобы программа выглядела смешнее, чем тот, который ее изучает, так что я не думал, что это важно

Ещё вопросы

Сообщество Overcoder
Наверх
Меню