社区
界面
帖子详情
在VC中,如何隐藏菜单的指定项(简化菜单)
kes2000
2007-03-14 11:45:16
开发工具是VC6.0
什么功能都弄好了,现在对方的要求是在某种情况下,精简一下Menu,去掉ToolBar就好。
本来想把菜单不用的部分整体去掉,删除ID再删除MessageMap还是启动的时候报一堆内存错误。
现在想用将指定菜单项隐藏起来的方法。
VC中隐藏指定菜单项(不是Disable,是类似ShowWindow(0)那样的),各位会不会?
...全文
710
3
打赏
收藏
在VC中,如何隐藏菜单的指定项(简化菜单)
开发工具是VC6.0 什么功能都弄好了,现在对方的要求是在某种情况下,精简一下Menu,去掉ToolBar就好。 本来想把菜单不用的部分整体去掉,删除ID再删除MessageMap还是启动的时候报一堆内存错误。 现在想用将指定菜单项隐藏起来的方法。 VC中隐藏指定菜单项(不是Disable,是类似ShowWindow(0)那样的),各位会不会?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kes2000
2007-03-14
打赏
举报
回复
菜单中有隐藏指定项的方法吗?
闻缺陷则喜何志丹
2007-03-14
打赏
举报
回复
只需要删除菜单项就行了.
消息映射别删
东文-桑晨
2007-03-14
打赏
举报
回复
隐藏菜单栏 SetMenu(NULL)。
隐藏指定项比较麻烦。
为了方便,直接手动删除菜单指定项就行了,消息映射不删除。
TabBars---
VC
6 IDE增强插件
Visual C++ 6.0的集成开发环境对
项
目文件的管理功能比前几个版本有了很大的增强,但是对打开文档窗口的管理和普通的MDI编辑软件一样,只能通过窗口
菜单
切换,使用起来很不方便。2001年的时候我在网上见到了一款名为“WndTab”的
VC
插件,它提供了一个集成在编辑窗口的table标签栏,每个打开的文档对应一个标签栏的按钮,通过鼠标点击按钮可以在文件之间快速切换,大大方便了代码查看和编辑,除此之外,这个插件还提供了C++程序文件和头文件互相切换功能(注:2003年的时候“Wndtab”插件还在开发,功能更多,还支持二次插件开发,但同时不稳定的毛病加重了,且占用资源太多,内存太少使用起来很困难)。这个插件一下子就征服了我(sorry,那个时候我不知道VA),通过对“WndTab”的使用,我也发现了很多问题,比如,文件切换只能在同一个目录
中
进行,当程序文件和头文件分别放在不同的目录
中
时就不能切换。还有一个很大的问题就是“WndTab”提供了很多并不实用(仅仅是本人的看法,如有雷同,实属荣幸)而且繁琐、容易出错的功能,比如对标签栏的重组和编号功能,这个功能在频繁地打开和关闭文件时经常令
VC
的IDE崩溃。好在 “WndTab”的作者公开了源代码,于是我就开始研究“WndTab”的代码,于是便有了借鉴“WndTab”的成功经验,开发一个功能更实用且简单、稳定的插件的想法,于是“TabBars”便在2002年诞生了。 “TabBars”插件借鉴了“WndTab”插件的框架,大刀阔斧地去掉了标签栏重组和编号功能,
简化
了table标签栏的界面布局,使用Button 风格的自画table控件,重新设计了工具栏图标,界面更加美观。持此之外,TabBars还添加了很多实用的功能,比如自动保存文件,C++程序文件和头文件互相切换支持多目录搜索功能,注释选定的代码块,从注释的代码块
中
恢复代码,为函数添加格式化函数声明,注释代码时自动添加操作者信息,自动保存编译过程,自动保存文件等等,所有的功能都支持快捷键。“TabBars”坚持开源品质,2002年发布的同时也发布了源代码,当时在网上引起了很大的反响,很多朋友提出了宝贵意见,修改bug,于是便有了很多个版本,我一直根据朋友的意见修改并维护着一个自己的版本,并通过http://www.winmsg.com/cn/orbit.htm发布,随后由于工作的原因有一段时间不能接触网络,新版本“TabBars”的发布也受到了影响,但是对“TabBars”的改进一直没有停止。2003 年,我和Codeproject上的.dan.g.联系,征得他的同意后将“
项
目代码自动打包”和“OpenZip”两个功能添加到了 “TabBars”(注:请参考codeproject上的文章:Zip-up the source code for your latest CodeProject article),我同时对这两个功能进行了修改,原来的“
项
目代码自动打包”功能只能将dsp目录
中
的文件打包,但是考虑到很多软件
项
目的代码文件和头文件都是分布在不同的目录
中
,只打包当前目录有些不妥,于是添加了
指定
整个目录打包的选
项
。2004年,我又将.dan.g.的“在代码
中
添加 Visio-like diagrams的功能”集成到“TabBars”
中
(注:请参考codeproject上的文章:Add and edit diagrams in your code with this 'Visio-like')。这两次修改的版本都没有正式发布,只在朋友们
中
间小范围测试使用,并不断修改。2005年4月,“TabBars”的测试工作完成,正式定版发布,版本号为:1.0.17.3169,2005年6月,代码整理完成,同时发布源代码。 本文主要介绍TabBars插件的功能和使用方法,关于如何编译、调试“TabBars”源代码和代码解读的问题,请参阅“http://blog.csdn.net/orbit/”上的“TabBars”系列文章。 说了这么多,你一定想知道“TabBars”到底什么样子?有什么功能?如何使用?下面就介绍“TabBars”的功能和使用方法。图(1) 就是“TabBars”集成到
VC
编辑环境后的界面,上面是一个工具条,下面是用于文件快速切换的table标签栏: 图1. 集成到
VC
编辑环境的“TabBars” 一 使用table标签窗口快速切换文件 在一个大的
项
目
中
浏览不同文件
中
的代码是一件痛苦的事情,
VC
所能够提供的帮助就是工作区
中
的“Files”窗口和
菜单
栏的“窗口”
菜单
,当
项
目
中
的文件很多时使用起来非常不方便。如果能够象属性页窗口那样通过一个Table控件在不同的窗口之间快速切换,就能够大大的提高工作效率。“TabBars”插件就实现了这个功能,“TabBars”插件采用子类化(subclass)技术,通过Hooker过滤工作区窗口的消息维护了一个table标签栏,在新文档窗口创建的时候在table标签栏上创建对应的标签按钮,文档关闭时删除标签按钮。这样开发人员只需要在标签栏的按钮上点击鼠标就可以快速切换到这个文件。在标签栏按钮上点击鼠标右键会弹出属性
菜单
: 图2. 标签栏属性
菜单
通过
菜单
的关闭窗口功能可以有选择的关闭窗口,通过系统
菜单
可以访问Windows的文件系统
菜单
,关于Windows文件系统
菜单
将在后面介绍。 用户可以在配置窗口设置标签栏的显示属性: 图3. TabBars 选
项
在“TabBars 选
项
”窗口可以设置标签栏的位置,可以在编辑窗口的上面,也可以设置在编辑窗口的下面,满足不同习惯用户的要求。还可以选择是否在标签栏显示图标,是否支持系统
菜单
以及新打开窗口的位置,对于系统资源比较有限的用户还可以选择打开窗口的最大限制。 二 C++程序文件和头文件快速切换 对于一个管理良好的软件
项
目,函数的声明和实现通常是分开放在一对对应的程序文件和头文件
中
,C++更是推崇这种做法,于是在程序文件和对应的头文件之间切换,查看函数的定义和实现就成了一个频繁的操作,“TabBars”插件的C++程序文件和头文件快速切换功能就是为了方便C/C++程序员而设计的。很多插件都有这个功能,但是“TabBars”有自己的特色,那就是支持多目录搜索,使用户在浏览其它库的代码时也能够得心应手。 要切换到当前打开文件对应的程序文件或头文件,只需点击工具栏的图标就可以切换到对应的文件,如果文件没有打开“TabBars”会自动打开文件。通过插件配置窗口可以设置切换文件的搜索路径和文件匹配扩展名: 图4. 文件切换选
项
“TabBars”最多支持64个搜索目录,根据软件
项
目的不同可以选择使用其
中
的部分搜索目录,“TabBars”只从目录前面有X选择标记的目录
中
搜索对应的文件。用户还可以
指定
文件搜索时对扩展名的匹配,图(4)
中
的配置适用于C/C++文件的切换。“TabBars”首先用
指定
的匹配扩展名在文件所在的目录搜索对应的程序文件或头文件,如果没有找到对应的文件就会依次搜索用户选择的搜索目录。 该功能的默认快捷键是:Ctrl+Shift+S 三 将当前打开的文件所在目录设为工作目录 有时候开发人员需要频繁地打开位于某个目录
中
的文件,比如浏览某个软件包代码的时候,可是
VC
集成环境的“当前目录”却在project文件所在的目录,每次打开文件时文件选择对话框都会自动定位到project文件所在的目录,还要手工换到软件包所在目录,非常不方便。“TabBars”提供的这个功能可以把当前打开的文件所在的目录设为“当前目录”,这样再打开这个目录
中
的文件时
VC
的文件选择对话框会自动定位到这个目录,省去很多麻烦。单击工具栏的按钮就可以轻松的改变集成环境的“当前目录”。 四 以文本方式打开资源文件
VC
的class wizard在管理资源的时候经常会出错,有时候两个控件被设置为相同的ID,这会导致程序运行过程
中
存在潜在的错误,另外,有时候开发人员希望几个控件拥有连续的的ID(通常用在一组相同类型的控件消息处理),这就需要手工编辑资源文件。“TabBars”给开发人员提供了不离开集成开发环境就能够以文本方式编辑资源文件的功能。这个功能的使用很简单,首先打开某个资源,资源编辑窗口就成为当前窗口,此时单击工具栏的按钮就可以以文本的方式打开资源文件。 五 为选定的代码添加C风格的注释 这个功能就不多说了,就是使用一对/**/ 将选择的代码编程C风格的注释,如果用户还设置了“自动添加注释信息”,则会在开始位置添加注释信息。使用方法是首先在编辑窗口选择一块代码,然后单击工具栏的按钮,代码注释的效果如下图所示: 图5. C风格代码注释效果 该功能的默认快捷键是:Ctrl+Shift+B 六 为选定的代码添加C++风格的注释 嵌套的/**/注释是不允许的,当选择的代码块
中
已经有/**/注释的代码块时,使用C++风格的注释就是唯一的选择了。使用的方法是首先在编辑窗口选择一块代码,然后单击工具栏的按钮,代码注释的效果如下图所示: 图6. C++风格代码注释效果 该功能的默认快捷键是:Ctrl+Shift+R 七 从注释代码
中
恢复代码 这个功能也不用多说了,使用方法是首先在编辑窗口选择一块注释代码,对于C风格的代码块要选择完整的/**/对,然后单击工具栏的按钮。 该功能的默认快捷键是:Ctrl+Shift+U 八 添加格式化函数说明 这个功能就是在函数前面添加具有一定格式的说明,使用方法是首先选择完整的函数声明,下图所示的就是两种正确的选择: 图7. 选择完整的函数声明 然后单击工具栏的按钮,在弹出的对话框
中
输入对函数的说明和参数解释: 图8. 输入函数说明 下图是生成的说明块的效果: 图9. 格式化函数说明的效果 该功能的默认快捷键是:Ctrl+Shift+F 九 添加Visio-like diagrams 在你的代码
中
添加几个简单的模块关系图是不是很酷?感谢Codeproject上的.dan.g.为我们完成了这个工作。这个功能的使用很简单,首先在编辑窗口内将编辑光标定位到需要插入图表的位置,然后单击工具栏的按钮,就会弹出diagrams编辑窗口: 图10. diagrams编辑窗口 下图是生成的代码: 图11. 生成的ASCII图表 如果要修改ASCII图表,只需选择完整的ASCII图表代码块,然后单击工具栏的按钮。 十
VC
工程代码自动打包 直接在集成开发环境
中
将整个
项
目的源代码打包压缩成zip文件是一个很实用的功能,“TabBars”对此功能进入了深度开发,使其功能更为完善。当你要打包一个
项
目的代码时,单击工具栏的按钮就可以了。“TabBars”插件会自动搜索整个工作区的所有
项
目,然后定位到工作区的根目录,用户也可以根据代码组织的实际情况选择需要打包的代码所在目录,整个界面如图(12)所示: 图12. 打包整个工作区 选择压缩文件的输出位置,单击“确定”按钮就可以了。由于代码所在目录通常还有
VC
编译生成的临时文件,用户还可以选择打包过程
中
排除这些文件,在“打包压缩设置”窗口
中
可以设置文件选择方式: 图13. 打包压缩选
项
设置窗口 如果选择了“压缩完成后打开文件确认”选
项
,“TabBars”会在打包完成后自动调用zip文件的关联软件打开生成的压缩包,以确认是否正确生成了压缩文件。 十一 从zip压缩文件
中
打开
VC
工程 通常从网上下载的例子代码都是压缩在zip文件
中
的,查看zip文件
中
的
项
目通常要将代码解压缩到临时目录
中
然后用
VC
打开
项
目,“TabBars”提供了不离开
VC
的集成开发环境就能够查看zip压缩文件
中
的
VC
项
目的功能。单击工具栏的按钮,在弹出的文件选择窗口
中
选择
VC
项
目所在的zip压缩文件,“TabBars”会自动在
指定
的临时目录
中
展开压缩文件,然后定位到工作区文件并打开。如果一个zip文件
中
没有工作区(dsw)文件,“TabBars”会弹出窗口让用户选择具体的
项
目文件(dsp)。如果zip文件
中
有多个工作区文件,“TabBars”会弹出如下窗口让用户选择一个工作区: 图14. 选择工作区 用户可以通过图(13)所示的“打包压缩选
项
设置窗口”设置临时文件存放目录,默认的临时文件存放位置是:C:\unzipped 十二 自动保存文件 “TabBars”提供定时自动保存文件功能。在图(15)所示的设置窗口
中
可以选择启用或关闭自动保存功能。 图15. 一般设置窗口 十三 自动添加注释信息 “TabBars”提供在注释代码时梓潼添加注释信息的功能,目前的版本支持添加注释人名称和时间戳。可以在图(15)所示的设置窗口
中
选择自动添加的注释信息。 十四 自动生成工程编译日志 “TabBars”提供生成编译日志的功能,会在dsp文件所在目录生成一个同名的log文件,内部记载
项
目的编译次数和每次编译的情况,记录编译次数可以为你的软件定版本提供依据。以下时日志文件的部分内容示例: /本日志文件由 "Tabbar Add-in(1.17.3169) For Visual C++ 6.0" 创建 //
项
目文件:C:\unzipped\CustDlg\CustDlg.dsp //如果文件增长的很大请删除除本节之外的其他信息 [MAIN] nBuildNumber = 49 [Build00000001] sStartTime = 2005-08-18 16:17:53 sCompileUser = orbit nErrors = 0 nWarns = 0 sEndTime = 2005-08-18 16:17:57 [Build00000002] sStartTime = 2005-08-18 16:19:32 sCompileUser = orbit nErrors = 0 nWarns = 0 sEndTime = 2005-08-18 16:19:33 可以在图(15)所示的设置窗口
中
选择是否记录日志以及日志记录的内容。 十五 在table标签栏使用Windows系统
菜单
在table标签栏单击鼠标右键会弹出文件属性
菜单
,如果你在“TabBars选
项
”窗口
中
选择“在右键
菜单
使用系统
菜单
”选
项
,则还可以使用Windows的系统
菜单
,不离开
VC
的集成开发环境就可以进行常规的文件操作: 图16. 系统
菜单
示例
VC
2005实现的半透明
菜单
内容索引:
VC
/C++源码,界面编程,半透明
菜单
最近两天看了codeproject上牛人写的半透明代码,精炼出了这个东西。在此之前听说这个东西实现起来很麻烦,所以这次自己尝试了一下,不过感觉也没有什么好难的,我的代码应该比官方的要
简化
多了,大家应该能看懂,用
VC
2005编写的,自我感觉效果还很不错。程序是用HOOK实现的,因此对菜鸟更具吸引力。
用
VC
#.NET开发交互式CAD系统
用
VC
#.NET开发交互式CAD系统,包括结合GDI+和OPENGL两种方案。 联系平台客服可开发票。
VC
助手(visual assist x 10.6.1827.0)支持VS2010
VC
助手(VS助手)安装以后能是Visual C++ 6.0拥有代码感应能力,增强代码高亮显示效果。同时增强VS系列的代码感应能力。 产品特点 改进了Intellisense:成员和完成列表框的出现更加频繁、迅速,并且结果更加准确。参数信息更加完善,并带有注释。含有所有符号的停驻工具提示。 代码输入更迅速:输入时观察suggestion列表框,其
中
将根据您的输入提供相应的备选字符。为了更加方便的选择字符,还可以提前定义Atuotext和代码模板。 错误自动校正:监控您的IDE,对那些简单但耗时的错误进行即时校正。 信息获取更加快速:更加迅速了解代码信息,在新的VA View
中
观察当前的停驻类浏览器,可以获得当前符号的更多信息。除此,资源窗口
中
还添加了小的内容和定义
项
,可以获取信息快照。 增加了色彩和格式:采用了更多的色彩和格式选
项
,代码解译更加迅速。增强了IDE的基本语法色彩,在您输入代码的同时,突出匹配和不匹配条目。另外,还添加了column indicator和print in color,将RTF置于剪切版内。
简化
了查找和浏览:查找和浏览更加轻松。通过内容查找可以快速跳到相同名称的符号处,在您工作台的任何地方都可以找到符号定义,还可以转入您代码
中
的符号执行处。选择您文件的列表方式,锁定头文件和相应的cpp文件。从您的工作台文件列表
中
打开文件。含有最近行为列表,可以在代码的活动部分之间相互转换。Move scope可以到达下一个方法,还包含往返浏览。 拼写检查:在您输入代码的同时进行检查,并且可以看到同Microsoft Word相似的红色下划线。含有Spell check comments and strings,另外,Spell check code可以检查错误的输入符号。 拓展了基本编辑:对编辑器进行了增强,编辑代码更加迅速。含有Surround selections,multiple clipboards. Sort lines。 适合您个人风格的配置特色:细化选
项
对话框,定义Visual Assist X特性以适应您的编程习惯。内容
菜单
中
含多个命令,设置快捷方式可以加快访问您所偏好的命令。可以禁止或允许Visual Assist X,或者强制其重新剖析从而更加智能化。
MFC解决窗口保存及重绘闪烁问题的一种比较好的方案 v1.0.5
包含文件说明: 1. SolveFlashingAndRedrawv1.0.5 纯净版 无闪烁的MFC应用框架,实际使用时把此工程改名成你要建立的
项
目名称,然后开始开发即可。你熟悉MFC的话研究这个框架的半个小时应该就明白并熟练运用了。 2.SolveFlashingAndRedrawv1.0.5 demo版 利用SolveFlashingAndRedrawv1.0.4框架写的一个示例小程序,主要展示框架要实现的优点特性。 3.
VC
Rn 修改
vc
工程名工具 ___作者 田彬.exe 用网上找到的一个MFC改工程名称的小工具,很实用。如果你想使用本框架就可以用它来改成你想要的工程名了。 4. 未使用本框架的类似功能
简化
程序 没有使用框架的程序,实现的功能和Demo类似。但是运行之后改变窗口大小等,会发现图形闪烁很厉害! 5. SolveFlashingAndRedrawv1.0.5 demo版 运行截图.jpg 6. ReadMe.txt 说明文件。 补充说明: 工程使用
vc
6.0开发,如果你用
vc
6.0双击.dsw文件无法打开,请先打开
vc
6.0然后把.dsw拖动到
vc
上面。 如果这种方法还是无法打开,你新建一个
vc
6.0 mfc sdi程序,把示例
中
框架拷贝到这个新工程
中
,运行即可,代码量不是太多。 框架说明: /****************************************************** SolveFlashingAndRedraw框架说明 ******************************************************/ /**
项
目名称: demo框架 版本号: v1.0.5 第一作者: Jef 地址:
中
国/江苏 日期: 20100724 电子邮箱: dungeonsnd@126.com 版权: 1.您可以修改及免费使用本程序。 2.修改之后附上您的个人信息发送到上面的作者邮箱,作者负责在全面测试后发布您修改后的新版本。 3.您使用本程序而导致任何伤害以及经济损失,由过错方依法承担所有责任,一概与第一作者及合作单位无关。 4.如果您使用本程序则表示您已经同意此版本协议!否则请勿使用!
项
目功能: SolveFlashingAndRedraw框架是MFC解决窗口保存及重绘闪烁问题的一种比较好的方案(Win32解决方法类似)。 版本历史: v1.0.1 20091126 第一版本 v1.0.2 20091212 第二版本 1. 修改了部分变量的名字使其更符合其意义 2. 增加为两个工程,一是带demo例子的,另一是不带demo的纯净版. 3. 修改了其
中
一个错误. 如 CreateCompatibleDC之后没有调用DeleteDC等. v1.0.3 对v1.0.2进行了整理 v1.0.4 20100416 在v1.0.3的基础上进行整理,并增加了裁剪区,提高了绘图效率! v1.0.5 20100724 1. 添加了一个工具类CMemBmpDc,帮助产生一个内存DC,并把
指定
的内存位图选进去。方便绘图。 2. 演示了在适当时机如何高效画图,见Demo版的DrawSinwave(bool bDrawOnScreen)函数。 演示了用两种方法来绘图, 方法1. 直接绘图到屏幕上, 同时绘图到内存位图上,内存位图不会立即贴到屏幕上减少了内存拷贝的时间,提高了效率, 将来窗口失效时OnPait贴图到屏幕上. 这种方法的优点时减小了不必要的内存拷贝,缺点时当绘图内存复杂并且非常耗时可能会导致闪烁。 故适用于像本Demo的这样绘图(本例函数只绘制一小段直线)。 方法2. 绘制到内存位图上后把应该重绘的这一小块设成裁剪区,然后立即OnPait重绘这个裁剪区。 运行步骤: 直接运行demo里面的程序,在窗口上任意拖拉鼠标画线,然后点击
菜单
栏的几个示范
菜单
项
,然后移动窗口、 改变窗口大小、最大最小化窗口、用其它窗口覆盖此窗口、鼠标放到任务栏。。。 以上种种操作观察窗口内的图像变化。可以发现窗口内图像几乎看不到闪烁,而且窗口的元素已经保存下来重绘时任然可以看到图像。 如何使用: 进行
项
目开发时,可以先建立
项
目,然后把本解决方案框架拷贝到新建
项
目
中
即可。 也可以自己根据需要修改纯净版。 其它: 友情提示,小心 View类头文件及View类的实现文件
中
有说明,使用时别把它弄到你实际
项
目里哦! 进行大量复杂的图形的输出,而且对效率要求特别高时要考虑适当修改此框架(如增加裁剪区)后再使用哦。 关于如何在此框架的基础上提高绘图效率可以参阅下面的文章 如何提高绘图的效率 文章摘录 http://hi.baidu.com/new8sun/blog/item/68ccba8a80c3aadafc1f1079.html MFC双缓冲解决图象闪烁 2009-06-13 23:03 显示图形如何避免闪烁,如何提高显示效率是问得比较多的问题。而且多数人认为MFC的绘图函数效率很低,总是想寻求其它的解决方案。 MFC的绘图效率的确不高但也不差,而且它的绘图函数使用非常简单,只要使用方法得当,再加上一些技巧,用MFC可以得到效率很高的绘图程序。
界面
15,979
社区成员
115,896
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章