2)所有控件创建时,都要在CWnd::Create函数中代入窗口ID、风格、位置和父窗口等。4)注册自定义窗口类型。MFC全局函数,先检测要注册的窗口类型是否存在。并将接口参数简化以方便调用,返回值是自动生成的随机窗口类型名。5)创建一个工程名为“wd”的对话框程序,用于演示自定义窗口的注册和创建。总结使用自定义窗口做主窗口的特点如下。......
2023-11-25
单文档界面(SDI)由一个主框架和一个视图组成,是一对一的关系,主框架和视图共用一个主菜单资源。多文档界面(MDI)由主框架和子框架两层框架组成,主框架和子框架各自使用不同的菜单资源。一个主框架内部含有多个子框架,是一对多的关系,每个子框架内含有一个视图,是一对一的关系。
创建一个工程名为“ie”的MDI程序,本节演示多文档界面开发。
1)在程序向导第1步中,去掉“Document/View architecture support”选项,如图12-24所示。
图12-24 创建框架视图程序
2)工程创建完成后,在类视图中添加CHtmlView的派生类,如图12-25所示。
图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代码。
8)编译并运行,测试代码,如图12-26所示。
图12-26 查看运行结果
每次执行“文件→新建”命令,主框架内部都产生一个新的子窗口,在视图上单击鼠标右键显示是一个空白网页。
9)在资源视图中添加一个对话框资源,修改ID为IDD_OPEN_DLG,如图12-27所示。
图12-27 编辑地址对话框资源
10)修改对话框字体和外观并添加一些控件,见表12-4。
表12-4 地址对话框的控件属性
11)通过类向导为IDD_OPEN_DLG建立CDialog派生类,类名是“COpenDlg”,如图12-28所示。
(www.chuimin.cn)
图12-28 创建地址对话框的关联类
12)在COpenDlg类中为组合控件添加数值型和控件型两个关联变量,如图12-29所示。
图12-29 添加关联变量
13)在COpenDlg类中,添加WM_INITDIALOG的消息映射函数并修改代码。
14)修改主框架菜单资源(IDR_MAINFRAME),添加一个“打开”的菜单项,如图12-30所示。
15)在子框架菜单(IDR_IETYPE)中,也添加相同ID和标题的菜单项,如图12-31所示。
16)在类向导中选中CIeApp类,添加ID_FILE_OPEN菜单项的消息映射函数,如图12-32所示。
图12-30 编辑主框架菜单资源
图12-31 编辑子框架菜单资源
图12-32 添加菜单项消息映射函数
17)修改函数代码。
18)编译并运行,测试代码,如图12-33所示。
图12-33 查看运行结果
19)在快捷键表中双击空白表格,添加菜单项ID_FILE_OPEN的快捷键,如图12-34所示。
图12-34 编辑快捷键资源
20)编译并运行,测试代码。
菜单项标题“打开(&O)\tCtrl+O”并非是快捷键设置而只是起显示作用,真正的快捷键只能在快捷键表中设置。
21)清理程序初始化函数代码并分析。
有关VC++就业培训宝典之MFC视频教程的文章
2)所有控件创建时,都要在CWnd::Create函数中代入窗口ID、风格、位置和父窗口等。4)注册自定义窗口类型。MFC全局函数,先检测要注册的窗口类型是否存在。并将接口参数简化以方便调用,返回值是自动生成的随机窗口类型名。5)创建一个工程名为“wd”的对话框程序,用于演示自定义窗口的注册和创建。总结使用自定义窗口做主窗口的特点如下。......
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
上下文菜单就是俗称的右键快捷菜单,当在一个软件当前活动窗口上单击鼠标右键时,或者按键盘上的<属性>键时弹出的菜单。表14-2 上下文菜单项属性3)在CMdView类中,添加WM_RBUTTONDOWN消息映射函数,如图14-8所示。图14-9 查看运行结果6)弹出上下文菜单的过程,并注意以下问题。③WM_CONTEXTMENU消息是专门为弹出上下文菜单而设计的,其消息映射函数传入的坐标点基于屏幕坐标系,因此,弹出上下文菜单时更方便。......
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
相关推荐