日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

XP风格界面

發布時間:2025/5/22 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 XP风格界面 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

關于讓自己的程序界面實現XP風格這個問題,在網上的討論很多,大多數的作法都是寫一個.manifest文件,然后將文件名改一下,比如.exe文件為test.exe,就將這個.manifest文件改名成test.exe.manifest,并將其和test.exe放在同一個目錄里,這樣test.exe在XP或2003(必須啟動Themes服務)下運行時就會呈現XP界面風格。 有件事情必須說一下,按照上面的方法,test.exe必須先調用InitCommonControls函數(已經廢除,不建議使用)或者InitCommonControlsEx函數從comctl32.dll中注冊組件類。這一步在VB中是必須的,但是在VC(MFC程序)中,我們好像并沒有調用這個函數,可是編譯后的程序為什么還能實現XP風格呢?原因是MFC替我們做了這件事。如果我們是讓MFC注冊的窗口類,它會調用_AfxInitCommonControls函數,而_AfxInitCommonControls的主要操作就是把comctl32.dll裝載進來,然后判斷.dll文件中有沒有InitCommonControlsEx函數,如果有就調用,沒有則調用InitCommonControls,到此真相大白。可能有人和我一樣,看著以“afx”開頭的窗口類名稱很不舒服,于是喜歡自己注冊窗口類,但在我們注冊自己的窗口類時一定要確保調用過InitCommonControlsEx函數,這點一定要記得,如果忘記的話你將會看到一個空白的窗口。 說了這么多,有點跑題了,呵呵。現在回到正題。我上面提到的方法很多網站上都有介紹,但是卻有一個致命的缺點,就是必須有那個.manifest文件如影隨形,exe文件到哪,它就得到哪,這當然是我們不愿意看到的。有沒有辦法能把它“合”到exe文件中呢?答案是肯定的,這也正是本文題目中“無負擔”三個字的意思。 當然了,那個.manifest文件還是要有的,只不過不是和.exe文件放在同一目錄中,而是把它放到資源文件中,編譯后生成.res文件,link后自然就和.exe文件“合”到一起了。 首先,請出.manifest文件:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity ?name="XP style manifest" ?processorArchitecture="x86" ?version="1.0.0.0" ?type="win32"/> <dependency> ?<dependentAssembly> ??? <assemblyIdentity ????? type="win32" ????? name="Microsoft.Windows.Common-Controls" ?? ???version="6.0.0.0" ????? processorArchitecture="x86" ????? publicKeyToken="6595b64144ccf1df" ????? language="*" ??? /> ?</dependentAssembly> </dependency> </assembly>
大家也看到了,這其實是一個XML文件,打開記事本,復制上面的內容,然后存盤,文件名任意,這里我存為XPStyle.manifest。 然后在VC中新建一個MFC AppWizard(exe)工程,Document/View或Dialog均可,接著把XPStyle.manifest復制到工程所在目錄,再用記事本或其它文本編輯工具手動修改工程目錄下的資源文件(.rc),在文件最后加上一行:
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系統下才可以。

?

轉載于:https://www.cnblogs.com/hitszxin/archive/2008/04/10/1147080.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的XP风格界面的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。