使用MFC应用程序向导,创建一个工程名为“tb”的基于对话框程序,用于演示通过创建自定义子窗口来开发一个标签控件的过程。1)在类视图中添加CWnd派生类,由空白窗口开发出一个标签控件,如图11-16所示。5)在源文件中,继续编写插入标签项的函数。11)修改主对话框的初始化函数,调用CTestTab::Create函数创建自定义标签控件。本示例演示了将空白窗口加工成为标签控件的过程,微软的开发人员也是这样开发标签控件的。......
2023-11-25
自定义窗口不但可以用于作为主窗口开发框架软件或者全屏软件,也常用于作为子窗口开发自定义控件。“世上本无控件”,控件是将窗口显示与用户操作相结合的特殊产物。
创建一个工程名为“bt”的对话框程序,演示通过创建自定义子窗口来开发一个按钮的过程。
1)在类视图中添加CWnd派生类,由空白窗口开发出一个按钮控件,如图11-13所示。
图11-13 创建通用窗口派生类
2)在建立好的自定义按钮类头文件中(TestBtn.h),添加一些成员变量和函数。
3)在源文件(TestBtn.cpp)中,修改构造函数初始化成员变量。
4)在源文件中,编写注册和创建两个成员函数的代码。
5)在类视图中添加一些窗口显示和与鼠标操作相关的消息映射函数,如图11-14所示。
图11-14 添加多个消息映射函数
6)修改以上建立的所有消息映射函数的代码。(www.chuimin.cn)
7)在主对话框的头文件(BtDlg.h)中,添加一些成员变量和函数。
8)修改主对话框的初始化函数,调用CTestBtn::Create函数创建2个按钮。
9)在源文件中,简单编写两个按钮的消息反射函数。
10)添加消息映射代码,建立两个按钮的消息和函数之间的关联。
11)编译并运行,测试代码,如图11-15所示。
本示例演示了将空白窗口加工成为按钮的过程,在世上还没有按钮的时候,微软的开发人员就是这样开发出第一个按钮控件的。
图11-15 查看运行结果
有关VC++就业培训宝典之MFC视频教程的文章
使用MFC应用程序向导,创建一个工程名为“tb”的基于对话框程序,用于演示通过创建自定义子窗口来开发一个标签控件的过程。1)在类视图中添加CWnd派生类,由空白窗口开发出一个标签控件,如图11-16所示。5)在源文件中,继续编写插入标签项的函数。11)修改主对话框的初始化函数,调用CTestTab::Create函数创建自定义标签控件。本示例演示了将空白窗口加工成为标签控件的过程,微软的开发人员也是这样开发标签控件的。......
2023-11-25
MFC内部也封装了一些“装饰好的”控件派生类,包括位图按钮、扩展组合控件、复选列表框和拖动列表框等。CBitmapButton类用于创建和操作不包括文字的纯位图按钮控件,每个位图按钮可以包含1~4种状态的位图。图10-48 CBitmap Button类表10-3 CBitmapButton类的常用成员2)CComboBoxEx类,如图10-49所示。图10-49 CComboBoxEx类CComboBoxEx类用于创建和操作扩展组合控件,每个列表项支持文字、图像和选中图像等,常用于在软件中开发类似头像列表的功能。CComboBoxEx类的常用成员见表10-4。......
2023-11-25
标签控件,又称选项卡控件。很多软件的用户资料注册部分是采用注册向导模式,而用户资料修改则采用标签控件管理模式。打开本章第3节建立的“usd”工程,本节继续演示采用标签控件来管理多个分页。1)新插入一个对话框资源,作为使用标签控件进行分页管理的父窗口,如图9-20所示。6)添加标签控件的TCN_SELCHANGE消息反射函数OnSelchangeTab,如图9-22所示。图9-24 查看运行结果单击“修改”按钮或者双击列表选项,就会打开带标签控件的修改资料的对话框。......
2023-11-25
将一个窗口句柄嫁接到一个CWnd类型变量中。使用MFC应用程序向导,创建一个工程名为“vs”的对话框程序,演示通过函数建立关联变量。4)修改对话框初始化函数,通过调用函数建立控件窗口和变量的关联。6)为增、删、改3个按钮建立消息映射函数并修改代码。实际上类向导建立的关联变量,内部也是调用子类化函数实现的,但是使用向导建立关联变量更加方便一些。因此,在后续章节中,主要使用类向导建立关联变量。......
2023-11-25
自绘按钮是最容易开发的自绘控件,其他支持自绘的界面对象还有组合控件、列表控件以及自绘菜单等。开发这些自绘界面的难度要大一些,例如,组合控件要自绘下拉列表中的每一项,列表控件还要对不同的行和列进行处理等。打开本章第5节的“Si”工程,本节将继续开发一个带图标和文字的组合控件。1)修改国籍组合控件的属性,选择Owner draw中的Variable选项,如图10-33所示。......
2023-11-25
2)所有控件创建时,都要在CWnd::Create函数中代入窗口ID、风格、位置和父窗口等。4)注册自定义窗口类型。MFC全局函数,先检测要注册的窗口类型是否存在。并将接口参数简化以方便调用,返回值是自动生成的随机窗口类型名。5)创建一个工程名为“wd”的对话框程序,用于演示自定义窗口的注册和创建。总结使用自定义窗口做主窗口的特点如下。......
2023-11-25
从自定义的空白窗口开始开发出一个控件,无疑是比较辛苦的工作。其实前面章节中的自绘控件,就是一种特殊控件二次开发的方法,但有很多控件没有自绘属性。不支持自绘的控件进行二次开发,主要是编写代码改造控件的绘图和操作的消息映射函数,如OnPaint和OnMouseMove等。3)在类视图中添加一些窗口显示与鼠标操作相关的消息映射函数,如图11-19所示。显然基于标准控件的二次开发,比从空白窗口开始重新开发控件的过程简单很多。......
2023-11-25
CBrush类的主要成员见表7-4。表7-4 CBrush类的主要成员1)用于填充的阴影线风格主要包括以下几种。创建一个工程名为“Brush”的对话框程序,用于演示选用不同画刷进行绘画的效果。2)在资源视图中,单击鼠标右键,在弹出的快捷菜单中,选择“Import”命令导入位图,如图7-16所示。图7-19 查看运行结果CBrush类构造函数与CreateSolidBrush和CreateHatchBrush等函数的功能基本一样,都可以用于创建一个画刷。一般当使用新画刷绘画结束后,最好恢复选择回旧画刷。......
2023-11-25
相关推荐