工具栏带有一行位图按钮和可选分隔线的控件栏,工具栏按钮ID与菜单项一样可以创建命令消息映射函数。另外一种创建和加载工具栏的过程如下。工具栏既可以停靠在父窗口周边,也可以悬浮在屏幕中,例如,绘图软件中的工具箱就是悬浮工具栏。打开本章第3节的“md”绘图软件工程,用于演示悬浮工具栏的开发方法。图14-19 查看运行结果工具栏按钮不仅能带有图标,而且还可以包含文字,例如,IE工具栏。......
2023-11-25
IE工具栏不但按钮可以包含图标和文字,而且还有一些按钮包含下拉菜单,例如,“后退” 和“前进”按钮。打开第12章建立的“sp”分隔栏工程,用于演示IE工具栏的开发方法。
1)修改IDR_MAINFRAME工具栏,删除原有工具按钮并新增一些按钮,如图14-23所示。
图14-23 编辑工具栏资源
2)修改工具栏按钮的ID和提示,见表14-5。
表14-5 工具栏按钮属性
4)修改CMainFrame::OnCmdMsg函数,使工具栏和菜单命令可以分发到左右视图类中。
5)通过类向导,在CRightView类中为所有工具栏按钮添加消息映射函数,如图14-24所示。
图14-24 添加工具栏按钮的消息映射函数
6)编译并运行,测试程序,如图14-25所示。
图14-25 查看运行结果
工具栏按钮图标的颜色丢失严重很难看,因此,要先加载位图到CBitmap对象中后,再将位图设置到工具栏中。通过画笔等绘图工具,编辑高宽为16×15真彩色的工具栏图片。
7)把真彩色图片保存为“ToolBmp.bmp”,并复制到工程目录的“res”子目录中,如图14-26所示。
8)在资源视图中树形控件的根节点上单击鼠标右键,在弹出的快捷菜单中,选择“Import”命令,如图14-27所示。
图14-26 工具栏位图
图14-27 导入资源
9)导入真彩色图片“ToolBmp.bmp”,如图14-28所示。
10)导入位图的默认ID是IDB_BITMAP1,如图14-29所示。
图14-28 导入位图资源
图14-29 导入后的位图资源(www.chuimin.cn)
11)在CMainFrame类中添加一个CBitmap成员变量,用来加载彩色位图。
12)修改CMainFrame::OnCreate函数的代码。
13)编译并运行,测试程序。加载真彩色图片后,工具栏好看多了,如图14-30所示。
图14-30 查看运行结果
14)继续修改CMainFrame::OnCreate函数的代码,在函数末尾追加以下代码。
15)编译并运行,测试代码,这就是IE工具栏,如图14-31所示。
图14-31 查看运行结果
16)在资源视图中添加一个菜单资源,用于单击“查看”按钮时弹出下拉菜单,如图14-32所示。
图14-32 编辑菜单资源
17)菜单项的ID和文字,见表14-6。
表14-6 菜单项属性
18)在CMainFrame类中添加一个私有成员函数,用于处理在单击工具栏下拉按钮时弹出菜单。
19)在消息映射列表中,添加单击工具栏下拉菜单的消息映射,如图14-33所示。
图14-33 添加消息映射函数的关联代码
20)编译并运行,测试代码,如图14-34所示。
图14-34 查看运行结果
有关VC++就业培训宝典之MFC视频教程的文章
工具栏带有一行位图按钮和可选分隔线的控件栏,工具栏按钮ID与菜单项一样可以创建命令消息映射函数。另外一种创建和加载工具栏的过程如下。工具栏既可以停靠在父窗口周边,也可以悬浮在屏幕中,例如,绘图软件中的工具箱就是悬浮工具栏。打开本章第3节的“md”绘图软件工程,用于演示悬浮工具栏的开发方法。图14-19 查看运行结果工具栏按钮不仅能带有图标,而且还可以包含文字,例如,IE工具栏。......
2023-11-25
CBrush类的主要成员见表7-4。表7-4 CBrush类的主要成员1)用于填充的阴影线风格主要包括以下几种。创建一个工程名为“Brush”的对话框程序,用于演示选用不同画刷进行绘画的效果。2)在资源视图中,单击鼠标右键,在弹出的快捷菜单中,选择“Import”命令导入位图,如图7-16所示。图7-19 查看运行结果CBrush类构造函数与CreateSolidBrush和CreateHatchBrush等函数的功能基本一样,都可以用于创建一个画刷。一般当使用新画刷绘画结束后,最好恢复选择回旧画刷。......
2023-11-25
在本章第5节中,通过“Win32 Application”建立的MFC32工程,目的是为了演示MFC工程的架构原理。一个MFC工程必须包含一个CWinApp的派生类,并定义一个派生类的全局变量theApp,最后重写InitInstance虚函数用于处理进程启动过程。本节直接通过“MFC AppWizard”来创建MFC工程,用于对照以上说明的MFC必备因素。图3-54 程序向导生成的代码图3-55 MFC类向导在Class name下拉列表中选择CTestMFCDlg类,在Member functions列表框中显示4个已添加的回调函数。......
2023-11-25
标签控件,又称选项卡控件。很多软件的用户资料注册部分是采用注册向导模式,而用户资料修改则采用标签控件管理模式。打开本章第3节建立的“usd”工程,本节继续演示采用标签控件来管理多个分页。1)新插入一个对话框资源,作为使用标签控件进行分页管理的父窗口,如图9-20所示。6)添加标签控件的TCN_SELCHANGE消息反射函数OnSelchangeTab,如图9-22所示。图9-24 查看运行结果单击“修改”按钮或者双击列表选项,就会打开带标签控件的修改资料的对话框。......
2023-11-25
本节演示在MFC中,开发弹出对话框的过程和弹出对话框消息处理的过程。MFC的消息处理不是使用一个全局的回调函数,而是创建一个与窗口关联的派生类,用于消息关联的成员函数来接收和处理窗口的消息。在类向导中选择对应的消息,添加与该消息关联的成员函数来处理该消息,这就是MFC的消息映射机制。MFC的消息映射机制,一般不需要开发者解析这些复杂的数据,因为消息映射函......
2023-11-25
将一个窗口句柄嫁接到一个CWnd类型变量中。使用MFC应用程序向导,创建一个工程名为“vs”的对话框程序,演示通过函数建立关联变量。4)修改对话框初始化函数,通过调用函数建立控件窗口和变量的关联。6)为增、删、改3个按钮建立消息映射函数并修改代码。实际上类向导建立的关联变量,内部也是调用子类化函数实现的,但是使用向导建立关联变量更加方便一些。因此,在后续章节中,主要使用类向导建立关联变量。......
2023-11-25
打开本章第7节建立的“Tp”工程,继续演示CWinApp类的开发应用。1)修改启动函数CWinApp派生类的构造函数代码。m_pszAppName成员变量有三种途径赋值,首先在CWinApp构造函数中获得字符串。在App派生类以外,调用CWinApp类成员函数的方法有两种。CWinApp类的成员函数LoadIcon和LoadStandardIcon,实际上是封装了API函数LoadIcon的结果。和加载图标的两个函数一样,CWinApp类的成员函数LoadCursor和LoadStandardCursor,分别用于加载程序光标和系统光标资源,它们封装的也是同一个API函数LoadCursor。......
2023-11-25
创建一个工程名为“Mdc”的对话框程序,演示CMemDC类的封装及调用过程。2)选中“C/C++Header File”项,输入“MemDC”后单击“OK”按钮,如图8-2所示。图8-3 编辑主对话框资源5)在主对话框类的头文件中,修改代码,增加两个CMemDC类对象。图8-4 添加WM_SIZE消息映射函数7)修改消息映射函数代码,当窗口大小变化时在内存DC中缩放背景图。图8-5 查看运行结果本示例重点演示了CMemDC类的封装过程,以及加载文件位图和创建内存DC的方法。......
2023-11-25
相关推荐