我正在使用C ++中的Win32 API进行实验,特别是编写资源文件。现在,我的整个项目都很好,菜单和标题以及所有内容。但是,当我将此代码添加到一个模态对话框中时

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,

您只能在DialoGex语句中使用的GroupBox语句定义了控制窗口的文本,标识符,尺寸和属性。

GroupBox文本,ID,X,Y,宽度,高度[,样式[,扩展风格]

他们的例子:

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

我究竟做错了什么?

有帮助吗?

解决方案

如果您在切换到 DIALOGEX 语句(正如@yeenfei指出的那样),我唯一能想到的是 IDC_STATIC 没有定义。

尝试将其更改为

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

如果解决问题,则是因为未定义标识符。

我通过平台SDK标头(6.1和7.1)进行了搜索,但找不到它。我认为这可能是MFC特定的标识符 - 一些快速谷歌搜索建议MFC在“ Afxres.h”中定义了它,如果尚未定义。

IDOKIDCANCEL 即使您没有明确定义它们,因为它们是在平台SDK中定义的(在“ hinuser.h”中)。

其他提示

我认为这几乎是不言自明的

只能在 对话陈述

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top