C ++资源语法错误

时间:2010-09-21 16:38:47

标签: visual-studio winapi resources rc

我有一个资源:

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

在第一个END上它表示存在语法错误,我不明白为什么。谁知道? :(

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

您需要一个与菜单项相关联的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文件和代码中,以确保不会出现任何不匹配。