巧用VC工程下的rc檔案(發表時間: 2008-12-30 17:20:00)
【評論】
【列印】 【字型:大
中 小】 本文連結:http://blog.pfan.cn/miaowei/40117.html
複製連結
分享到:
0
標籤:VC rc檔案 資源檔 視窗尺寸設定 添加資源
縱觀真箇的VC工程,這裡指那些包含介面的VC工程。主要由三方面構成,演算法,資源,以及對資源的調用。演算法是整個程式的核心,資源套件含一些在演算法中可能會用到的資料(二進位)和一些UI方面的顯示效果資源。而對資源的調用則是利用開發工具提供的一套標準API(如Win32 API) 對你資源的調用來完成對資源的操作。
今天在這裡,我主要是想結合自己對資源這一塊的一些體會與大家交流交流。不足之處請高手指出,以便改正。
所謂資源,我們首先應該想到的是程式中的rc檔案,按說對資源的操作應該是操作這個檔案的事情,可惜的是,自從微軟提供了開發嚮導以後,大家都偏向於使用程式嚮導來完成一些資源的添加,修改,尺寸設定以及layout的工作,包括我自己,應該這實在是太方便了。但是萬物有其利的一面,必然有其害的一面,這導致了大家對資源本身的瞭解較少,造成了除了嚮導外就不知所以然的結果。我周邊就有人常問我同一個問題,問什麼我在資源中點擊右鍵添加一個Dialog後,總是預設的名字IDD_DIALOG1,我說這不就是個資源ID嗎,你在ID屬性中將它的名字改該就是。好的,Dialog的問題搞定了。接著,他在工程中添加了一個自訂的資源(費了好一翻勁),同樣他加了一個資源,同樣點右鍵,這時,沒有屬性選項了,傻眼了。其實,這些問題都可以通過在rc檔案中操作,既然它們都是資源,那麼這些定義都是在rc檔案中定義的,你利用嚮導做的這些工作,只是微軟幫你把它寫進了rc檔案之中了。那麼你要是碰到了問題,自己進入rc檔案中看看究竟不是很好嗎。因為那才是資源的源頭。
好像今天時間不夠了,馬上下班。下次接著寫關於利用rc檔案實現控制項大小的調整和layout以及如何在rc中添加系統資源和自訂資源,而完全可以脫離嚮導,就像平時寫文檔一樣。
接著上一次的關於資源檔(rc檔案)繼續說,這裡主要說兩個內容。
一 利用rc檔案進行介面的布局
開啟一個資源檔,如FHRDemo.rc,右鍵選擇查看代碼,可以看到文本描述的資源檔,這裡截取其中的一段。
// Dialog
//
IDD_ABOUTBOX DIALOGEX 0, 0, 235, 55
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "About FHRDemo"
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
ICON IDR_MAINFRAME,IDC_STATIC,11,17,20,20
LTEXT "FHRDemo Version 2.0",IDC_STATIC,40,10,119,8,SS_NOPREFIX
LTEXT "Copyright (C) 2007",IDC_STATIC,40,25,119,8
DEFPUSHBUTTON "OK",IDOK,178,7,50,16,WS_GROUP
END
IDD_FHRDEMO_FORM DIALOGEX 0, 0, 286, 211
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
LTEXT "",IDC_STATIC_INPUT_AREA,64,0,174,208,NOT WS_VISIBLE | WS_BORDER
PUSHBUTTON "0",IDC_BUTTON_HIT0,0,0,63,22
PUSHBUTTON "2",IDC_BUTTON_HIT2,0,43,63,21
PUSHBUTTON "1",IDC_BUTTON_HIT1,0,22,63,21
PUSHBUTTON "3",IDC_BUTTON_HIT3,0,64,63,21
PUSHBUTTON "5",IDC_BUTTON_HIT5,0,106,63,21
PUSHBUTTON "6",IDC_BUTTON_HIT6,0,127,63,21
PUSHBUTTON "7",IDC_BUTTON_HIT7,0,147,63,21
PUSHBUTTON "8",IDC_BUTTON_HIT8,0,168,63,21
PUSHBUTTON "4",IDC_BUTTON_HIT4,0,85,63,21
PUSHBUTTON "9",IDC_BUTTON_HIT9,1,189,62,21
PUSHBUTTON "Clear",IDC_CLEAR,238,37,45,34
PUSHBUTTON "Exit",IDC_EXIT,238,173,46,34
PUSHBUTTON "Revert",IDC_REVERT,238,71,45,33
PUSHBUTTON "Options",IDC_OPTIONS,238,136,45,36
PUSHBUTTON "Mouse",IDC_SWITCH,238,104,45,32
PUSHBUTTON "Recognition",IDC_RECOGNITION,238,0,45,37
END
這裡,可以看到,上面對資源的描述包含了兩個對話方塊,一個是IDD_ABOUTBOX,另外一個是IDD_FHRDEMO_FORM。第一個對話方塊的大小描述是(0,0,235,55),這四個的意思是: 第一個0是表示該控制項的X的最左的座標,第二個0是Y方向的最上面的座標。 而235代表X方向的寬度,而55是代表Y方向的高度。接下來是STYLE: 緊跟後面的是該對話方塊的style。 再接下來是該對話方塊的font及其他一些資訊。在BEGIN和END之間的是列舉該對話方塊中所有的控制項以及這些
都是一些什麼控制項及控制項的尺寸和caption.
有了這些以後,我們就可以完全在這上面對它進行改動來完成對介面的風格和尺寸的一些改動。而無需再依靠嚮導了,並且這個比嚮導要靈活很多。當然,一開始可能會出現錯誤!!
二 利用rc檔案添加自訂資源
這個就更加簡單了,無需嚮導中那麼的複雜步驟,且容易出現像我上面一篇文章說的那麼多問題,如改名字不容易。這裡,如果利用rc檔案的話,就只需要一行就全部搞定。
MYSKIN22 MIAOWEI "res\\shapedemo.smf"
其中, MYSKIN22是建立資源的名字,在嚮導中是“建立”功能。MIAOWEI是資源名字,這個在嚮導中有個預設名字,有點搞的。而最後面的就不用說了,是該資源的路徑。一般放在res檔案夾下。我們只要在res檔案夾中放入這個資源就可以了。這時,儲存rc檔案,然後重新在資源檢視中去看看,可以發現,我們已經完成了嚮導中需要一系列操作的工作了。
好了,又要下班了,就算結束吧。
老樣子,有問題,歡迎討論。