讓程式實現xp介面風格

2021-05-24 12:11:45 字數 1736 閱讀 9948

關於讓自己的程式介面實現xp風格這個問題,在網上的討論很多,大多數的作法都是寫乙個.manifest檔案,然後將檔名改一下,比如.exe檔案為test.exe,就將這個.manifest檔案改名成test.exe.manifest,並將其和test.exe放在同乙個目錄裡,這樣test.exe在xp或2003(必須啟動themes服務)下執行時就會呈現xp介面風格。

有件事情必須說一下,按照上面的方法,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檔案:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>

name="xp style manifest"

processorarchitecture="x86"

version="1.0.0.0"

type="win32"/>

type="win32"

name="microsoft.windows.common-controls"

version="6.0.0.0"

processorarchitecture="x86"

publickeytoken="6595b64144ccf1df"

language="*"

/>

大家也看到了,這其實是乙個xml檔案,開啟記事本,複製上面的內容,然後存檔,檔名任意,這裡我存為xpstyle.manifest。

1 24

「xpstyle.manifest」

在vc中編譯並連線工程生成.exe可執行檔案,執行一下看看。

就這麼簡單?就這麼簡單。   :d

這裡我再多解釋一下,最後加上的那一行,「1」代表資源id,必須是「1」。「24」代表資源型別,我想我們對rt_accelerator、rt_bitmap、rt_menu、rt_string等資源都非常熟悉,而「24」實際上是rt_manifest。最後面引號中的東西我就不再囉嗦了。

好了,編譯後的這個.exe檔案拿到哪都可以,都是xp風格的介面,不用再依賴.manifest檔案了。哦,當然了,必須在xp或2003系統下才可以。

Qt 設定程式介面風格

類的繼承關係 qmotifstyle osf 開放 協會 開發的乙個工業標準的gui 圖形使用者介面 qcdestyle 公共桌面環境 common desktop environment 的縮寫,cde是一種執行於unix aix,基於motif部件工具箱 開發的桌面環境,惠普的openvms i...

java swing 介面風格

uimanager.put tree.font fontsource uimanager.put list.font fontsource uimanager.put menubar.font fontsource uimanager.put menu.font fontsource uimanag...

軟體介面風格(摘錄)

目前流行的介面風格有三種方式 多窗體 單窗體以及資源管理器風格,無論那種風格,以下規則是應該被重視的。1 易用性 按鈕名稱應該易懂,用詞準確,屏棄模楞兩可的字眼,要與同一介面上的其他按鈕易於區分,能望文知意最好。理想的情況是使用者不用查閱幫助就能知道該介面的功能並進行相關的正確操作。易用性細則 1 ...