首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> VC 教學

VC6.0 專案啟用 Windows XP 視覺樣式:資源嵌入 Manifest 讓舊專案擁有新外觀

     編輯:VC 教學

原理:Side-by-Side 組件與 Common Controls 6.0

Windows XP 引入 ComCtl32.dll 6.0 提供新視覺樣式 (圓角按鈕、藍色選取、主題感知)。應用程式需透過 Manifest 聲明相依性,系統載入器才會載入 v6 版而非舊版 v5。

VC6.0 手動嵌入 Manifest 步驟

1. 插入自訂資源

  • 資源視圖 → 右鍵 Insert → Resource → 選擇 Custom
  • Resource Type 輸入:24 (對應 RT_MANIFEST)
  • 資源 ID 修改為:1 (系統預設查找 ID 1)

2. 編輯 Manifest 內容 (十六進位編輯器或文字模式)



  
  Your Application Description
  
    
      
    
  

3. 程式碼配合 (僅 Win32 SDK 專案需要)

// Win32 SDK 專案需顯式包含並連結
#include 
#pragma comment(lib, "comctl32.lib")

// 初始化通用控制項 (Win32 SDK 專案)
INITCOMMONCONTROLSEX icc = { sizeof(icc), ICC_STANDARD_CLASSES };
InitCommonControlsEx(&icc);

// MFC 專案無需上述代碼,AfxWinInit 內部已處理

4. 重新編譯連結

輸出的 EXE 將內嵌 Manifest,在 XP 上自動呈現視覺樣式。

驗證方法

  • 檔案總管 → 右鍵 EXE → 內容 → 版本 → 檔案版本資訊,應可見 Manifest 區塊
  • 工具 mt.exe -inputresource:YourApp.exe;#1 -out:manifest.xml 匯出驗證
  • 執行程式,按鈕、編輯框、進度條等應顯示 XP 藍色/圓角風格

常見問題

現象原因解決
仍為經典灰色風格Manifest 未正確嵌入 / ID 不為 1 / XML 格式錯誤用 mt.exe 驗證;資源編輯器確認 Type=24, ID=1
部分控制項無樣式未呼叫 InitCommonControlsEx / 旗標不足MFC 通常無需處理;SDK 專案加上 ICC_STANDARD_CLASSES | ICC_PROGRESS_CLASS 等
部署到 Win2000 崩潰Manifest 要求 Common Controls 6.0,Win2000 無此版本在 Manifest 加入 <compatibility> 區塊或提供無 Manifest 版本
高 DPI 模糊未宣告 DPI 感知Manifest 加入 <dpiAware>true</dpiAware> (Vista+)

進階:外部 Manifest 檔案部署 (免重新編譯)

  • 將上述 XML 存為 YourApp.exe.manifest 放在 EXE 同目錄
  • 系統優先讀取外部 Manifest,方便測試與熱修補
  • 正式發布建議內嵌資源,避免檔案遺失

VS.NET 2003+ 專案屬性一鍵啟用

  • 專案屬性 → Linker → Manifest File → Generate Manifest: Yes
  • 或 Linker → Manifest File → Additional Manifest Dependencies:自動產生

三分鐘嵌入 Manifest,讓您的 VC6.0 經典專案在 Windows XP/2003/Vista/7/10/11 上都擁有原生視覺風格,零代碼修改業務邏輯。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved