2012-06-13 54 views
0

我使用包模板而不是加載項創建Visual Studio 2010擴展。什麼是Visual Studio 2010中的「組織使用」菜單ID?

我想添加一個菜單項到右鍵單擊.cs文件時出現的「組織使用」菜單組。爲此,我需要該菜單組的標識和id。

<Button guid="myCmdSet" id="myButton" priority="0x0100" type="Button"> 
    <Parent guid="guidSHLMainMenu (I think?)" id="???" /> 
    <Icon guid="guidImages" id="bmpPic1" /> 
    <Strings> 
     <CommandName>myCommand</CommandName> 
     <ButtonText>Do Stuff</ButtonText> 
    </Strings> 
    </Button> 

我已經看過hereherehere。基本上圍繞MSDN。這些是出版的嗎,有人知道它們是什麼嗎?

編輯:我找到了通過this method的相關菜單,但我仍然沒有辦法找到菜單組GUID/ID,這正是我真正想要的。

+0

嘗試錄製臨時宏觀和執行該命令。它應該編碼成宏。 –

+0

這不起作用,因爲我沒有試圖獲取命令ID。 – lettucemode

回答

3

OMG,我已經花3小時這樣的:d這裏的解決方案:

<?xml version="1.0" encoding="utf-8"?> 
<CommandTable xmlns="http://schemas.microsoft.com/VisualStudio/2005-10-18/CommandTable" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <Extern href="stdidcmd.h"/> 
    <Extern href="vsshlids.h"/> 
    <Extern href="msobtnid.h"/> 
    <Commands package="guidVSPackage1Pkg"> 
    <Buttons>  
     <Button guid="guidCSharpGrpId" id="mySuperCommand" priority="0x0200" type="Button"> 
     <Parent guid="guidCSharpGrpId" id="IDG_CSHARP_CTX_ORGANIZE" /> 
     <Icon guid="guidImages" id="bmpPic1" /> 
     <Strings> 
      <CommandName>mySuperCommand</CommandName> 
      <ButtonText>My super command</ButtonText> 
     </Strings> 
     </Button> 
    </Buttons> 
    <Bitmaps> 
     <Bitmap guid="guidImages" href="Resources\Images_32bit.bmp" usedList="bmpPic1, bmpPic2, bmpPicSearch, bmpPicX, bmpPicArrows"/> 
    </Bitmaps> 
    </Commands> 
    <Symbols> 
    <!-- This is the package guid. --> 
    <GuidSymbol name="guidVSPackage1Pkg" value="{F066e284-dcab-11d2-b551-00c04f68d4db}" /> 
    <GuidSymbol name="guidCSharpGrpId" value="{5d7e7f65-a63f-46ee-84f1-990b2cab23f9}"> 
     <IDSymbol name="IDG_CSHARP_CTX_ORGANIZE" value="0x3618" /> 
     <IDSymbol name="mySuperCommand" value="0x0100" /> 
    </GuidSymbol> 
    <GuidSymbol name="guidImages" value="{cff24f4c-767f-48ee-aff4-6bdf8218cba0}" > 
     <IDSymbol name="bmpPic1" value="1" /> 
     <IDSymbol name="bmpPic2" value="2" /> 
     <IDSymbol name="bmpPicSearch" value="3" /> 
     <IDSymbol name="bmpPicX" value="4" /> 
     <IDSymbol name="bmpPicArrows" value="5" /> 
    </GuidSymbol> 
    </Symbols> 
</CommandTable> 

必須將guidCSharpGrpIdIDG_CSHARP_CTX_ORGANIZE,因爲他們是在「標準」無法設置的id的。通過「標準」I'mean那些放置在* .h文件內的VisualStudioIntegration \ Common \ Inc目錄中。它們隱藏在cslangsvcui.dll庫中。

要獲得這些ID我已經使用VS命令表PowerToy。你可以從這裏下載: http://archive.msdn.microsoft.com/VSCTPowerToy

入住這也爲這個線程: http://social.msdn.microsoft.com/Forums/en-US/vsx/thread/697245ac-1596-4d6a-b55c-f5b01b69a583

此時該解決方案不會爲你工作,因爲一些的GUID,等我把壓縮的項目上我的SkyDrive: https://skydrive.live.com/#cid=6A19F3A9B7B8E017&id=6A19F3A9B7B8E017!16486

希望這有助於:)

+0

是的,那social.msdn論壇鏈接實際上是我的問題:)我已經有了一段時間的解決方案,但無法找到一種方法來刪除賞金。但既然你把時間放在...... – lettucemode

相關問題