MFC程式具有XP風格的兩種實現方式

2021-04-23 08:34:27 字數 2496 閱讀 8795

有兩種方法可以使vc6或者vc2003編譯出來的mfc程式具有xp的風格,當然這需要在windows xp系統下執行。

方法一,使用外接的manifest描述檔案code:

<?

xmlversion="

1.0"

encoding="

utf-8

"standalone="

yes"

?>

<

assembly

xmlns="

urn:schemas-microsoft-com:asm.v1

"manifestversion="

1.0"

>

<

assemblyidentity

version="

1.0.0.0

"processorarchitecture="

x86"

name="

microsoft.windows.dummy

"type="

win32

"/>

<

description

>

description

>

<

dependency

>

<

dependentassembly

>

<

assemblyidentity

type="

win32

"name="

microsoft.windows.common-controls

"version="

6.0.0.0

"processorarchitecture="

x86"

publickeytoken="

6595b64144ccf1df

"language="

*"/>

dependentassembly

>

dependency

>

assembly

>

方法二,使用內建的manifest描述檔案

這種方法可以將manifest檔案編譯到exe檔案當中,發布的時候不需要額外增加乙個.manifest檔案。

步驟如下:

首先,在程式的res目錄下建乙個檔案,命名xp.manifest,檔案內容為:

code:

<?

xmlversion="

1.0"

encoding="

utf-8

"standalone="

yes"

?>

<

assembly

xmlns="

urn:schemas-microsoft-com:asm.v1

"manifestversion="

1.0"

>

<

assemblyidentity

version="

1.0.0.0

"processorarchitecture="

x86"

name="

microsoft.windows.dummy

"type="

win32

"/>

<

description

>

description

>

<

dependency

>

<

dependentassembly

>

<

assemblyidentity

type="

win32

"name="

microsoft.windows.common-controls

"version="

6.0.0.0

"processorarchitecture="

x86"

publickeytoken="

6595b64144ccf1df

"language="

*"/>

dependentassembly

>

dependency

>

assembly

>

然後,在vc中匯入資源,匯入xp.manifest,型別為24,並且修改id為idr_manifest。

最後,通過選單view-resources symbol …或者直接修改resource.h,將idr_manifest的值改為1。

編譯後執行,程式就有xp的風格了。

ps:這裡我再多解釋一下,「1」代表資源id,必須是「1」。「24」代表資源型別,我想我們對rt_accelerator、rt_bitmap、rt_menu、rt_string等資源都非常熟悉,而「24」實際上是rt_manifest。

MFC 之 是程式編譯後具有XP風格

有兩種方法可以使vc6或者vc2003編譯出來的mfc程式具有xp的風格,當然這需要在windows xp系統下執行。code xmlversion 1.0 encoding utf 8 standalone yes assembly xmlns urn schemas microsoft com ...

python 屬性property的兩種實現

class money object def init self self.money 0def get money self return self.money defset money self,value if isinstance value,int self.money value els...

xp上遠端連線ubuntu的兩種方式

xp上遠端連線ubuntu的兩種方式 昨前天突然發現實驗室有一天伺服器沒有用,於是決定不讓它閒著。開始時上面已經安裝了windows server 2003,於是決定按照個ubuntu試試,開始安裝了個伺服器版的沒有介面感覺不爽,於是用師兄的8.04版光碟安了乙個。不過坐在伺服器前用直接使用的話,感...