打开本章第1节建立的“QQ”工程,本节继续演示账号及权限管理与登录对话框的组合。表5-2 “权限管理”对话框的控件属性4)通过类向导为IDD_PRIOR_DLG建立一个对话框类“CPriorDlg”,如图5-8所示。12)在权限管理对话框中,分别双击增、删、改的3个按钮,建立消息映射函数。登录成功后进入主对话框单击“权限管理”按钮,进入“权限管理”对话框添加一些账户信息,然后使用新添加的账户重新登录,如图5-16所示。......
2025-09-30
标签控件(CTabCtrl),又称选项卡控件。它是最常用于分页管理的控件。很多软件的用户资料注册部分是采用注册向导模式,而用户资料修改则采用标签控件管理模式。
打开本章第3节建立的“usd”工程,本节继续演示采用标签控件来管理多个分页。
1)新插入一个对话框资源,作为使用标签控件进行分页管理的父窗口,如图9-20所示。

图9-20 编辑分页管理对话框资源
2)修改对话框ID为IDD_MOD_DLG,修改字体和外观并插入一些控件,见表9-8。
表9-8 分页对话框的控件属性

3)使用类向导创建与IDD_MOD_DLG关联的CDialog派生类CModDlg,并添加一些成员变量。

4)在分页管理对话框中,为标签控件建立控件型关联变量,如图9-21所示。

图9-21 添加控件型关联变量
5)添加WM_INITDIALOG的消息映射函数并修改代码。


6)添加标签控件的TCN_SELCHANGE消息反射函数OnSelchangeTab,如图9-22所示。
(https://www.chuimin.cn)
图9-22 添加TCN_SELCHANGE消息反射函数
7)修改消息反射函数OnSelchangeTab的代码,当选择不同的标签选项时显示对应的分页子窗口。

8)建立“确定”按钮的消息映射函数,并修改代码。

9)在主对话框中,建立“修改”按钮的消息映射函数,并修改代码。


10)添加一个双击列表消息反射函数,以增强界面操作的灵活性,如图9-23所示。

图9-23 添加NM_DBLCLK消息反射函数
11)修改消息反射函数OnDblclkList的代码。

12)编译并运行,测试代码,如图9-24所示。

图9-24 查看运行结果
单击“修改”按钮或者双击列表选项,就会打开带标签控件的修改资料的对话框。一般当注册资料过多使得单一页面难于管理时,采用多个分页对登记资料分类管理。
相关文章
打开本章第1节建立的“QQ”工程,本节继续演示账号及权限管理与登录对话框的组合。表5-2 “权限管理”对话框的控件属性4)通过类向导为IDD_PRIOR_DLG建立一个对话框类“CPriorDlg”,如图5-8所示。12)在权限管理对话框中,分别双击增、删、改的3个按钮,建立消息映射函数。登录成功后进入主对话框单击“权限管理”按钮,进入“权限管理”对话框添加一些账户信息,然后使用新添加的账户重新登录,如图5-16所示。......
2025-09-30
CBrush类的主要成员见表7-4。表7-4 CBrush类的主要成员1)用于填充的阴影线风格主要包括以下几种。创建一个工程名为“Brush”的对话框程序,用于演示选用不同画刷进行绘画的效果。2)在资源视图中,单击鼠标右键,在弹出的快捷菜单中,选择“Import”命令导入位图,如图7-16所示。图7-19 查看运行结果CBrush类构造函数与CreateSolidBrush和CreateHatchBrush等函数的功能基本一样,都可以用于创建一个画刷。一般当使用新画刷绘画结束后,最好恢复选择回旧画刷。......
2025-09-30
创建一个工程名为“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的方法。......
2025-09-30
打开本章第7节建立的“Tp”工程,继续演示CWinApp类的开发应用。1)修改启动函数CWinApp派生类的构造函数代码。m_pszAppName成员变量有三种途径赋值,首先在CWinApp构造函数中获得字符串。在App派生类以外,调用CWinApp类成员函数的方法有两种。CWinApp类的成员函数LoadIcon和LoadStandardIcon,实际上是封装了API函数LoadIcon的结果。和加载图标的两个函数一样,CWinApp类的成员函数LoadCursor和LoadStandardCursor,分别用于加载程序光标和系统光标资源,它们封装的也是同一个API函数LoadCursor。......
2025-09-30
打开本章第1节建立的“Test”工程,本节继续演示非模式对话框的调用过程。1)通过菜单命令或者按快捷键<Ctrl+1>再插入一个对话框,用于测试非模式对话框,如图4-9所示。7)非模式对话框的特点如下。①在关闭模式对话框前,不阻挡对背景窗口的操作。②使用CDialog::Create函数创建非模式对话框,该函数是非阻塞函数。......
2025-09-30
一般画面都是矩形,选用了CRgn修饰的画面输出之后,画面就被剪切成不规则的形状。CRgn类的主要成员见表7-7。表7-7 CRgn类的主要成员创建一个工程名为“Rgn”的对话框程序,用于演示选择区域后的画面输出效果。图7-23 查看运行结果3)在OnPaint函数的末尾添加两行代码,将两个不规则区域合并后设置窗口的形状。rg1.CombineRgn;SetWindowRgn;4)为了让窗口形状和画面一致,修改主对话框的边框为“None”,如图7-24所示。图7-25 添加WM_NCHITTEST消息映射函数6)修改消息映射函数代码。......
2025-09-30
当用户单击对话框标题栏上的关闭按钮后,可能顺次发生的回调包括WM_SYSCOMMAND消息、WM_CLOSE消息、CDialog::OnCancel虚函数和WM_DESTROY消息等。打开第1节建立的“Test”工程,本节继续演示对话框关闭过程的回调函数。当单击系统关闭菜单或按钮,或者按<Alt+F4>组合键都不能关闭对话框,对话框不是真正地关闭而只是最小化了。所有以上其他回调函数都发生在对话框消失之前,并且可以取消继续关闭对话框窗口。图4-26 关闭对话框消息的流程......
2025-09-30
通过MSDN的说明可以查看到,WM_CREATE和WM_INITDIALOG都是窗口刚创建时的回调消息,当窗口还未显示出来之前,对窗口作预先处理的回调函数。WM_CREATE是所有窗口通用的创建时回调消息,用于包括对话框、MDI或者SDI等任何窗口的初始化,对应的消息映射函数是OnCreate。WM_INITDIALOG对话框是对话框专用消息,最常用来初始化对话框及其内部控件,对应的消息映射函数是OnInitDialog。打开第1节建立的“Test”工程,本节继续演示对话框启动过程的回调函数。......
2025-09-30
相关推荐