Почему Windres сообщает о синтаксической ошибке в моем утверждении GROUPBOX? - PullRequest
4 голосов
/ 24 января 2011

Я экспериментирую с Win32 API в C ++, особенно с написанием файлов ресурсов.Теперь весь мой проект работал просто отлично, меню и заголовки и все такое.Однако, когда я добавляю этот код для модального диалогового окна в файл .rc:

IDD_ABOUT DIALOG DISCARDABLE  0, 0, 239, 66
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "My About Box"
FONT 8, "MS Sans Serif"
BEGIN
    DEFPUSHBUTTON   "&OK",IDOK,174,18,50,14
    PUSHBUTTON      "&Cancel",IDCANCEL,174,35,50,14
    GROUPBOX        "About this program...",IDC_STATIC,7,7,225,52
    CTEXT           "An example program showing how to use Dialog Boxes\r\n\r\nby theForger", IDC_STATIC,16,18,144,33
END

Windres выходит со следующей ошибкой:

windres: resource.rc:40: syntax error

Строка 40 относится к:

GROUPBOX "About this program...",IDC_STATIC,7,7,225,52

Согласно MSDN ,

Оператор GROUPBOX, который можно использовать только в операторе DIALOGEX, определяет текст, идентификатор, измерения и атрибуты.окна управления.

GROUPBOX текст, id, x, y, ширина, высота [, стиль [, расширенный стиль]]

Их пример:

GROUPBOX "Options", 101, 10, 10, 100, 100

Что я делаю не так?

Ответы [ 2 ]

4 голосов
/ 24 января 2011

Если после переключения на оператор DIALOGEX (как указывал @YeenFei) у вас по-прежнему сохраняется та же синтаксическая ошибка, единственное, о чем я могу думать, это то, что IDC_STATIC не определено.

Попробуйте изменить его на

GROUPBOX "About this program...",-1,7,7,225,52

Если это решает проблему, то это потому, что идентификатор не определен.

Я провел поиск по заголовкам Platform SDK (6.1 и 7.1) и не нашел его. Я думаю, что это может быть специфичный для MFC идентификатор - какой-то быстрый поиск в Google предлагает MFC определить его в «afxres.h», если он еще не определен.

IDOK и IDCANCEL работают, даже если вы явно не определяли их, потому что они определены в Platform SDK (в "winuser.h").

4 голосов
/ 24 января 2011

Я думаю, это довольно очевидно из

можно использовать только в DIALOGEX Заявление

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...