巧用VC工程下的rc文件

巧用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文件,然后重新在資源視圖中去看看,可以發現,我們已經完成了向導中需要一系列操作的工作了。

好了,又要下班了,就算結束吧。

老樣子,有問題,歡迎討論。


轉載于:https://www.cnblogs.com/techstone/archive/2012/06/15/2661230.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/260724.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/260724.shtml
英文地址,請注明出處:http://en.pswp.cn/news/260724.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

藍橋杯 參考題目 黃金隊列(水題)

黃金分割數0.618與美學有重要的關系。舞臺上報幕員所站的位置大約就是舞臺寬度的0.618處,墻上的畫像一般也掛在房間高度的0.618處,甚至股票的波動據說也能找到0.618的影子.... 黃金分割數是個無理數,也就是無法表示為兩個整數的比值。0.618只…

QC4+充電協議_一文看懂各家充電協議!總算徹底理清了

五一小長假馬上就要到了,雖說今年的五一小長假是一個長達5天的“Plus”版小長假,但是受到疫情的影響,大多數人還是選擇了在家中度過這個假期。既然說到了宅在家里度過這個假期,那么很多人都會選擇讓手機來陪伴自己度過。雖然最近幾…

vi編輯器選項

Vi編輯器有一些選項設置可以幫助人們更好的使用。 在vi中選項分為兩種: 1、 開關選項,如果要打開這類選項就使用ex命令——:set 選項;如果要關閉這類選項就是用ex命令——:set no選項(注意no和選項之間沒有空格&…

javascript作用域容易記錯的兩個地方

1.function fun() { var a"rxm"; b"cwr"; } alert(a);//錯誤,a局部變量 alert(b); //"cwr",b全局變量。 2. var a"rxm"; function fun() { alert(a);var a"123"; alert(a); }fun();alert(a); 輸出結果&#xff1…

第4章 Python 數字圖像處理(DIP) - 頻率域濾波6 - 二維DFT和IDFT的一些性質 - 平移和旋轉、周期性、對稱性

目錄二維DFT和IDFT的一些性質空間間隔和頻率間隔的關系平移和旋轉周期性對稱性二維DFT和IDFT的一些性質 空間間隔和頻率間隔的關系 Δu1MΔT(4.69)\Delta u \frac{1}{M \Delta T} \tag{4.69}ΔuMΔT1?(4.69) Δv1NΔZ(4.70)\Delta v \frac{1}{N \Delta Z} \tag{4.70}ΔvNΔ…

類圖 示例

神州六號飛船是神州飛船系統的一種,它由軌道艙、返回艙、推進艙和逃逸求生塔等組成;航天員可以在返回艙內駕駛飛船,軌道艙由是航天員工作和休息的場所。在緊急的情況下,可以利用逃逸求生塔逃生。在飛船兩側有多個太陽能電池翼&…

bat 命令返回結果_bat教程[284] unzip解壓

古樹屋Click to follow us(1)unzip命令的簡介C:\Users\86137\Desktop>unzip -hUnZip 6.00 of 20 April 2009, by Info-ZIP. Maintained by C. Spieler. Sendbug reports using http://www.info-zip.org/zip-bug.html; see README for details.Usage: unzip [-Z] [-opts[mo…

K/3 MRP運算數據不準的原因及解決方案

系統MRP計算的結果不正確, 經過分析系統的數據,把MRP計算不正確原因整理如下:1.系統中存在大量的生產任務單沒有完全領料,但被結案,造成部份領料單竄單領料,最終引起已分配量不正確2.系統中存在大量的手工錄入的生產領料單3.存在部…

解壓版本的tomcat服務安裝

以下適合各個版本的tomcat(注意啟動時8080端口要確保未被占用) 今天搭一個Tomcat服務器,為了方便決定將解壓版(非windows的安裝方式)的tomcat添加為一個windows服務。 環境: JDK 1.5.0_06 Tomcat-5.5.20 Windows2003 瑞…

Framework7:不會Objective-C,也能開發iOS7應用

摘要:Framework7是一款開源的輕量級HTML框架,用來創建混合或有著iOS7原生體驗的Web應用。其包含HTML布局、所有基礎界面、動畫效果、視圖以及簡單的自定義樣式,讓你無需修煉Objective-C語言,就可以構建自己的iOS7應用。 Framework…

第4章 Python 數字圖像處理(DIP) - 頻率域濾波7 - 二維DFT和IDFT的一些性質 - 傅里葉頻譜和相角

目錄二維DFT和IDFT的一些性質傅里葉頻譜和相角二維DFT和IDFT的一些性質 傅里葉頻譜和相角 F(u,v)R(u,v)jI(u,v)∣F(u,v)∣ej?(u,v)(4.86)F(u, v) R(u, v) jI(u, v) |F(u, v)|e^{j\phi(u,v)} \tag{4.86}F(u,v)R(u,v)jI(u,v)∣F(u,v)∣ej?(u,v)(4.86) 幅度,稱為…

jquery 判斷是否有類名_Day037-JS、jQuery

第73次(JavaScript)學習主題:JavaScript學習目標:1 掌握js的表單驗證2 熟練敲出制作購物車代碼,盡量不要看老師的代碼1. 表單驗證A(1) 如何可以產生一個4位的隨機數驗證碼Math.floor(Math.random()*90001000)(2) 如何控制表單是否提交的通過設置form表單…

csc.exe的環境變量設置

默認情況下,這個路徑是不在 Path 環境變量中的。你在命令行下直接輸入 csc,windows不會到上面那個路徑中去找這個程序。所以也就提示找不到文件了。 設置方法: 1) 在“我的電腦”上點擊右鍵,現在“屬性”; 2) 在彈出的…

