Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何使用c+创建带有Windows菜单的win32应用程序+;并使用visual studio 2017菜单编辑器_C++_Menu - Fatal编程技术网

C++ 如何使用c+创建带有Windows菜单的win32应用程序+;并使用visual studio 2017菜单编辑器

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未定义” 我

使用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如果我打开和关闭项目解决方案,我也可以删除错误语句

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的问题。我知道这会令人困惑,并且无法正确解决(例如,“显示定义”通常会打开头文件)。所以通常这两个文件都应该关闭——然后资源编辑应该可以工作。令人惊讶的是,添加资源这样简单的事情竟然如此笨拙。听到你也发现了同样的笨拙,我很欣慰,谢谢你的评论。