选择下拉菜单命令,系统弹出“偏置面”对话框;选取图20.5.6所示的面为偏置对象;在区域的文本框中输入值1;单击按钮,调整偏置方向为XC轴正向;在“偏置面”对话框中单击按钮,完成偏置面的添加。......
2023-06-22
上下文菜单就是俗称的右键快捷菜单,当在一个软件当前活动窗口上单击鼠标右键时,或者按键盘上的<属性>键时弹出的菜单。打开本章第1节的“md”绘图软件工程,用于演示上下文的编辑和使用方法。
1)在资源视图中添加一个新的菜单资源,菜单ID是IDR_POPUP,如图14-7所示。
图14-7 编辑上下文菜单资源
2)添加子菜单“POP1”并添加菜单项列表,见表14-2。
表14-2 上下文菜单项属性
3)在CMdView类中,添加WM_RBUTTONDOWN消息映射函数,如图14-8所示。
图14-8 添加WM_RBUTTONDOWN消息映射函数
4)修改消息映射函数代码。
5)编译并运行,测试代码,如图14-9所示。
图14-9 查看运行结果
6)弹出上下文菜单的过程,并注意以下问题。
①CMenu::TrackPopupMenu函数需要代入一个窗口类地址,作为负责管理该菜单项的主要窗口。如果要将菜单项的提示在主框架的状态栏中显示,则必须代入主框架窗口地址。
②CMenu::TrackPopupMenu函数代入的坐标要求是基于屏幕坐标系,而WM_RBUTTONDOWN消息映射函数传入的坐标点是基于客户区坐标系的,因此,需要使用ClientToScreen函数进行转换。
③WM_CONTEXTMENU消息是专门为弹出上下文菜单而设计的,其消息映射函数传入的坐标点基于屏幕坐标系,因此,弹出上下文菜单时更方便。(www.chuimin.cn)
7)在CMdView类中添加WM_CONTEXTMENU消息映射函数,如图14-10所示。
图14-10 添加WM_CONTEXTMENU消息映射函数
8)修改消息映射函数代码,并改用主框架窗口负责管理弹出菜单。
9)编译并运行,测试代码,如图14-11所示。
10)为上下文菜单中的每个菜单项建立一个(COMMAND)消息映射函数,如图14-12所示。
图14-11 查看运行结果
图14-12 添加上下文菜单项的消息映射函数
11)修改以上建立的菜单项消息映射函数的代码。
12)编译并运行,测试代码。选择一个图层,单击鼠标右键,在弹出的快捷菜单中选择相应的命令,将其删除或者置于底层,如图14-13所示。
图14-13 查看运行结果
有关VC++就业培训宝典之MFC视频教程的文章
选择下拉菜单命令,系统弹出“偏置面”对话框;选取图20.5.6所示的面为偏置对象;在区域的文本框中输入值1;单击按钮,调整偏置方向为XC轴正向;在“偏置面”对话框中单击按钮,完成偏置面的添加。......
2023-06-22
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
创建一个工程名为“ie”的MDI程序,本节演示多文档界面开发。1)在程序向导第1步中,去掉“Document/View architecture support”选项,如图12-24所示。图12-25 添加HTML视图类的派生类3)在子框架类CChildFrame的头文件中,使用CMainView替换原有的CChildView对象。4)在CChildFrame::OnCreate函数中,去除CChildView的创建代码。5)在其他两个子框架类的成员函数中,使用m_pMainView替换m_wndView。6)在类视图中的CChildFrame类名上,添加OnCreateClient虚函数。7)在App类中修改ID_FILE_NEW菜单项消息映射函数OnFileNew代码。......
2023-11-25
本节演示在MFC中,开发弹出对话框的过程和弹出对话框消息处理的过程。MFC的消息处理不是使用一个全局的回调函数,而是创建一个与窗口关联的派生类,用于消息关联的成员函数来接收和处理窗口的消息。在类向导中选择对应的消息,添加与该消息关联的成员函数来处理该消息,这就是MFC的消息映射机制。MFC的消息映射机制,一般不需要开发者解析这些复杂的数据,因为消息映射函......
2023-11-25
将一个窗口句柄嫁接到一个CWnd类型变量中。使用MFC应用程序向导,创建一个工程名为“vs”的对话框程序,演示通过函数建立关联变量。4)修改对话框初始化函数,通过调用函数建立控件窗口和变量的关联。6)为增、删、改3个按钮建立消息映射函数并修改代码。实际上类向导建立的关联变量,内部也是调用子类化函数实现的,但是使用向导建立关联变量更加方便一些。因此,在后续章节中,主要使用类向导建立关联变量。......
2023-11-25
一般画面都是矩形,选用了CRgn修饰的画面输出之后,画面就被剪切成不规则的形状。CRgn类的主要成员见表7-7。表7-7 CRgn类的主要成员创建一个工程名为“Rgn”的对话框程序,用于演示选择区域后的画面输出效果。图7-23 查看运行结果3)在OnPaint函数的末尾添加两行代码,将两个不规则区域合并后设置窗口的形状。rg1.CombineRgn;SetWindowRgn;4)为了让窗口形状和画面一致,修改主对话框的边框为“None”,如图7-24所示。图7-25 添加WM_NCHITTEST消息映射函数6)修改消息映射函数代码。......
2023-11-25
相关推荐