在vspackage中修改dte中的命令状态
来源:互联网 发布:微商小视频制作软件 编辑:程序博客网 时间:2024/04/29 22:15
文章来源:
https://social.msdn.microsoft.com/Forums/vstudio/en-US/5b3ffafa-5cc7-4eae-8a7a-29d688872713/vspackage-2010-how-to-enable-copycutpaste-edit-menu-command?forum=vsx&prof=required
在ToolWindow中实现接口:IOleCommandTarget
public class MyToolWindow : ToolWindowPane, IOleCommandTarget
实现逻辑如下:
int IOleCommandTarget.Exec(ref Guid pguidCmdGroup, uint nCmdID, uint nCmdexecopt, IntPtr pvaIn, IntPtr pvaOut)
{
if (pguidCmdGroup == VSConstants.GUID_VSStandardCommandSet97)
{
switch ((VSConstants.VSStd97CmdID)nCmdID)
{
case VSConstants.VSStd97CmdID.SaveProjectItem:
{
//MessageBox.Show(String.Format("VS asked us to {0}.", ((VSConstants.VSStd97CmdID)nCmdID)));
return VSConstants.S_OK;
}
}
}
return (int)Microsoft.VisualStudio.OLE.Interop.Constants.OLECMDERR_E_NOTSUPPORTED;
}
int IOleCommandTarget.QueryStatus(ref Guid pguidCmdGroup, uint cCmds, OLECMD[] prgCmds, IntPtr pCmdText)
{
if (pguidCmdGroup == VSConstants.GUID_VSStandardCommandSet97)
{
switch ((VSConstants.VSStd97CmdID)prgCmds[0].cmdID)
{
case VSConstants.VSStd97CmdID.SaveProjectItem:
{
//If you want more logic you can decide if the commands are enabled and if not just leave out the
//OLECMDF_ENABLED flag below.
prgCmds[0].cmdf = (uint)(OLECMDF.OLECMDF_SUPPORTED | OLECMDF.OLECMDF_ENABLED);
return VSConstants.S_OK;
}
}
}
{
if (pguidCmdGroup == VSConstants.GUID_VSStandardCommandSet97)
{
switch ((VSConstants.VSStd97CmdID)prgCmds[0].cmdID)
{
case VSConstants.VSStd97CmdID.SaveProjectItem:
{
//If you want more logic you can decide if the commands are enabled and if not just leave out the
//OLECMDF_ENABLED flag below.
prgCmds[0].cmdf = (uint)(OLECMDF.OLECMDF_SUPPORTED | OLECMDF.OLECMDF_ENABLED);
return VSConstants.S_OK;
}
}
}
return (int)Microsoft.VisualStudio.OLE.Interop.Constants.OLECMDERR_E_NOTSUPPORTED;
}
}
0 0
- 在vspackage中修改dte中的命令状态
- 在vspackage中使用DTE中的属性框窗口编辑属性
- 在vspackage中使用outputwindow
- 在VsPackage中使用errorlist
- 在vspackage中强制更新command的ui状态(Forcing Command UI refresh)
- 如何在VsPackage中显示属性框
- 通过VSPackage在VS2012中扩展服务器资源管理器表右键菜单并连接数据库
- 在oracle中修改口令的命令
- 通信设备中的DCE和DTE
- 在Fragment中修改Activity中的控件
- 8.2.2.1 在 C# 中使用命令模式捕获状态
- oracle中的修改命令
- session 中对象实例在不同事务中的状态
- ps 命令中的进程状态
- 在Linux命令中修改IP,DNS,网关。
- 在linux中使用命令修改MySQL用户的权限
- VB中的DoEvents命令,在Delphi中与其对应命令
- Rhyme/ Linux chage用户密码状态修改命令
- 定时任务-quartz的使用,实现可页面化管理 标签: quartz
- c语言==两个结构体之间的相互调用(17)
- iOS消除警告
- netstat 的10个基本用法
- PureLayout的基本使用(一)
- 在vspackage中修改dte中的命令状态
- Xcode8使用出现”***“is missing from working copy的问题解决方法汇总
- emWin 2天速成实例教程006_矩阵键盘、PS2键盘、实体按键消息的使用方法(MDK工程)
- Matlab与VC混合MEX编程之关于mexFunction篇
- at org.apache.jsp.WEB_002dINF
- 支持将opencv的Mat图像采用x264等编码器编码的类
- [分治 || 单调栈 单调队列] 51Nod 1215 数组的宽度
- 利用位与运算简化代码
- java Queue中 remove/poll, add/offer, element/peek区别