• 第三章 控件(6~7课)


    第6课:创建和使用控件

    第7课:常用控件

    概述:

    在MFC中,控件是具有独立功能的人机交互的小窗口,它们除了可以使用自身成员外,还可使用其基类CWnd类的公有成员,因为几乎所有的控件类都是从CWnd类派生而来的

    正因为如此,当用控件类的Create创建控件时,除了自身的样式预定义标识外,还有窗口通用的样式预定义标识

    当对话框资源创建对话框类后,控件只能以成员的方式出现在对话框类中。

    控件变量:

    用MFC ClassWizard可为控件在对话框类中创建两种类别的成员变量:其一是控制类,即创建的是控件类对象;其二是数据类,即创建的是控件数据变量(我认为是控件变量)。这两种类别的成员在对话框类中只能各有一个。控件类对象可以引用控件类及其基类的公有成员,从而实现控件的操作;而数据类变量则是与控件绑定在一起,当使用UpdateData()时将控件上的数据存储到绑定的数据变量中,而当使用UpdateData(FALSE)则是将绑定的数据变量的数值回填到控件中。

    消息:

    不同控件的“通知消息”有所不同,总体可分为三类:其一是与界面相关的单击、选择与取消或展开与收缩等的命令消息;其二是与输入焦点相关的失去、得到等消息;其三是与数据相关的更新、改变等消息。这些消息,系统都会用一个称为MSG结构的系统变量来记录,并可用MFC ClassWizard对话框对其进行映射。

    即控件不仅仅在对话框类中使用控件变量操作,还可通过控件的消息映射来实现代码功能。

    美观:

    MFC的控件更注重于控件的程序控制,而VB的控件更注重于控件的界面设计。

    事实上,MFC的控件也可进行更深入的界面设计,包括两种层次不同的方法:其一是使用“自画”(Owner Draw,所有者绘制)体系;其二是跟踪消息。

    对于“自画”体系,它可通过重载DrawItem函数来达到目的,但这种方法暂时较难。

    跟踪消息是一个简单可行的方法。在前面的“调整对话框背景颜色”示例中,用到了WM_CTLCOLOR消息,这个消息是当对话框及控件等在显示之前向父窗口发生的消息,通过跟踪这个消息,在WM_CTLCOLOR消息函数OnCtrlColor返回之前,指定返回一个HBRUSH,系统就会用它绘制控件,从而改变控件的背景颜色。当然,也可在此函数中添加设置控件文本的颜色、格式等的代码,从而改变控件的外观。

    彩蛋:

    由上可知,在界面设计中,对话框是一种常用的模板,它包含了许多控件等界面元素

    实际上,在文档应用程序中,除了对话框外,还有菜单、工具栏和状态栏等界面模板,下一章将讨论这些模板。

  • 相关阅读:
    hash算法
    TCP/IP四层与OSI七层模型
    di
    VSCode安装程序——java开发
    java中的多线程
    C#ThreadPool类—多线程
    学习-思考
    DataTable通过Select进行过滤
    javascript遍历对象属性
    WebClient 与HttpClient 的区别
  • 原文地址:https://www.cnblogs.com/xzxl/p/7954379.html
Copyright © 2020-2023  润新知