如何分析解決Android ANR

[java] view plaincopy print?來自: http://blog.csdn.net/tjy1985/article/details/6777346 http://blog.csdn.net/tjy1985/article/details/6777355 http://blog.csdn.net/tjy1985/article/details/6777983 http://www.eoeandroid.com/forum.php?modviewthr…

第4章 Python 數字圖像處理(DIP) - 頻率域濾波8 - 二維DFT和IDFT的一些性質 - 二維離散卷積定理

目錄二維DFT和IDFT的一些性質二維離散卷積定理二維離散傅里葉變換性質的小結二維DFT和IDFT的一些性質 二維離散卷積定理 二維循環卷積表達式: (f?h)(x,y)∑m0M?1∑n0N?1f(m,n)h(x?m,y?n)(4.94)(f \star h)(x, y) \sum_{m0}^{M-1} \sum_{n0}^{N-1} f(m,n)h(x…

jmeter中重定向多個正則表達式_2020年jmeter技術實戰續集,最新技術全棧,值得收藏

在上一篇:主要介紹線程組、HTTP請求默認值、用戶定義的變量、固定定時器的應用場景及實戰。以下主要介紹正則表達式提取器、調式取樣器(Debug Sampler)、響應斷言、HTTP信息頭管理器的應用場景及實戰。一、正則表達式提取器1、使用場景從請求的響應結果中取到需要的…

[置頂] 均衡音效

[置頂] 均衡音效 1均衡的作用 均衡器是一種可以分別調節各種頻率成分電信號放大量的電子設備,通過對各種不同頻率的電信號的調節來補償揚聲器和聲場的缺陷,補償和修飾各種聲源及其它特殊作用。具體來說,它的作用如下: &#xff08…

html5之web worker

Web Worker 在本文中 與 Web Worker 進行雙向通信WindowTimers在 IE10 Platform Preview 4 中對 Web Worker 的更新API 參考示例和教程有關 Internet Explorer 的 Test Drive 演示IEBlog 文章規范相關主題Internet Explorer 10 和使用 JavaScript 的 Windows 應用商店應用引入了…

第4章 Python 數字圖像處理(DIP) - 頻率域濾波9 - 頻率域濾波基礎、頻率域的濾波過程、低通、高通

目錄頻率域濾波基礎頻率域的其他特性頻率域濾波基礎知識頻率域濾波步驟小結空間域和頻率域濾波之間的對應關系頻率域濾波基礎 頻率域的其他特性 頻率域中的濾波過程如下: 首先修改傅里葉變換以在到特定目的然后計算IDFT,返回到空間域 # 頻率域中的其…

C# :試玩EventLog

1. 專門創建Source的Log   創建了Source,log顯示在 Event viewer/Applications and Services logs/ 自定義Source 中,待遇比較高,專門顯示的。 創建Source需要管理員身份,否則Crash。 如果已經打開了 Computer Management,請關閉…