【问题标题】:how to create a win32 application with Windows menus using c++ and using the visual studio 2017 menu editor如何使用 c++ 和使用 Visual Studio 2017 菜单编辑器创建带有 Windows 菜单的 win32 应用程序
【发布时间】: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;

...}

【问题讨论】:

    标签: c++ menu


    【解决方案1】:

    在解决方案资源管理器中双击资源文件 - 资源编辑器应该会打开(这是打开 resource.h 的应用程序):

    【讨论】:

    • 感谢您的评论。在我的例子中,我总是双击 Win32test.rc,我可以创建一个弹出菜单并获取一个 ID。但是当我关闭 Win32test.rc 时,ID 给出了错误代码“此文件已在另一台设备中打开,您要关闭它吗?”并且问题仍然如上所述。即每次在resource.rc文件中添加菜单项时,是否必须打开和关闭resource.h头文件?
    • rc 文件和相关头文件都可以在文本编辑器或资源编辑器中打开。在文本编辑器中打开文件通常会导致来自 VS 的问题。我知道这很令人困惑并且没有得到妥善解决(例如,“显示定义”通常会打开头文件)。所以通常这两个文件都应该关闭——然后资源编辑应该可以工作了。
    • 令人惊讶的是,像添加资源这样基本的事情却如此笨拙。听到您发现同样的笨拙令人欣慰,谢谢您的 cmets。
    猜你喜欢
    • 1970-01-01
    • 2015-06-16
    • 1970-01-01
    • 1970-01-01
    • 2019-10-20
    • 1970-01-01
    • 1970-01-01
    • 2021-07-15
    • 2021-09-13
    相关资源
    最近更新 更多