当我使用该函数在 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 函数,但编译器至少应该显示一个警告。