我爲WinAPI中的遊戲製作自動點擊器,並且在主窗口中有4個簡單的按鈕。當用戶按下'開始'按鈕時,我想要打開另一個窗口,詢問他們的設置,例如點擊次數和點擊次數之間的時間。當我嘗試創建一個新窗口時,什麼都沒有發生,但其他一切都完美無缺。在按下按鈕後在WinAPI中創建一個窗口
LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_DESTROY:
{
PostQuitMessage(0);
return 0;
}
case WM_COMMAND:
{
switch (wParam)
{
case ID_START:
{
HINSTANCE hInstance = GetModuleHandle(CLASS_NAME);
HWND settings = CreateWindowEx(
0,
L"Settings",
L"Settings",
WS_OVERLAPPEDWINDOW | WS_VISIBLE | WS_CHILD,
100, 100, 600, 200,
NULL,
(HMENU) ID_SETTINGS,
hInstance,
NULL
);
MSG msg = { };
while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
case ID_QUIT:
{
PostQuitMessage(0);
return 0;
}
case ID_CALIB:
{
if (MessageBox(hwnd, L"You pressed Calibrate", L"Calibrate", MB_OK))
{
return 0;
}
}
case ID_INFO:
{
if (MessageBox(hwnd, L"You pressed about", L"About", MB_OK))
{
return 0;
}
}
}
}
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hwnd, &ps);
FillRect(hdc, &ps.rcPaint, (HBRUSH)(COLOR_WINDOW+1));
EndPaint(hwnd, &ps);
return 0;
}
}
return DefWindowProc(hwnd, uMsg, wParam, lParam);
}
我剛剛開始使用WinAPI,所以我非常新。感謝您提前提供任何幫助!
對於設置,您可能想要啓動對話框而不是創建普通窗口。 –
我該怎麼做? –
使用對話框編輯器和對話框過程(有點像窗口過程)創建對話框模板,並在運行時調用DialogBox。你也可以使用CreateDialog做一個非模態對話框(更像是一個普通的窗口),但對於第一次嘗試,我會堅持一個模態對話框(即DialogBox)。 –