锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
鐜板湪鐨勫簲鐢ㄨ蔣浠墮兘璁茬┒涓у寲錛屽洜姝ゆ彁渚涗竴濂楁紓浜殑鐨偆灝卞繀涓嶅彲灝戙傝繖灝遍渶瑕佺敤鍒頒竴浜涙帶浠惰偆鍖栨妧鏈傚父瑙勬槸閲嶈澆MFC鐨勬秷鎭垪琛ㄦ垨铏氬嚱鏁版潵瀹炵幇鐨勶紝浣嗗紩鏉ョ殑闂鏄偆鍖栧簱鍜屽簲鐢ㄧ▼搴忕殑鑰﹀悎鎬уお寮恒傜粡甯鎬細(xì)鐢變簬鑲ゅ寲浠g爜鐨勪竴澶勫皬鏀瑰姩鑰屽紩璧烽昏緫涓婂茍娌℃湁鍏寵仈鐨勬暣涓簲鐢ㄧ▼搴忓ぇ瑙勬ā鐨勭紪璇戝拰閾炬帴錛屽茍甯︽潵寮鍙戞晥鐜囩殑鎬ュ墽涓嬮檷錛岃繖鍦ㄥ紑鍙戝ぇ鍨嬭蔣浠舵椂鏄緢闅懼繊鍙楃殑銆?/SPAN>
鏈枃鍦ㄥ弬鑰冧簡(jiǎn)涓浜涘父鐢ㄨ偆鍖栨妧鏈悗鎻愪緵浜?jiǎn)鑷忿q殑瑙e喅鏂規(guī)錛氶噰鐢ㄦ浛鎹㈢獥浣撹繃紼嬶紝鐨偆搴撻珮搴︾嫭绔嬶紝鍐呴儴瀹屽杽涓庝慨鏀規(guī)涓嶅獎(jiǎng)鍝嶅簲鐢ㄧ▼搴忋?/SPAN>
甯歌鑲ゅ寲鏂規(guī)硶錛?/SPAN>
絎竴縐嶏細(xì)鍒╃敤緇ф壙鍏崇郴鐩存帴瀛愮被鍖?/SPAN>
絎簩縐嶏細(xì)鍦ㄤ竴涓璇濇鐨?/SPAN> OnInitDialog 涓愭帶浠跺瓙綾誨寲
絎笁縐嶏細(xì)鍦?/SPAN> Hook 涓嫤鎴獥鍙e垱寤烘秷鎭紝騫惰繘琛屽瓙綾誨寲
絎洓縐?/SPAN> SetWindowLong鏇挎崲紿楀彛榪囩▼
絎簲縐?/SPAN> 鍦?/SPAN>Hook涓浛鎹㈢獥鍙h繃紼?/SPAN>
絎竴綾繪柟娉曢噰鐢ㄧ殑鏄?/SPAN>MFC瀛愮被鍖栨柟娉曟潵瀹炵幇錛堝墠涓夌錛?/SPAN>
1. MFC 閫氳繃緇存姢鍐呴儴涓寮?/SPAN>ChandleMap鏉ヨ褰?/SPAN>Window鎺т歡涓庢帶浠跺瓙綾誨璞′箣闂寸殑鍏崇郴銆傚湪MFC鐨勫叏灞紿楀彛榪囩▼AfxWndProc(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam)涓紝閫氳繃璋冪敤CWnd::FromHandlePermanent(HWND hWnd)寰楀埌鍙傛暟鍙ユ焺鎵渚濋檮鐨?/SPAN>C+鎺т歡瀛愮被瀵硅薄錛屽茍璋冪敤铏氬嚱鏁?/SPAN>CWnd::WindowProc灝嗙浉搴旂殑娑堟伅閫佺粰鐩稿簲鐨勬帶浠跺瓙綾誨璞$殑紿楀彛榪囩▼
2. 鎺т歡瀛愮被瀵硅薄璋冪敤CWnd::SubclassWindow鐧昏鎺т歡涓庢帶浠跺瓙綾誨璞′箣闂寸殑鍏崇郴
絎簩綾繪柟娉曢噰鐢ㄦ浛鎹㈢獥鍙h繃紼嬫柟娉曟潵瀹炵幇錛堢鍥涖佷簲縐嶏級(jí)
鑲ゅ寲鎶鏈?/SPAN>鍒嗘瀽錛?/SPAN>
MFC閲囩敤鍏鋒湁灞傛緇撴瀯鐨勬帶浠跺瓙綾昏璁★細(xì)閫氳繃涓寮?/SPAN>Map琛ㄥ緩绔嬫帶浠跺彞鏌勪笌C++瀵硅薄錛堟帶浠跺瓙綾誨璞★級(jí)鐨勮仈緋伙紝閫氳繃鎺т歡瀛愮被瀵硅薄鐨勫彉閲忔潵璁板綍鍜岀淮鎶ゆ帶浠剁殑鐘舵佷俊鎭?/SPAN>
鈥滆偆鍖栤濈殑鏈川錛?/SPAN>
1錛夊搷搴斿彂閫佺粰璇ユ帶浠剁殑Windows娑堟伅錛?/SPAN>
2錛夌敤鎭板綋鐨勬暟鎹〃鐜板嚭鎭板綋鐨勮涓恒?/SPAN>
鍏朵腑錛?/SPAN>
1)鍙互鐢ㄦ浛鎹㈢獥浣撹繃紼嬫潵瀹炵幇錛?/SPAN>
2)鍙互鐢ㄧ淮鎶よ嚜瀹氫箟鎺т歡瀛愮被瀵硅薄鍜屾帶浠跺彞鏌勭殑鍏崇郴鏉ュ疄鐜般?/SPAN>
鏈枃鐙珛鑲ゅ寲搴撻噰鐢ㄧ殑鏂規(guī)硶錛?/SPAN>
1. 鐩爣錛?/SPAN>
鑲ゅ寲鐩爣紿楀彛錛屾帴鍙g畝鍗曪紝騫朵笖琚偆鍖栫殑紿楀彛褰卞搷灝忋?/SPAN>
2. 閲囩敤鏂規(guī)硶錛?/SPAN>
鏇挎崲紿楀彛榪囩▼
3. 闅劇偣錛?/SPAN>
紿楀彛榪囩▼鐨勮璁★紝鏄惁闇瑕佷負(fù)姣忎釜綾婚兘璁捐鍗曠嫭鐨勭獥鍙h繃紼嬶紵宸ヤ綔閲忔槸鍚﹁繃澶э紵
緇存姢鐘舵佸彉閲忥紝褰撴湁澶氫釜鎺т歡鍏變韓鍚屼竴紿楀彛榪囩▼鏃訛紝濡備綍緇存姢瀹冧滑鍚勮嚜鐨勭姸鎬侊紵
瀹炵幇鏂規(guī)硶:
1. 浠跨収MFC錛屽緩绔嬬粺涓鐨勭獥浣撹繃紼?/SPAN>SkinWndProc
2. 寤虹珛涓寮?/SPAN>Map琛紝鐢ㄦ潵鐧昏hWnd鍜岃嚜瀹氫箟鎺т歡瀛愮被瀵硅薄涔嬮棿鐨勮仈緋匯?/SPAN>
3. 鍒涘緩涓涓毊鑲ょ埗綾伙紝鎵鏈夌殑鑲ゅ寲鎺т歡鍧囦粠瀹冩淳鐢燂紙綾諱技涓?/SPAN>MFC鐨?/SPAN>CWnd錛夛紝鍙互鍦ㄧ粺涓鐨勭獥浣撹繃紼?/SPAN>SkinWndProc涓氳繃Map琛ㄦ壘鍒扮浉搴旂殑鑷畾涔夋帶浠跺瓙綾誨璞★紝騫惰皟鐢ㄥ叾铏氬嚱鏁板疄鐜板Windows娑堟伅鐨勫搷搴?/SPAN>
4. 閲嶈澆:SubclassWindow鍑芥暟錛岀敤鏉ュ畬鎴愮獥浣撹繃紼嬬殑鏇挎崲銆?/SPAN>
澶栭儴鎺ュ彛錛?/SPAN>
1. 鎻愪緵SkinDlg(HWND hWnd)瀹屾垚瀵瑰璇濇鍙?qiáng)鍏跺瓙鎺т欢鐨勮偆鍖?/SPAN>
2. 鎻愪緵SkinBtn(HWND hWnd, LPCTSTR lpszSection)鎸囧畾閲囩敤閰嶅埗鏂囦歡鐨勫摢涓鑺傚睘鎬ц偆鍖栨寜閽?/SPAN>
3. 濡傛灉闇瑕侊紝鎻愪緵DonotSkinCtrl(HWND hWnd)鐢ㄦ潵鎸囧畾涓嶉渶瑕佽偆鍖栫殑鎺т歡
4. 鎻愪緵ChangeSkin錛?/SPAN>LPCTSTR lpszSkinName錛夋洿鎹㈢毊鑲?/SPAN>
妗嗘灦鍘熺悊鍥撅細(xì)
鏃跺簭鍥撅細(xì)