对话框菜单不响应单击
Dialog menu not responding to clicks
我使用 MSVC++ 向导创建了一个 win32 应用程序。我添加了一个新的菜单资源,并添加了典型的"文件"->"退出"等。然后我将其添加到 msvc++ 属性下的主对话框中。当我运行表单时,它会在表单上显示菜单,但如果我单击文件,它甚至不会进行悬停,也不会显示退出弹出窗口。它几乎就像它被禁用了一样。我真的认为我不需要添加任何代码。任何帮助,不胜感激。谢谢。
#include "stdafx.h"
#define MAX_LOADSTRING 100
struct _globals {
HINSTANCE hInst;
HWND hWnd;
} g;
LRESULT CALLBACK DialogProc(HWND, UINT, WPARAM, LPARAM);
int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
_In_opt_ HINSTANCE hPrevInstance,
_In_ LPWSTR lpCmdLine,
_In_ int nCmdShow)
{
InitCommonControls();
g.hInst = hInstance;
g.hWnd = CreateDialog(hInstance, MAKEINTRESOURCE(IDD_MAIN), NULL, (DLGPROC)DialogProc);
if (g.hWnd == NULL) {
GetLastError();
return FALSE;
}
ShowWindow(g.hWnd, nCmdShow);
UpdateWindow(g.hWnd);
HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_ACCELLS));
MSG msg;
while (GetMessage(&msg, NULL, 0, 0)) {
if (TranslateAccelerator(g.hWnd, hAccelTable, &msg))
continue;
if (IsDialogMessage(g.hWnd, &msg))
continue;
// process message
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
LRESULT CALLBACK DialogProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_INITDIALOG:
break;
case WM_COMMAND:
{
int wmId = LOWORD(wParam);
switch (wmId)
{
case IDM_EXIT:
DestroyWindow(hWnd);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
// Message handler for about box.
INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
UNREFERENCED_PARAMETER(lParam);
switch (message)
{
case WM_INITDIALOG:
return (INT_PTR)TRUE;
case WM_COMMAND:
if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
{
EndDialog(hDlg, LOWORD(wParam));
return (INT_PTR)TRUE;
}
break;
}
return (INT_PTR)FALSE;
}
DialogProc 函数看起来更像是一个窗口过程,而不是一个对话框过程。与窗口过程不同,dalog 过程不返回 LRESULT 值,它们返回 BOOL 值,并且不调用 DefWindowProc。还有其他一些差异。
相关文章:
- QTreeView幻灯片多选后无法使用单击选择
- WinAPI 在单击第一个对话框上的按钮控件并销毁第一个对话框后创建第二个对话框
- QML TableView 使用 QtQuick.Controls 2 单击行
- C++鼠标单击时的屏幕截图不起作用
- SDL2 + Win32 API 菜单栏单击事件不起作用
- 单击wx切换按钮时不捕获鼠标
- 在图形场景Qt中右键单击Contex菜单时响应缓慢
- QGraphicsScene 中的 QPushButton 需要双击而不是单击
- 对话框菜单不响应单击
- 单击不起作用
- 如果我单击对话框中的项目(ListBox、CheckBox等),OnLButtonDown()不会被激发,但如果我单击背
- 模拟鼠标单击而不移动光标
- Windows 窗体 - 具有父级的 ShowDialog - 为什么在主窗口最大化时单击父级不激活对话框
- MS Visual C++通过单击按钮启动函数而不阻塞对话框
- MFC PropertyGrid将不会在用户单击时展开(已禁用)
- MFC 中动态创建的按钮事件在单击按钮后不会触发
- 如果通过单击任务栏按钮最小化程序,SW_SHOWNOACTIVATE不起作用
- 键盘输入不起作用,单击鼠标时工作
- 在GLFW中单击而不拖动鼠标
- 在鼠标移动/单击之前,SetCursor 不起作用 (Win32 API)