【发布时间】:2020-01-21 17:03:36
【问题描述】:
使用 Visual Studio 2017 社区创建 win32 项目后,我已将菜单添加到已经存在的弹出菜单中。在“文件”下方添加一个弹出项“Mypop”后,我打开了新选项的属性并复制了 ID; 'ID_FILE_MYPOP' 进入我的 WndProc WM_COMMAND 循环。
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
... 案例 ID_FILE_MYPOP: 休息;
出现错误消息“标识符 ID_FILE_MYPOP 未定义”。
我只能通过打开 resource.h 文件来纠正此问题,它会响应“此文件已在另一个设备中打开,您要关闭它吗?”。如果我回答是,那么我可以看到 resource.h 文件的内容,它包括 ID_FILE_MYPOP。然后,如果我关闭 resource.h 文件,WndProc 中的错误消息就会消失,并且菜单添加工作正常。
我的问题是:
每次向resource.rc文件添加菜单项时,是否必须打开和关闭resource.h头文件?
什么应用程序可能会打开 resource.h 文件?
如果有人可以帮助我,我将不胜感激。
ps如果我打开和关闭项目解决方案,我也可以删除错误声明。
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM
lParam)
{
switch (message)
{
case WM_COMMAND:
{
int wmId = LOWORD(wParam);
// Parse the menu selections:
switch (wmId)
{
case ID_FILE_MYPOP:
break;
case IDM_ABOUT:
DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
break;
case ID_NEWEDITIDAPPROACH:
break;
case IDM_NEW7:
break;
case IDM_EXIT:
DestroyWindow(hWnd);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
}
break;
...}
【问题讨论】: