我做了這個GUI應用程序使用C++和WINAPI,只是當我完成我的教程,但永遠不會奏效無論我嘗試...WINAPI窗口不起作用。
這裏是代碼:
#include <windows.h>
LRESULT CALLBACK WinProc(HWND window, UINT message, WPARAM wParam, LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, int nCmdShow) {
WNDCLASS window;
window.cbClsExtra = NULL;
window.cbWndExtra = NULL;
window.hbrBackground = (HBRUSH)COLOR_BACKGROUND;
window.hCursor = LoadCursor (hInst, IDC_ARROW);
window.hIcon = NULL;
window.hInstance = hInst;
window.lpfnWndProc = WinProc;
window.lpszClassName = "WINDOW";
window.lpszMenuName = NULL;
window.style = CS_HREDRAW | CS_VREDRAW;
RegisterClass(&window);
HWND hwnd = CreateWindow("WINDOW", "Win32 Window Application", WS_OVERLAPPEDWINDOW | WS_VISIBLE, 50, 50, 200, 200, NULL, NULL, hInst, NULL);
ShowWindow(hwnd, SW_SHOW);
MSG message;
while (GetMessage(&message, hwnd, 0, 0)){
TranslateMessage(&message);
DispatchMessage(&message);
}
}
LRESULT CALLBACK WinProc(HWND window, UINT message, WPARAM wParam, LPARAM lParam){
switch(message){
case WM_DESTROY:
{
PostQuitMessage(0);
return 0;
break;
}
}
}
我試圖改變幾乎所有到不同的值,並添加頭文件,但從來沒有工作。
當你說「不工作」,你是什麼意思與?窗戶不要打開?你在某處遇到錯誤嗎?程序崩潰了嗎?請詳細說明。 –
非常標準的錯誤,除了從不檢查錯誤,因此永遠無法診斷失敗。你的窗口過程**必須調用DefWindowProc()來處理它自己不處理的消息。現在WM_NCCREATE消息沒有得到處理,這是任何嘗試獲取窗口創建的結束。 –
您應該做的第一件事是檢查函數的結果,確定是否通過文檔中陳述的任何錯誤發生,並獲得更多信息(如果可用),如文檔中所述。 – chris