社区
C#
帖子详情
怎样在vc#开发的项目菜单中插入图标?
hierce
2003-08-22 12:57:28
怎样在vc#开发的项目菜单中插入图标?
...全文
46
4
打赏
收藏
怎样在vc#开发的项目菜单中插入图标?
怎样在vc#开发的项目菜单中插入图标?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
chainet
2003-08-22
打赏
举报
回复
VS.NET中提供的菜单控件是不能插入图标的。
要想有图标得自己继承MenuItem,来自己控制图标的保存、提取和显示。
有许多第三方的菜单控件都可以做到,如DotNotBar等等。
还有很多源代码可以参考和使用。自己找~~
y1g1y1
2003-08-22
打赏
举报
回复
http://expert.csdn.net/Expert/TopicView1.asp?id=2093334
甴曱
2003-08-22
打赏
举报
回复
you look:
http://expert.csdn.net/Expert/topic/1803/1803226.xml?temp=.7020532
wee2
2003-08-22
打赏
举报
回复
http://www.codeproject.com/cs/menu/menucontrolimage.asp#xx341033xx
TabBars---VC6 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++2010权威
开发
指南+源代码
资源比较大,分成两部分上传。 第一部分 Visual C++ 2010
开发
与新特性 第1章 Visual C++ 2010
开发
环境简介 1 1.1 Visual C++ 2010简介 1 1.2 Visual C++ 2010下载安装指南 1 1.3 Visual C++ 2010主要特点与 1.3 新特性 3 1.4 Visual C++ 2010
开发
环境操作 1.4 指南 6 1.4.1 创建Visual C++应用程序 6 1.4.2 Visual C++ 2010
菜单
介绍 9 1.5 Visual C++ 2010 MFC简介 12 1.6 Visual C++ 2010 CLR简介 13 1.7 Visual C++ 2010 64位编程 14 1.8 支持新的C++语言标准 14 1.8.1 支持新的C++语言标准 1.8.1 (C++ 0x) 14 1.8.2 Lambda表达式 15 1.8.3 静态断言static_assert 17 1.8.4 auto关键字 18 1.8.5 右值引用 19 1.8.6 安全数据类型 22 1.8.7 移动构造 23 1.9 支持
开发
并行程序 26 1.9.1 运行库支持native代码 26 1.9.2 调试和分析工具 29 1.10 对MFC的增强 31 1.10.1 任务对话框CTaskDialog 31 1.10.2 重启管理器(Restart Manager)支持 33 1.10.3 支持新的用户界面风格 34 第2章 MFC应用程序框架 37 2.1 用MFC向导生成应用程序 37 2.1.1 生成的程序框架 37 2.1.2 生成的应用程序类型 43 2.1.3 向导生成工程文件简介 46 2.2 应用程序框架分析 46 2.2.1 框架简介 47 2.2.2 MFC应用程序运行流程 50 2.2.3 应用程序窗口 51 2.2.4 消息机制与消息循环 59 2.3 文档与视图 65 2.3.1 文档类结构分析 65 2.3.2 视图类结构分析 65 2.3.3 文档与视图的关系 67 2.3.4 SDI应用程序分析 69 2.3.5 MDI应用程序分析 69 2.4 工具栏与状态栏 69 2.4.1 工具栏 70 2.4.2 状态栏 78 2.5 MFC新功能——Office 2007 2.5.1 风格程序分析 85 2.6 MFC新功能——Visual Studio 2.6.1 风格程序分析 90 2.7 MFC新功能——Windows资源 2.7.1 管理器风格程序分析 98 2.8 应用程序框架类对象分析 100 2.8.1 视图类对文档类的调用 100 2.8.2 在框架类
中
获得当前的文档类和视图类对象指针 101 2.8.3 获得应用程序类对象的指针 101 2.8.4 从应用类对象
中
获得主框架类对象的指针 101 2.9 小结 102 第3章 Visual C++ 2010 MFC
菜单
编程 103 3.1
菜单
编程 103 3.1.1 创建
菜单
104 3.1.2 创建
菜单
热键 115 3.1.3 标记
菜单
115 3.1.4 给
菜单
加入
图标
119 3.1.5 禁用
菜单
121 3.1.6 移除与加载
菜单
127 3.2
菜单
消息的传输机制 129 3.2.1
菜单
消息的分类 129 3.2.2
菜单
消息的传输路由 129 3.3 动态
菜单
操作 131 3.3.1 添加
菜单
131 3.3.2
插入
菜单
133 3.3.3 删除
菜单
135 3.3.4
插入
菜单
的命令响应 136 3.3.5 修改
菜单
137 3.4 小结 140 第4章 Visual C++ 2010 MFC对话框编程 141 4.1 对话框简介 141 4.1.1 对话框的控件简介 141 4.1.2 对话框的种类简介 149 4.1.3 设计对话框 150 4.2 创建与销毁对话框 153 4.2.1 模态对话框 153 4.2.2 非模式对话框 159 4.2.3 属性页对话框 163 4.3 消息对话框 173 4.4 通用对话框 175 4.4.1 文件打开对话框 176 4.4.2 文件保存对话框 178 4.4.3 颜色对话框 179 4.4.4 字体对话框 181 4.4.5 查找对话框 183 4.4.6 页面设置对话框 185 4.4.7 打印对话框 186 4.5 小结 187 第5章 Visual C++ 2010 MFC对话框控件 188 5.1 Visual C++ 2010 Button控件简介与
开发
191 5.2 Visual C++ 2010 List Box 控件简介与
开发
193 5.3 Visual C++ 2010 Com boBox控件简介与
开发
195 5.3.1 创建扩展组合框控件 196 5.3.2 在扩展组合框控件
中
使用 5.3.2 图像列表 197 5.3.3 设置各项的图像 197 5.3.4 处理扩展组合框控件
中
的通知消息 198 5.4 Visual C++ 2010 List控件简介与
开发
198 5.4.1 列表控件和列表视图 199 5.4.2 列表项和图像列表 199 5.4.3 回调项和回调屏蔽 200 5.4.4 创建列表控件 200 5.4.5 创建图像列表 201 5.4.6 向控件添加列(报表视图) 204 5.4.7 向控件添加项 205 5.4.8 在列表控件
中
滚动、排列、 5.4.8 排序和查找 205 5.4.9 在列表控件
中
实现工作区 205 5.4.10 处理列表控件
中
的通知消息 206 5.4.11 更改列表控件样式 206 5.4.12 虚拟列表控件 207 5.4.13 列表控件的消息映射 209 5.4.14 列表控件的风格选项及表头设置 210 5.4.15 销毁列表控件 210 5.5 Visual C++ 2010 Edit控件简介与
开发
211 5.6 Visual C++ 2010 Rich Edit控件简介与
开发
213 5.6.1 Rich Edit控件
中
的字符格式 215 5.6.2 Rich Edit控件
中
的段落格式 215 5.6.3 Rich Edit控件
中
的当前选定内容 215 5.6.4 Rich Edit控件
中
的分词 216 5.6.5 Rich Edit控件
中
的剪贴板操作 216 5.6.6 Rich Edit控件
中
的流操作 216 5.6.7 Rich Edit控件
中
的打印操作 216 5.6.8 无底的Rich Edit控件 217 5.6.9 来自Rich Edit控件的通知 217 5.7 Visual C++ 2010 Progress控件简介与
开发
219 5.7.1 进度控件的样式 219 5.7.2 进度控件的设置 219 5.7.3 操作进度控件 220 5.8 Visual C++ 2010 Tree控件简介与
开发
220 5.8.1 树控件样式 221 5.8.2 树控件父项和子项 221 5.8.3 树控件项位置 222 5.8.4 树控件项标签 222 5.8.5 树控件标签编辑 223 5.8.6 树控件项的状态 223 5.8.7 树控件图像列表 224 5.8.8 树控件项选择 224 5.8.9 树控件拖放操作 224 5.8.10 树控件项信息 225 5.8.11 树控件通知消息 225 5.9 Visual C++ 2010 DBgrid控件简介与
开发
226 5.9.1 示例程序1 226 5.9.2 示例程序2 227 5.10 Visual C++ 2010 Rebar控件简介与
开发
228 5.10.1 在Rebar控件
中
使用图像列表 230 5.10.2 在Rebar控件
中
使用对话栏 231 5.10.3 处理Rebar控件
中
的通知消息 231 5.11 Visual C++ 2010 Timer控件简介与
开发
232 5.12 Visual C++ 2010 Tab控件简介与
开发
234 5.12.1 选项卡和选项卡控件属性 235 5.12.2 选项卡控件的使用方法 235 5.12.3 创建选项卡控件的方法 235 5.12.4 处理选项卡控件通知消息 236 5.12.5 CTabCtrl类简介 236 5.13 Visual C++ 2010 IP控件简介与
开发
241 5.14 Visual C++ 2010 Picture控件简介与
开发
241 5.15 Visual C++ 2010 Slider控件简介与
开发
244 5.15.1 滑块控件样式 244 5.15.2 滑块控件成员函数 245 5.15.3 滑块控件通知消息 246 5.16 Visual C++ 2010 Scroll Bar控件简介与
开发
246 5.17 Visual C++ 2010 Hot Key控件简介与
开发
248 5.17.1 使用热键控件 248 5.17.2 设置热键 249 5.18 Visual C++ 2010 Animation控件简介与
开发
249 5.18.1 使用动画控件 249 5.18.2 动画控件发送的通知 250 5.19 Visual C++ 2010 Spin控件简介与
开发
250 5.19.1 数值调节钮的样式 250 5.19.2 数值调节钮成员函数 251 5.20 Visual C++ 2010 GroupBox控件简介与
开发
251 5.21 Visual C++ 2010 Data Time Picker控件简介与
开发
252 5.21.1 创建日期和时间选择器控件 253 5.21.2 访问嵌入的月历控件 253 5.21.3 在日期和时间选择器控件
中
使用自定义格式字符串 254 5.21.4 在日期和时间选择器控件
中
使用回调字段 254 5.21.5 处理日期和时间选择器控件
中
的通知消息 256 5.22 Visual C++ 2010 Month Canlendar控件简介与
开发
256 5.22.1 创建月历控件 257 5.22.2 处理月历控件
中
的通知消息 257 5.22.3 设置月历控件的日状态 257 5.23 Visual C++ 2010 Custom控件简介与
开发
258 5.23.1 使用MFC方法定制控件必备的几个基本概念 259 5.23.2 定制自定义控件的3种常见方法 260 5.24 Visual C++ 2010 SysLink控件简介与
开发
260 5.25 Visual C++ 2010 Split Button控件简介与
开发
261 5.26 Visual C++ 2010 Network Address控件简介与
开发
262 5.27 Visual C++ 2010 Check Box控件简介与
开发
262 5.28 Visual C++ 2010 Radio Button控件简介与
开发
264 5.28.1 为单选按钮控件分组 264 5.28.2 获得被选
中
的单选按钮的文本 264 5.29 Visual C++ 2010 MediaPlayer控件简介与
开发
265 5.30 小结 266 第二部分 Visual C++ 2010下MFC
开发
第6章 计算机测控系统概述 267 6.1 Visual C++ 2010 SDI
开发
简介 267 6.1.1 建立应用程序基本框架 267 6.1.2 处理视图 267 6.1.3 处理文档 271 6.1.4 串行化处理 274 6.1.5 SDI应用程序编程思路 275 6.2 Visual C++ 2010 MDI
开发
简介 277 6.2.1 多文档接口 277 6.2.2 生成程序 278 6.2.3 程序类、文件和代码 279 6.2.4 自定义资源 281 6.3 Visual C++ 2010 View
开发
282 6.3.1 生成源文件 283 6.3.2 初始化视图类数据成员 283 6.3.3 加入消息处理功能 285 6.3.4 设计程序资源 290 6.3.5 定制MiniDraw窗口 292 6.3.6 程序清单 293 6.4 Visual C++ 2010 EditView
开发
298 6.4.1 生成MiniEdit程序 299 6.4.2 修改程序
菜单
300 6.4.3 编辑加速键 301 6.4.4 程序清单 303 6.5 Visual C++ 2010 FormView
开发
306 6.5.1 自定义FormDemo程序 307 6.5.2 程序清单 314 6.6 Visual C++ 2010 ScrollView
开发
319 6.6.1 加入滚动功能 319 6.6.2 坐标换算 319 6.6.3 限制图形大小 322 6.6.4 改变鼠标光标 325 6.7 Visual C++ 2010 HtmlEditView
开发
328 6.8 Visual C++ 2010 HtmlView
开发
331 6.9 Visual C++ 2010 ListView
开发
335 6.10 Visual C++ 2010 RichEditView
开发
335 6.11 VisualC++ 2010 TreeView
开发
336 6.12 Visual C++ 2010 Office 2007风格文档视图
开发
框架 337 Visual C++ 2010 Visual Studio 6.13 2008风格文档视图
开发
框架 342 6.14 Visual C++ 2010 Windows资源管理器风格文档视图
开发
框架 346 6.15 小结 350 …… 第7章 VisualC++2010MFC应用程序界面与美化 第8章 VisualC++2010MFC文本与字体 第9章 VisualC++2010MFC图形图像编程 第10章 VisualC++2010MFC动态函数链接库 第11章 VisualC++2010MFCActiveX控件 第12章 VisualC++2010MFC文件与注册表操作 第13章 VisualC++2010MFC数据库
开发
第14章 VisualC++2010MFC多线程程序设计 第15章 VisualC++2010MFC网络程序设计 第16章 VisualC++2010MFC进程通信 第三部分 VisualC++2010下MFC与CLR进行
开发
第17章 VisualC++2010CLR
开发
基础 第18章 VisualC++2010CLRWindows窗口编程 第19章 VisualC++2010MFC与.NET交互编程 第四部分 发布VisualC++2010程序 第20章VisualC++2010应用程序部署 第五部分 基于Windows7平台用VisualC++2010
开发
第21章 VisualC++2010基于Windows7新特性
开发
VC学习大纲 VC学习讲义
第一课: Windows程序运行原理及程序编写流程,窗口产生过程,句柄原理,消息队列,回调函数,窗口关闭与应用程序退出的工作关系,使用VC++的若干小技巧,stdcall与cdecl调用规范的比较,初学者常犯错误及注意事项。我们通常不必要知晓每一个函数和消息。但另一方面,也不得不记住其
中
的一部分,否则很难将VC++运用自如。到底该记住哪些,这在我们的课程
中
都会涉及到。 第二课: C++经典语法与应用,类的编写与应用,构造与析构函数,函数的重载,类的继承,函数覆盖,基类与派生类的构造函数、析构函数先后调用顺序,如何在派生类构造函数
中
向基类的构造函数传递参数,this成员变量,类型转换的内幕,虚拟函数与奇妙多态性。VC工程的编译原理与过程,将工程
中
不同的类拆分到不同的原文件
中
,每一个类由一个.h和.cpp文件共同完成,然后解决头文件重复定义问题,培养了学员良好的编程习惯,也为以后分析MFC Appwizard生成的工程奠定了良好基础。 第三课: 讲述MFC AppWizard的原理与MFC程序框架的剖析。AppWizard是一个原代码生成工具,是计算机辅助程序设计软件,Winmain在MFC程序
中
是如何从源程序
中
被隐藏的,theApp全局变量是如何被分配的,MFC框架
中
的几个类的作用与相互关系,MFC框架窗口是如何产生和销毁的,对窗口类的PreCreateWidow和OnCreate两个函数的着重分析,Windows窗口与C++
中
的CWnd类的关系。 第四课: 讲述如何运用ClassWizard及对MFC消息响应函数机制的分析,理解发送给窗口的消息是如何被MFC框架通过窗口句柄映射表和消息映射表来用窗口类的函数进行响应的。掌握设备描述表及其封装类CDC的使用,CDC是如何与具体的设备发生关联的,融合具体的画图程序进行分析。如何设置封闭图形的填充刷子(位图画刷与透明画刷的使用)。 第五课: 掌握CDC的文字处理程序的编写,如何产生自定义字体和自定义
插入
符,熟悉对CString类的使用。通过对kala ok程序的编写,讲解定时器的使用和DrawText函数的巧妙运用。讲解如何使用CDC的裁减功能。 第六课:
菜单
的工作原理及编写应用,
菜单
命令消息在MFC框架程序的几个类
中
的传递顺序和处理过程。标记
菜单
的实现原理、图形
菜单
的实现及常犯错误的分析,GetSystemMetrics的应用,快捷弹出
菜单
的实现方式及其命令响应函数有效范围(与弹出
菜单
时所指定的父窗口有密切的关系,最底层的子窗口具有最优先的处理机会)。 第七课.: 动态
菜单
的编写,如何让程序在运行时产生新的
菜单
项及如何手工为这些新产生的
菜单
命令安排处理函数,如何在顶层窗口
中
截获对
菜单
命令的处理,更进一步掌握CString类的应用。 第八课.: 对话框用户界面程序的编写,如何向对话框控件联接数据成员及其实现机理,如何向对话框控关联控件类,如何利用对话框类的成员函数向控件发送消息和获取对话框控件的类指针,如何直接利用对话框控件类操纵对话框控件(发送消息和直接调用成员函数)。如何在程序运行时产生和销毁控件。对话框控件的几种操作方式的优劣比较分析。 第九课: 如何让对话框上的文本框在程序启动后立即获得焦点,如何利用SetWindowLong改变窗口的回调函数,通过改变文本框的默认回车处理方式进行演示。实现多个输入文本框间通过回车逐一向下传递焦点的另一种巧妙方法(用缺省按钮来处理)。利用SetWindowLong和定时器轮回改变窗口的
图标
。如何实现对话框的部分收缩和展开。如何在主对话框程序启动时立即隐藏对话框的巧妙实现方式与精妙思想(不能直接在OnInitDialog处理。包括自定义消息的实现) 第十课: 如何制作属性页对话框和向导对话框,融合讲解组合框(如何调整组合框的大小)、列表框、单选按钮、复选按钮 等常用对话框控件的多种使用方法。如何限制用户在不满足设定的条件时切换到其他属性页和向导页。 第十一课: 如何修改MFC AppWizard向导生成的框架程序的外观,包括修改标题栏的多种方式及原理,修改
图标
、光标、背景的两种方法。如何给应用程序增加工具栏和删除工具栏按钮。定制状态栏,在CView
中
获取状态栏对象的几种方式,在状态栏
中
添加时钟显示(掌握CTime类和静态成员变量和函数的用法),鼠标坐标显示,进度条(主窗口产生后立即产生进度条的巧妙思想,不能在OnCreate函数
中
直接处理,要用到自定义消息的方法)。如何为窗口添加背景位图。 第十二课: 如何使用自定义画笔(颜色,线宽,线形),画刷(形状,颜色)。如何为程序
中
添加选项
菜单
和选项设置对话框,如何使用标准颜色对话框,窗口重绘原理,在选项对话框
中
实现预览功能。实现选项对话框和窗口类
中
的数据交换。 第十三课: 如何让CDC上输出的文字、图形具有保持功能,元文件设备描述表的使用,CpaintDC与CClientDC的区别与应用,OnPaint与Ondraw在CView
中
的关系及实现内幕,集合类CObArray的使用,滚动窗口的实现,设备坐标与逻辑坐标的转换。 第十四课: 文件读写,CFileDialog,CFile,fstream,CArchive类的使用与比较。在应用
中
讲解const char *与char * const的区别,字符串的使用原理,如何使用CString的内存缓冲区。注册表与win.ini文件的读写方式及相关知识点。 第十五课: 如何利用CDocument类的串行化存储功能及MFC框架程序提供的文件打开与保存功能的实现原理。如何实现类对串行化的支持,CObArray的串行化实现内幕。MFC框架程序的几个主要类之间如何获得相互的指针引用。 第十六课: 网络程序的编写,Socket是连接应用程序与网络驱动程序的桥梁,Socket在应用程序
中
创建,通过bind与驱动程序建立关系。此后,应用程序送给Socket的数据,由Socket交给驱动程序向网络上发送出去。计算机从网络上收到与该Socket绑定的IP+Port相关的数据后,由驱动程序交给Socket,应用程序便可从该Socket
中
提取接收到的数据。网络应用程序就是这样通过socket进行数据的发送与接收的。UDP与TCP的工作原理与编写过程,包含如何在程序
中
连接库文件,telnet工具软件在编写网络程序
中
的用途 第十七课: 多线程程序的编写,如何通过互斥来保证多线程的安全。如何利用命名互斥保证只有一份程序实例被运行,结合多线程,网络编程,自定义消息,数据类型转换,如何改变文本框对回车的默认处理方式等技术编写网络聊天程序。 第十八课: 动态连接库程序的编写,库函数的两种输出方式。调用程序对动态连接库的静态连接与动态连接方式,如何利用工具查看动态连接库里的函数,C/C++连接规范
中
的命名转变问题分析,如何获得动态连接库里的函数 的指针,如何用typedef声明指向函数的指针类型。如何调试动态连接库。 第十九课: ActiveX控件的应用与工作原理,ActiveX控件的编写,如何为控件安排属性,方法,事件,属性页,持久性存储。如何注册控件与取消控件注册。如何测试与调试控件。 第二十课: 综合答疑与一些高深主题的介绍,包括如何安装系统钩子函数,dll连接库里的全局变量数据共享问题分析,ADO数据库编程,如何将数据库记录显示在Clistview网格
中
。 以上内容为作者对课件的初步整理,还有很多课堂上要讲到,但在本大纲
中
还没有被撰稿的内容,以后将逐渐完善本大大纲。
vc源代码合集.rar
2012-06-11 09:11 0 1.txt 2012-06-11 08:36 377,398 300个加密解密代码.rar 2012-06-11 08:40 7,526,054 51CTO下载-c++游戏源代码(扫雷,俄罗斯方块等).rar 2012-06-11 08:36 34,702 AES加密解密程序源代码.rar 2012-06-11 08:36 279,706 ARM JTAG调试原理完整源代码包.rar 2012-06-11 08:46 1,691,629 Asm汇编编译器(VC++6.0源代码).rar 2012-06-11 08:57 88,576 C++
开发
中
内存分配及堆和栈的区别.doc 2012-06-11 08:52 190,100 C++
中
二维数组与指针关系的剖析.pdf 2012-06-11 08:48 171,862 C++函数后加const的意义.pdf 2012-06-11 08:57 9,174 C++注册表操作大全.txt 2012-06-11 08:37 113,664 CCheckListBox和CListBox.doc 2012-06-11 08:45 4,764,563 C库函数源代码.rar 2012-06-11 08:51 225,293 C指针详解(经典,非常详细).pdf 2012-06-11 08:49 45,056 DES算法用C++实现的源代码.doc 2012-06-11 08:27 6,261,754 KTV.zip 2012-06-11 08:58 606,972 listView 美化.rar 2012-06-11 08:56 5,784,486 MFC实现QQ在线状态检测.rar 2012-06-11 08:49 3,537,063 VC 数据库编程三部教学.rar 2012-06-11 08:52 349 VC++ CImage使用简单实例.txt 2012-06-11 08:43 994,304 VC++_串口上位机编程实例.doc 2012-06-11 08:39 125,202 vc++图像图形处理-腐蚀与膨胀源码.rar 2012-06-11 08:57 48,680 VC++
菜单
编码.rar 2012-06-11 09:06 221,889,221 vc源代码合集.rar 2012-06-11 08:50 2,645,640 VC编程100例.rar 2012-06-11 08:45 1,244,190 Visual C++ 2008 入门经典源代码.rar 2012-06-11 08:43 34,403,414 visual c++ 图像处理代码.zip 2012-06-11 08:54 40,000,000 Visual C++ 游戏编程基础.part01.rar 2012-06-11 08:52 40,000,000 Visual C++ 游戏编程基础.part02.rar 2012-06-11 08:51 0 Visual C++ 游戏编程基础.part03.rar 2012-06-11 08:50 275,438 visual c++ 高级编程技术--
开发
实例剖析源码.rar 2012-06-11 08:44 52,307,137 Windows驱动
开发
技术详解(pdf书.源代码).rar 2012-06-11 08:41 583,491 [C++]VC++动态链接库(dll)编程深入浅出.pdf 2012-06-11 08:47 88,186 《网络数据包捕获与应用的VC 6.0编程》.docx 2012-06-11 08:53 4,080 万年历查询系统源代码.c 2012-06-11 08:58 6,059,068 人脸识别.rar 2012-06-11 08:39 907 均值滤波源码.rar 2012-06-11 08:45 54,272 学会用 VC++ 动态链接库编写 DLL 木马.doc 2012-06-11 08:40 12,740 开关机操作C++.zip 2012-06-11 08:58 16,574,256 指纹识别程序源码.rar 2012-06-11 08:50 7,652 数据结构单链表的新建,查找,删除,
插入
,输出,排序,逆置.txt 2012-06-11 08:40 28,483 显示系统进程C++.rar 2012-06-11 08:46 3,628,865 神经网络PPT教程汇总 BP神经网络详解与实例 BP算法 神经网络 机器学习 马尔科夫链.rar 2012-06-11 08:36 889,798 精通Windows Sockets网络
开发
源码.rar 2012-06-11 08:40 16,068 获取网卡地址C++.zip 2012-06-11 08:43 2,247,310 贝叶斯网络学习方法和算法研究.pdf 2012-06-11 08:40 47,762 轻轻松松抓
图标
C++.zip 2012-06-11 08:40 0 鼠标测试C++.zip
串口调试说明
串口调试助手源程序V1.0或VC串口通讯源程序吧, 开始吧: 1.建立
项目
:打开VC++6.0,建立一个基于对话框的MFC应用程序SCommTest(与我源代码一致,等会你会方便一点); 2.在
项目
中
插入
MSComm控件 选择Project
菜单
下Add To Project子
菜单
中
的 Components and Controls…选项,在弹出的对话框
中
双击Registered ActiveX Controls项(稍等一会,这个过程较慢),则所有注册过的ActiveX控件出现在列表框
中
。 选择Microsoft Communications Control, version 6.0,,单击Insert按钮将它
插入
到我们的Project
中
来,接受缺省的选项。(如果你在控件列表
中
看不到Microsoft Communications Control, version 6.0,那可能是你在安装VC6时没有把ActiveX一项选上,重新安装VC6,选上ActiveX就可以了), 这时在ClassView视窗
中
就可以看到CMSComm类了,(注意:此类在ClassWizard
中
看不到,重构clw文件也一样),并且在控件工具栏Controls
中
出现了电话
图标
(如图1所示),现在要做的是用鼠标将此
图标
拖到对话框
中
,程序运行后,这个
图标
是看不到的。 3.利用ClassWizard定义CMSComm类控制对象 打开ClassWizard->Member Viariables选项卡,选择CSCommTestDlg类,为IDC_MSCOMM1添加控制变量:m_ctrlComm,这时你可以看一看,在对话框头文件
中
自动加入了//{{AFX_INCLUDES() #include "mscomm.h" //}}AFX_INCLUDES (这时运行程序,如果有错,那就再从头开始)。 4.在对话框
中
添加控件 向主对话框
中
添加两个编辑框,一个用于接收显示数据ID为IDC_EDIT_RXDATA,另一个用于输入发送数据,ID为IDC_EDIT_TXDATA,再添加一个按钮,功能是按一次就把发送编辑框
中
的内容发送一次,将其ID设为IDC_BUTTON_MANUALSEND。别忘记了将接收编辑框的Properties->Styles
中
把Miltiline和Vertical Scroll属性选上,发送编辑框若你想输入多行文字,也可选上Miltiline。 再打开ClassWizard->Member Viariables选项卡,选择CSCommTestDlg类, 为IDC_EDIT_RXDATA添加CString变量m_strRXData, 为IDC_EDIT_TXDATA添加CString变量m_strTXData。说明: m_strRXData和m_strTXData分别用来放入接收和发送的字符数据。
C#
110,534
社区成员
642,576
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章