C++ 如何使用c+创建带有Windows菜单的win32应用程序+;并使用visual studio 2017菜单编辑器
使用visual Studio 2017社区创建win32项目后,我已将其添加到已经存在的菜单弹出菜单中。在我在“文件”下面添加了一个弹出项“Mypop”之后,我打开了新选项的属性并复制了ID;'ID_FILE_MYPOP'进入我的WndProc WM_命令循环 LRESULT回调WndProc(HWND HWND,UINT消息,WPARAM WPARAM,LPARAM LPARAM) 。。。 案例ID\u文件\u MYPOP: 中断 出现错误消息“标识符ID\u文件\u MYPOP未定义” 我只能通过打开resource.h文件来更正此问题,它会回答“此文件已在其他设备中打开,是否要关闭它?”。如果我回答是,那么我可以看到resource.h文件的内容,它包括ID\u file\u MYPOP。然后,如果我关闭resource.h文件,WndProc中的错误消息将消失,菜单添加将正常工作 我的问题是: 每次向resource.rc文件添加菜单项时,是否必须打开和关闭resource.h头文件 哪个应用程序可以打开resource.h文件 如果有人能帮助我,我将非常感激 ps如果我打开和关闭项目解决方案,我也可以删除错误语句C++ 如何使用c+创建带有Windows菜单的win32应用程序+;并使用visual studio 2017菜单编辑器,c++,menu,C++,Menu,使用visual Studio 2017社区创建win32项目后,我已将其添加到已经存在的菜单弹出菜单中。在我在“文件”下面添加了一个弹出项“Mypop”之后,我打开了新选项的属性并复制了ID;'ID_FILE_MYPOP'进入我的WndProc WM_命令循环 LRESULT回调WndProc(HWND HWND,UINT消息,WPARAM WPARAM,LPARAM LPARAM) 。。。 案例ID\u文件\u MYPOP: 中断 出现错误消息“标识符ID\u文件\u MYPOP未定义” 我
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;
…}双击解决方案资源管理器中的资源文件-资源编辑器应打开(这是打开resource.h的应用程序):
谢谢您的评论。在我的例子中,我总是双击Win32test.rc,我可以创建一个弹出菜单并获得一个ID。但是当我关闭Win32test.rc时,该ID会给出错误代码“此文件已在另一个设备中打开,是否要关闭它?”并且问题仍然如上所述。ie每次向resource.rc文件添加菜单项时,是否必须打开和关闭resource.h头文件?可以在文本编辑器或资源编辑器中打开rc文件和相关头文件。在文本编辑器中打开文件通常会导致来自VS的问题。我知道这会令人困惑,并且无法正确解决(例如,“显示定义”通常会打开头文件)。所以通常这两个文件都应该关闭——然后资源编辑应该可以工作。令人惊讶的是,添加资源这样简单的事情竟然如此笨拙。听到你也发现了同样的笨拙,我很欣慰,谢谢你的评论。