VC無負擔實現XP風格介面

2021-04-12 23:23:59 字數 1508 閱讀 5067

有件事情必須說一下,按照上面的方法,test.exe必須先呼叫initcommoncontrols函式(已經廢除,不建議使用)或者initcommoncontrol***函式從comctl32.dll中註冊元件類。這一步在vb中是必須的,但是在vc(mfc程式)中,我們好像並沒有呼叫這個函式,可是編譯後的程式為什麼還能實現xp風格呢?原因是mfc替我們做了這件事。如果我們是讓mfc註冊的視窗類,它會呼叫_afxinitcommoncontrols函式,而_afxinitcommoncontrols的主要操作就是把comctl32.dll裝載進來,然後判斷.dll檔案中有沒有initcommoncontrol***函式,如果有就呼叫,沒有則呼叫initcommoncontrols,到此真相大白。可能有人和我一樣,看著以「afx」開頭的視窗類名稱很不舒服,於是喜歡自己註冊視窗類,但在我們註冊自己的視窗類時一定要確保呼叫過initcommoncontrol***函式,這點一定要記得,如果忘記的話你將會看到乙個空白的視窗。

說了這麼多,有點跑題了,呵呵。現在回到正題。我上面提到的方法很多**上都有介紹,但是卻有乙個致命的缺點,就是必須有那個.manifest檔案如影隨形,exe檔案到哪,它就得到哪,這當然是我們不願意看到的。有沒有辦法能把它「合」到exe檔案中呢?答案是肯定的,這也正是本文題目中「無負擔」三個字的意思。  

當然了,那個.manifest檔案還是要有的,只不過不是和.exe檔案放在同一目錄中,而是把它放到資源檔案中,編譯後生成.res檔案,link後自然就和.exe檔案「合」到一起了。  

首先,請出.manifest檔案: 

VC無負擔實現XP風格介面

關於讓自己的程式介面實現xp風格這個問題,在網上的討論很多,大多數的作法都是寫乙個.manifest檔案,然後將檔名改一下,比如.exe檔案為test.exe,就將這個.manifest檔案改名成test.exe.manifest,並將其和test.exe放在同乙個目錄裡,這樣test.exe在xp...

VC6無負擔實現XP風格介面

vc 6無負擔實現xp 風格介面 關於讓自己的程式介面實現xp 風格這個問題,在網上的討論很多,大多數的作法都是寫乙個 manifest 檔案,然後將檔名改一下,比如 exe 檔案為test.exe 就將這個 manifest 檔案改名成 test.exe.manifest 並將其和 test.ex...

VC中實現介面XP風格

只需要在stdafx.h裡加入如下語句 if defined m ix86 pragma comment linker,manifestdependency type win32 name microsoft.windows.common controls version 6.0.0.0 proce...