2013-03-18 60 views
0

我有一個VS2012擴展包,它使用DynamicItemStart命令標誌as described on MSDN將命令添加到菜單中。這些命令有點像內置的外部工具工具,所以確切的配置由插件用戶配置,而不是由我定義。一個DynamicItemStart命令似乎最適合這個。是否可以將鍵盤快捷鍵分配給使用DynamicItemStart的Visual Studio 2012擴展性包命令?

根據示例,我添加了一堆物品,將它們隱藏起來,然後使用BeforeQueryStatus回調來控制可見性。這一切似乎都在起作用:菜單項完全按照我的預期顯示,您可以通過用鼠標單擊它們來調用它們。我的軟件包也有一個固定的命令,也可以。

我的非動態命令也出現在工具|選項,鍵盤部分的命令列表中,因此您可以爲它創建鍵盤快捷鍵。 (你也可以從即時窗口調用它,它看起來使用相同的列表。)但是我的動態命令沒有出現!我期待他們成爲某種自動生成的列表,如Tools.ExternalCommand

DynamicItemStart命令是不是可以這樣調用?

回答

1

如果其他人有這個問題,認爲這個問題...

DynamicItemStart命令沒有出現有名字,據我可以找出。文檔說他們是用於MRU或窗口列表,所以也許沒有人認爲有人需要命名它們。

所以,對於我而言,我只是創建了100點佔位符的命令(Command00 ... Command99),設定每個DynamicVisibilityTextChanges命令標誌。 (我現在有一個1237行VSCT文件)。

然後在運行時我使用BeforeQueryStatus回調隱藏未使用的項目,顯示使用的項目,併爲菜單設置其(用戶分配的)標題。而且我的用戶界面非常小心地顯示哪個命令對應於每個分配的動作,並保持映射完好,因此用戶在爲其每個動作指定鍵盤快捷鍵時知道要使用100個命令名稱中的哪一個。

這並不理想,並且在Visual Studio中有點令人討厭的限制。但它看起來將會充分發揮作用。

+1

謝謝。 VS菜單是一個痛苦和不必要的世界,沒有文檔的複雜性。如果DynamicItemStart文檔提到它們實際上完全無用 - 它甚至可以節省數小時的沮喪 - 即使示例MRU和項目列表也需要熱鍵支持! – 2014-12-24 14:46:51

相關問題