0
我在win32中有一個應用程序,它在主窗口中有一個頂層菜單,這個菜單有兩個子菜單選項。WinAPI菜單凍結後點擊一下
問題是..在一些點擊它的選項後,它突然凍結。應用程序的其餘部分保持正常響應,但是當我點擊菜單選項時,按鈕按下並且子菜單剛剛不出現,並且我需要重新啓動應用程序,否則它將不再工作。
我thik它是有關內存分配的東西,也許我需要釋放一些分配,但因爲即時通訊新的這種編程,我可以說只是看着它。
一些code..i認爲它在我操縱的是那裏有什麼不對的WM_COMMAND的窗口過程:
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent;
PAINTSTRUCT ps;
HDC hdc;
HMENU hMenubar = CreateMenu();
HMENU hFile = CreateMenu();
HMENU hEDIT = CreateMenu();
HMENU hHelp = CreateMenu();
switch (message)
{
case WM_COMMAND:
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);
// Parse the menu selections:
switch (wmId)
{
case ID_FILE_DIALOG2:
DialogBox(hInst, MAKEINTRESOURCE(IDD_DIALOG2), hWnd, Add);
break;
case ID_FILE_TESTE:
Check();
break;
case ID_FILE_DIALOG1:
DialogBox(hInst, MAKEINTRESOURCE(IDD_DIALOG1), hWnd, Conf);
break;
case ID_OPEN:
Open();
break;
case IDM_ABOUT:
DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
break;
case IDM_EXIT:
DestroyWindow(hWnd);
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
break;
case WM_PAINT:
break;
case WM_CLOSE:
DestroyWindow(hWnd);
PostQuitMessage(0);
break;
case WM_DESTROY:
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
非常感謝你,我在InitInstance()上聲明它,所以它只是在應用程序初始化時創建菜單,並解決了:)。 – Bruno