首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

自製 Visual Studio Win32 精靈支援對話方塊專案範本

     編輯:關於.NET

Visual Studio 的 MFC 精靈原生支援建立對話方塊型應用程式,但 Win32 精靈卻缺少此選項。雖然 Visual Assist X (VAX) 可插入對話方塊程式碼片段,但無法像精靈那樣直接產生完整專案架構。本文將手把手教您修改 Visual Studio 2012 (VS11) 的 Win32 專案精靈,新增「對話方塊型 Windows 應用程式」選項。

修改前準備與目錄結構

請先備份原始精靈檔案。Win32 精靈檔案位於:

VS安裝目錄\VC\VCWizards\AppWiz\Generic\Application\

以 VS2012 為例,路徑為:

D:\Program Files\Microsoft Visual Studio 11.0\VC\VCWizards\AppWiz\Generic\Application\

此目錄下有四個資料夾,不同語言版本依 LCID 命名(英文 1033、簡體中文 2052)。

Win32 精靈目錄結構

語言版本資料夾

修改 AppSettings.htm - 新增 UI 選項

使用編輯器開啟 html\1033\AppSettings.htm,依序在指定行號插入程式碼:

  1. 第 35 行:新增對話方塊專案圖片顯示區塊
  2. 第 197 行:新增「Dialog-based windows application」單選按鈕
  3. 第 370 行:設定預設停用狀態
  4. 第 425 行:啟用 ATL 支援選項
  5. 第 526、562 行:處理圖片顯示邏輯

關鍵插入代碼片段:

<DIV CLASS="SMALL" ID="WIN_DLG_APP_IMAGE" STYLE="DISPLAY:NONE;">
  <IMG CLASS="SMALL" SRC="..\..\Images\Dialog.gif" ALT="" BORDER="0">
</DIV>

將 MFC 精靈的 Dialog.gif 複製至 Generic\Application\images 目錄。

修改 default.htm - 專案類型識別符號

開啟 html\1033\default.htm:

  • 第 11 行:新增 <SYMBOL NAME="WIN_DLG_APP" TYPE=checkbox VALUE=false>
  • 第 342 行:在專案類型判斷邏輯中新增 WIN_DLG_APP 分支

修改 default.js - 專案類型字串對應

開啟 scripts\1033\default.js:

  • 第 96 行:新增 strAppType = "WIN_DLG" 判斷
  • 第 176、192、241、261 行:在 switch case 中新增 "WIN_DLG" 分支

修改範本檔案 - 產生對話方塊專案程式碼

templates\1033\readme.txt:第 22、73、88 行條件編譯加入 WIN_DLG_APP

templates\1033\resource.h:第 6-17 行重寫資源 ID 定義,區分視窗與對話方塊專案

templates\1033\CmnHdr.h:新建此檔,包含對話方塊訊息處理巨集 chHANDLE_DLGMSG 與圖示設定函式 chSETDLGICONS

templates\1033\root.cpp:修改條件編譯與新增對話方塊專案進入點 _tWinMain、訊息處理 Dlg_Proc、初始化 Dlg_OnInitDialog、命令處理 Dlg_OnCommand

templates\1033\stdafx.h:新增 WindowsX.h 與 Common Controls 6.0 資訊清單支援

templates\1033\Templates.inf:修改檔案複製條件,加入 CmnHdr.h

templates\1033\root.rc:完整重寫資源腳本,支援對話方塊範本與設計資訊

測試成果與下載

修改完成後重啟 Visual Studio,建立新專案即可看到新選項:

修改後的 Win32 精靈介面

對話方塊專案選項

產生的對話方塊專案結構

提供現成修改檔案下載:

  • VS2010 英文旗艦版:Generic_for_VS10.7z
  • VS2012 英文旗艦版:Generic_for_VS11.7z

其他版本請參考本文步驟自行修改測試。完整原始碼與原文連結見文末。

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