Синтаксическая ошибка ресурса C++

У меня есть ресурс:

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

На первом END пишет, что синтаксическая ошибка, не понимаю почему. Кто-нибудь знает? :(


person ITg    schedule 21.09.2010    source источник
comment
Вы #defined КОНЕЦ?   -  person Yakov Galka    schedule 21.09.2010
comment
Теперь он говорит, что есть ошибка во 2-м POPUP   -  person ITg    schedule 21.09.2010
comment
:) Нет, я имею в виду, может быть, вы определили его, чтобы он был чем-то заменен, поэтому он вызывает синтаксическую ошибку. Попробуйте добавить , ID_CONTROL к строке MENUITEM.   -  person Yakov Galka    schedule 21.09.2010
comment
МЕНЮЭМ&Выйти, ID_CONTROL ?   -  person ITg    schedule 21.09.2010
comment
да. Но вы должны определить ID_CONTROL для некоторого числового значения. Почему вы не используете редактор ресурсов? Он делает это автоматически.   -  person Yakov Galka    schedule 21.09.2010
comment
ISTR экспресс-версии VC++, не поддерживающие редактирование ресурсов графического интерфейса. Сценарий ресурса необходимо отредактировать вручную в Express, щелкнув правой кнопкой мыши и выбрав «Просмотреть код».   -  person cHao    schedule 21.09.2010
comment
Это не имеет ничего общего с С++, поэтому вы можете изменить заголовок своего вопроса. Теги выглядят хорошо.   -  person David Thornley    schedule 21.09.2010
comment
Что ж, я создал графический интерфейс, используя C++, и теперь пытаюсь добавить меню ›.‹   -  person ITg    schedule 21.09.2010


Ответы (2)


Проблема в том, что вы не установили ID для MENUITEM. Компилятор ресурсов ожидает дополнительный параметр после строки. См. документацию здесь: http://msdn.microsoft.com/en-us/library/aa381025%28VS.85%29.aspx

person Yakov Galka    schedule 21.09.2010

Вам нужен идентификатор, связанный с пунктом меню, например:

#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, так и в свой код, чтобы исключить любые несоответствия.

person Jerry Coffin    schedule 21.09.2010