为什么Windres在我的GROUPBOX语句中报告语法错误? 我正在用C++中的Win32 API进行实验,特别是编写资源文件。现在,我的整个项目运作良好,菜单、标题等等。但是,当我将模式对话框的代码添加到.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在我的GROUPBOX语句中报告语法错误? 我正在用C++中的Win32 API进行实验,特别是编写资源文件。现在,我的整个项目运作良好,菜单、标题等等。但是,当我将模式对话框的代码添加到.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,c++,winapi,resources,groupbox,C++,Winapi,Resources,Groupbox,Windres退出时出现以下错误: windres: resource.rc:40: syntax error 第40行是指: GROUPBOX "About this program...",IDC_STATIC,7,7,225,52 根据, GROUPBOX语句(只能在DIALOGEX语句中使用)定义控件窗口的文本、标识符、维度和属性 分组框文本、id、x、y、宽度、高度[、样式[、扩展样式]] 他们的例子是: GROUPBOX "Options"

Windres退出时出现以下错误:

windres: resource.rc:40: syntax error
第40行是指:

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

GROUPBOX语句(只能在DIALOGEX语句中使用)定义控件窗口的文本、标识符、维度和属性

分组框文本、id、x、y、宽度、高度[、样式[、扩展样式]]

他们的例子是:

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

我做错了什么?

我认为这在我看来是不言自明的

只能在对话框中使用 声明


如果在切换到
DIALOGEX
语句(正如@YeenFei所指出的)后,同一行仍然存在相同的语法错误,那么我唯一能想到的是
IDC\u STATIC
没有定义

试着把它改成

GROUPBOX "About this program...",-1,7,7,225,52
如果这解决了问题,那是因为没有定义标识符

我搜索了平台SDK标题(6.1和7.1),但没有找到它。我认为这可能是一个MFC特定的标识符——一些快速的谷歌搜索建议MFC在“afxres.h”中定义它,如果它还没有定义的话


IDOK
IDCANCEL
即使您没有明确定义它们也可以工作,因为它们是在平台SDK(在“winuser.h”中)中定义的。

Ha,我错过了,谢谢。但不幸的是,它没有解决这个问题。IDC_STATIC也在winuser中定义。h@KenB:不是,不是。它是一个控制值,通常取自特定于项目的
资源.h
。查看Windows平台SDK中的任何一个示例程序。我刚刚使用了grep,发现它不仅在winuser.h中定义,而且在afxres.h中也定义了。我不知道为什么,但定义IDC_STATIC出于某种原因修复了它。我使用的是MinGW 4.5.2。下面是我在进一步检查头文件后得出的结论。Winuser.h确实有IDC_静态文档;但是,它实际上没有定义,因为它被一个#if 0语句包围,并带有一条注释:“这应该是由程序使用w32api头中没有定义的它来定义的。我把它放在这里是为了文档的目的。”