Why does Windres report a syntax error on my GROUPBOX statement?

我们两清 提交于 2019-12-01 18:51:06

问题


I'm experimenting with the Win32 API in C++, specifically with writing resource files. Now, my entire project was working just fine, menus and titles and everything. However, when I add this code for a modal dialog box to the .rc file:

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 exits with the following error:

windres: resource.rc:40: syntax error

Line 40 refers to:

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

According to MSDN,

The GROUPBOX statement, which you can use only in a DIALOGEX statement, defines the text, identifier, dimensions, and attributes of a control window.

GROUPBOX text, id, x, y, width, height [, style [, extended-style]]

Their example:

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

What am I doing wrong?


回答1:


If you still have the same syntax error on the same line after switching to a DIALOGEX statement (as @YeenFei pointed out), the only thing I can think of is that IDC_STATIC is not defined.

Try changing it to

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

If that fixes the problem, it's because the identifier isn't defined.

I did a search through the Platform SDK headers (6.1 and 7.1) and didn't find it. I think that might be an MFC-specific identifier -- some quick Googling suggests MFC defines it in "afxres.h" if it isn't already defined.

IDOK and IDCANCEL work even though you didn't explicitly define them because they are defined in the Platform SDK (in "winuser.h").




回答2:


I think it is pretty much self-explanatory from

can use only in a DIALOGEX statement



来源:https://stackoverflow.com/questions/4778823/why-does-windres-report-a-syntax-error-on-my-groupbox-statement

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!