第三章 控件(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,系统就会用它绘制控件,从而改变控件的背景颜色。当然,也可在此函数中添加设置控件文本的颜色、格式等的代码,从而改变控件的外观。

彩蛋:

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

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

时间: 2024-08-09 11:02:18

第三章 控件(6~7课)的相关文章

第三章 控件使用

#import <UIKit/UIKit.h> @interface ViewController : UIViewController @property (weak, nonatomic) IBOutlet UISwitch *leftswitch; @property (weak, nonatomic) IBOutlet UISwitch *rightswitch; @property (weak, nonatomic) IBOutlet UILabel *label; - (IBAct

【WPF学习】第十九章 控件类

原文:[WPF学习]第十九章 控件类 WPF窗口充满了各种元素,但这些元素中只有一部分是控件.在WPF领域,控件通常被描述为与用户交互的元素--能接收焦点并接受键盘或鼠标输入的元素.明显的例子包括文本框和按钮.然而,这个区别有时有些模糊.将工具提示视为控件,因为它根据用户鼠标的移动显示或消失.将标签视为控件,因为它支持记忆码(mnemonics,将焦点转移到相关控件快捷键). 所有控件都继承自System.Windows.Control类,该类添加了一小部分基本的基础结构: 设置控件内容对齐方式

第二章 控件架构与自定义控件详解 + ListView使用技巧 + Scroll分析

1.Android控件架构下图是UI界面架构图,每个Activity都有一个Window对象,通常是由PhoneWindow类来实现的.PhoneWindow将DecorView作为整个应用窗口的根View,DecorView将屏幕分成两部分:TitleView和ContentView.ContentView实际上是一个FrameLayout,里面容纳的就是我们在xml布局文件中定义的布局. 为什么调用requestWindowFeature()方法一定要在setContentView()方法调

第一行代码Android-------第二章控件部分

一.控件 1.大小 match_parenr:与父布局大小一样 fill_parent:与match_parent一样 wrap_content:控件大小刚好包住里面内容 2.TextView   在界面上显示一段文字 android:text = "显示的文字" android:gravity:"文字对齐方式" //可选值有top.bottom.right.center,可以用|来指定多个值 android:textSize:文字大小 android:textCo

android第二章控件1

1.Activity:用于存放各个显示控件,是android的基本组成 2.Activity常用方法:public final View findViewById(int id) 根据组件的id取得组件对象       public void setContentView(int layoutResIdd)  设置显示组件 3.设置控件的ID值:格式:@+id/ID值 4.TextView标签(标签按钮): 4.1常用属性:1:android:text //定义组件的显示文字 2:  textC

《深入浅出wpf》第五章 控件与布局

windows api(win api):调用windows底层绘图函数,使用c语言. microsoft foundation class(mfc):使用c++语法将原始的winapi函数封装成空间类. visual component library(vcl):delphi和c++ builder使用的和mfc相近的类库. visual basic+active控件(vb6):使用组件化的思想把winapi封装成ui控件,以期多语言使用. java swing/awt:java sdk中用于

WP8.1学习系列(第二十六章)——控件模板

在本文中 自定义控件模板示例 指定控件的可视结构. 指定控件的可视行为 使用工具轻松处理主题 控件和辅助功能 了解有关控件默认模板的详细信息 控件模板中的主题资源 相关主题 在 XAML 框架中,如果要自定义控件的可视结构和可视行为,请创建控件模板.控件有多个属性,如 Background.Foreground 以及FontFamily,可以设置这些属性以指定控件外观的多个方面.但是可以通过设置这些属性所做的更改有限.可以使用 ControlTemplate 类创建提供其他自定义的模板.在此处,

WP8.1学习系列(第二十五章)——控件样式

XAML 框架提供许多自定义应用外观的方法.通过样式可以设置控件属性,并重复使用这些设置,以便保持多个控件具有一致的外观. 路线图: 本主题与其他主题有何关联?请参阅: 使用 C# 或 Visual Basic 的 Windows 运行时应用的路线图 使用 C++ 的 Windows 运行时应用的路线图 应用功能大全系列中突出显示的 Windows 应用商店应用 UI 详细信息 本主题包含下列部分: 先决条件 样式基础知识 应用隐式或显式样式 使用基于样式 使用工具轻松处理样式 修改 Windo

android第二章控件2

Button (按钮) EditText(编辑框)                 android: password=""                                     //是否以密文方式显示             android: numeric="integer"                           //只能输入数字             android: hint="**"