如何:在增益集按鈕上顯示自訂圖示
.Visual Studio 增益集在 Visual Studio 2013 中已不適用。 您應該升級您的增益集至 VSPackage 擴充套件。 如需升級的詳細資訊,請參閱 常見問題集:將增益集轉換成 VSPackage 擴充功能。
您能夠以不是預先定義之標準圖示的圖示來取代顯示在增益集命令旁的預設圖示 (一個笑臉),如 如何:變更增益集的預設圖示中所述。
執行此動作需要:
將圖示點陣圖當做資源加入至專案中。
將 AddNamedCommand2 方法中的 MSOButton 參數設定為 false (這樣會告知該方法尋找圖示點陣圖)。
在您增益集專案的命令列部分,參考該資源的識別碼。
下列程序示範如何將自訂圖示加入至增益集按鈕。
注意事項 |
---|
根據您目前使用的設定或版本,您所看到的對話方塊與功能表指令可能會與 [說明] 中描述的不同。使用 [一般開發設定] 開發了這些程序。若要變更設定,請從 [工具] 功能表中選擇 [匯入和匯出設定]。如需詳細資訊,請參閱Visual Studio 中的自訂開發設定。 |
若要將自訂點陣圖當做增益集按鈕圖示加入至增益集專案
開啟現有的增益集方案,或在 Visual Studio 中建立新的增益集方案。
將新的資源檔加入至增益集專案。 如要完成這項工作:
以滑鼠右鍵按一下 [方案總管] 中的增益集專案。
從 [加入] 功能表上選取 [新增項目]。
在 [範本] 清單中選取 [資源檔],然後按一下 [加入] 按鈕。 保留它的預設名稱 (Resources1.resx)。
這會啟動 Visual Studio [資源編輯器]。
如果您資源檔未出現在 [方案總管] 中,請按一下工具列上的 [顯示所有檔案] 按鈕。
增益集需要整數值做為點陣圖引數。 設定這個屬性可讓您編輯資源檔,並以數字識別項為點陣圖資源命名,這是當 .resx 檔屬於增益集專案的一部分時,您所無法做到的動作。
在 [資源編輯器] 中按一下 [加入資源],然後從下拉式清單選取 [新增影像],再選取 [BMP 影像]。 現在先保留它的預設名稱 (Image1.bmp)。
另外,您可以選取 16 x 16 像素且為 16 色或全彩的現有點陣圖影像。 增益集的自訂圖示必須是 16 x 16 像素,且為 16 色或全彩。
在點陣圖屬性視窗中,將 [高度] 和 [寬度] 屬性都變更為 16。 將 [色彩] 屬性設為 16 色或全彩。
如果您建立新的點陣圖,請在 [資源編輯器] 中編輯圖片。
開啟增益集的 Connect 類別。 在 AddNamedCommand2 程式碼行的 OnConnection 方法中,將 MSOButton 參數值從 true 變更為 false,並將 Bitmap 參數值從 59 變更為 1。 例如:
command = commands.AddNamedCommand2(_addInInstance, "MyAddin1", " MyAddin1", "Executes the command for MyAddin1", False, 1, Nothing, CType(vsCommandStatus.vsCommandStatusSupported, Integer) + CType(vsCommandStatus.vsCommandStatusEnabled, Integer), vsCommandStyle.vsCommandStylePictAndText, vsCommandControlType.vsCommandControlTypeButton)
Command command = commands.AddNamedCommand2(_addInInstance, "MyAddin1", "MyAddin1", "Executes the command for MyAddin1", false, 1, ref contextGUIDS, (int)vsCommandStatus.vsCommandStatusSupported+(int)vsCommandStatus. vsCommandStatusEnabled, (int)vsCommandStyle.vsCommandStylePictAndText, vsCommandControlType.vsCommandControlTypeButton);
將 MSOButton 引數設定為 false 會強制增益集搜尋資源檔中的按鈕點陣圖。 數字 1 將是該點陣圖的識別項 (它會在稍後的步驟中設定)。
當您完成以後,選取 [檔案] 功能表上的 [全部儲存],然後選取 [建置] 功能表上的 [建置方案],接著再卸載方案。 若要執行這項操作,以滑鼠右鍵按一下 [方案總管] 中的專案節點,然後按一下 [卸載專案]。
在 [Windows 檔案總管] 中使用 [記事本] 編輯 Resource1.resx 檔。
搜尋 "Image1" 的所有執行個體,並將它們變更為 "1."。當您完成時,請儲存檔案。
在增益集的 [\Resources] 資料夾中,將點陣圖檔名從 Image1.bmp 變更為 1.bmp。
再次重新載入增益集專案 (以滑鼠右鍵按一下 [方案總管] 中的專案節點,然後按一下 [重新載入專案]),然後執行專案。
按一下 [工具] 功能表。
增益集會和自訂圖示一起出現在 [工具] 功能表上。
若要將自訂點陣圖當成增益集按鈕圖示加入至原生 Visual C++ 增益集
請遵循上述的相同程序,但要變更下列項目。
建立新的 Visual C++ Win32 DLL 專案。
加入資源檔 (.rc)。
在 [資源檢視] 中,加入點陣圖 (16 x 16) 並為它提供一個數字 ID。
點陣圖必須為 16 x 16 像素且為 16 色或全彩。
修改 Connect.cpp 中的 AddNamedCommand2 方法,將 MSOButton 設定為 VARIANT_FALSE,並將 Bitmap 設定為您先前指定的點陣圖 ID。
建置 DLL。
在原生增益集 DLL 目錄中建立子資料夾 "1033" (英文地區設定)。
將附屬 DLL 複製至 "1033" 目錄。
開啟 AddIn.rgs 並加入兩個登錄機碼值 "SatelliteDllName" 和 "SatelliteDllPath"。例如:
HKCU { NoRemove 'SOFTWARE' { NoRemove 'Microsoft' { NoRemove 'VisualStudio' { NoRemove '8.0' { NoRemove 'AddIns' { ForceRemove 'NativeAddinCustBitmap.Connect' { val LoadBehavior = d 0 val CommandLineSafe = d 0 val CommandPreload = d 1 val FriendlyName = s 'NativeAddinCustBitmap' val Description = s 'NativeAddinCustBitmap Description' val SatelliteDllName = s 'NativeAddinCustBitmapUI.dll' val SatelliteDllPath = s 'C:\Test\CustomBitmap\NativeAddinCustBitmap \NativeAddinCustBitmap\Debug' } } } } } } }
在 "SatelliteDllPath" 中,不要在路徑中加入地區設定 ID。 它將會在執行階段中自動附加。
重新建置增益集以註冊更新的資訊。