簡體   English   中英

為什么Windres在GROUPBOX語句中報告語法錯誤?

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

我正在用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退出時出現以下錯誤:

windres: resource.rc:40: syntax error

第40行指的是:

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

根據MSDN

GROUPBOX語句只能在DIALOGEX語句中使用,它定義控件窗口的文本,標識符,維度和屬性。

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

他們的例子:

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

我究竟做錯了什么?

我認為這幾乎是不言自明的

只能在DIALOGEX語句中使用

如果在切換到DIALOGEX語句之后仍然在同一行上有相同的語法錯誤(如@YeenFei指出的那樣),我唯一能想到的是IDC_STATIC未定義。

嘗試將其更改為

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

如果這樣可以解決問題,那是因為沒有定義標識符。

我搜索了Platform SDK標頭(6.1和7.1)並沒有找到它。 我認為這可能是一個特定於MFC的標識符 - 一些快速的Google搜索建議MFC在“afxres.h”中定義它,如果它尚未定義。

IDOKIDCANCEL即使沒有明確定義它們也可以工作,因為它們是在Platform SDK中定義的(在“winuser.h”中)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM