【问题标题】:C++ resource syntax errorC++ 资源语法错误
【发布时间】:2010-09-21 16:38:47
【问题描述】:

我有一个资源:

IDC_MYMENU MENU
BEGIN
    POPUP "&File"
    BEGIN
        MENUITEM "E&xit"
    END
    POPUP "&Stuff"
    BEGIN
        MENUITEM "&Go"
    END
END

在第一个 END 上它说有语法错误,我不明白为什么。有人知道吗? :(

【问题讨论】:

  • 你有#definedEND吗?
  • 现在它说第二个弹出窗口有错误
  • :),不,我的意思是你可能定义了它,所以它被替换了一些东西,所以它触发了语法错误。尝试在MENUITEM 行上附加, ID_CONTROL
  • MENUITEM "E&xit", ID_CONTROL ?
  • 是的。但是您应该将 ID_CONTROL 定义为某个数值。为什么不使用资源编辑器?它会自动执行此操作。

标签: visual-studio winapi resources rc


【解决方案1】:

问题是您没有为菜单项设置 ID。资源编译器需要字符串后面的附加参数。请参阅此处的文档: http://msdn.microsoft.com/en-us/library/aa381025%28VS.85%29.aspx

【讨论】:

    【解决方案2】:

    您需要一个与菜单项关联的 ID,例如:

    #include "resources.h"
    #include "windows.h"
    
    IDC_MYMENU MENU
    BEGIN
        POPUP "&File"
        BEGIN
            MENUITEM "E&xit", ID_EXIT
        END
        POPUP "&Stuff"
        BEGIN
            MENUITEM "&Go", ID_GO
        END
    END
    

    resources.h 看起来像这样:

    #define ID_GO 101
    

    [如果没有记错的话,ID_EXIT通常会在Windows.h中预先定义,所以你不需要定义它。]

    ID 是您的程序在选择该菜单项时将在 WM_COMMAND 消息中收到的值。这些值(几乎总是)位于单独的标头中,供您包含在 RC 文件和代码中,以确保不会出现任何不匹配。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-30
      • 1970-01-01
      • 2019-02-20
      • 1970-01-01
      • 2017-11-29
      • 1970-01-01
      • 1970-01-01
      • 2020-01-17
      相关资源
      最近更新 更多