Когда я создаю окно в C с помощью функции CreateWindow()
, оно отлично работает, просто мгновенно исчезает, поэтому я использовал функцию getch()
, чтобы попытаться решить проблему, но она не работает. Окно не отображает кнопку и вылетает.
Но когда я использовал MessageBox()
вместо getch()
, оно остается и работает нормально. Я пытаюсь выяснить, почему это происходит.
Я пробовал много вещей, например, используя MessageBox()
и getch()
вместе, используя getch()
до и после ShowWindow()
, но каждый раз это дает мне немного Интересный результат, но не нормальная функциональность окна.
Код, который работает:
#include <windows.h>
int _stdcall WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow)
{
HWND h;
HINSTANCE i;
h = CreateWindow("Button", "XYZ", WS_OVERLAPPEDWINDOW, 15, 20, 250, 200, 0, 0, i, 0);
ShowWindow(h, nCmdShow);
MessageBox(0, "Stop", "Wait", MB_OK);
return 0;
}
Код, который не работает:
#include <windows.h>
int _stdcall WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow)
{
HWND h;
HINSTANCE i;
h = CreateWindow("Button", "XYZ", WS_OVERLAPPEDWINDOW, 15, 20, 250, 200, 0, 0, i, 0);
ShowWindow(h, nCmdShow);
getch();
return 0;
}
Я хочу знать причина этой ошибки. Я думаю, это потому, что getch()
является функцией DOS, но все же компилятор должен по крайней мере показать предупреждение.