我想製作一個按鈕,但它總是看起來像windows 95平面按鈕。我如何讓它看起來遠景風格?用C++/win32正常看按鈕
hWndEdit = CreateWindowA("button", "Test",
WS_CHILD | WS_VISIBLE | BS_DEFPUSHBUTTON,
100, 20, 140, 20, hWnd, NULL, NULL, NULL);
我在哪裏錯了? 謝謝
我想製作一個按鈕,但它總是看起來像windows 95平面按鈕。我如何讓它看起來遠景風格?用C++/win32正常看按鈕
hWndEdit = CreateWindowA("button", "Test",
WS_CHILD | WS_VISIBLE | BS_DEFPUSHBUTTON,
100, 20, 140, 20, hWnd, NULL, NULL, NULL);
我在哪裏錯了? 謝謝
它只能在Vista中看Vista風格,介意你。您的應用程序還必須根據http://msdn.microsoft.com/en-us/library/aa289524(v=VS.71).aspx嵌入清單以啓用視覺樣式。
您需要爲指定要使用主題的.exe添加清單。默認行爲是爲了兼容性而使用Win9x/NT/2K控件 - 主題XP +控件略大。 This解釋瞭如何詳細添加這樣的清單。
在您的項目目錄(MyApp是您的應用程序的名稱)中創建一個名爲「MyApp.exe.manifest」的文件。然後用你喜歡的編輯器打開它,並複製&過去按照它的代碼:
<?xml version="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="CompanyName.ProductName.YourApp"
type="win32"
/>
<description>Your application description here.</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
而且你已經做之後,將此文件添加到您的Visual Studio項目(該項目的圖標上單擊右鍵,選擇「添加「 - >」現有項目」
添加此清單文件到你的VS解決方案足以啓用XP主題
希望這有助於...
什麼是構建環境如果。?它的Visual Studio 2005或2008,然後是a如果其他清單建議不適用於VS8並且已經包含清單信息。
在這種情況下,最簡單的方法來添加一個清單的依賴是利用一個簡單的(Microsoft專用)編譯器指令,你添加一些CPP或頭文件:
#pragma comment(linker,"/manifestdependency:\"type='win32' "\
"name='Microsoft.Windows.Common-Controls' "\
"version='6.0.0.0' "\
"processorArchitecture='x86' "\
"publicKeyToken='6595b64144ccf1df' "\
"language='*' "\
"\"")
包括清單這樣避免混淆了c運行時清單依賴或搞亂UAC正常工作所需的設置。
取而代之的是指定架構,你可以使用*而不是x86:processorArchitecture ='*'編輯:意識到這是來自2009年..對不起:凹凸:P – joell 2013-05-03 12:13:22
鏈接不再工作。 – ALOToverflow 2010-12-20 03:36:13
-1這個答案在鏈接工作時可能有用,但現在鏈接已經死了,這裏沒有其他內容。 – Marc 2012-02-25 16:47:18
@Marc我已更正鏈接。 Boo @微軟。 – 2012-02-26 22:05:30