1. 控件的概念:
1) 控件是一类特殊的窗口,如按钮、文本框之类的,用来将信息传送给用户或获取用户的输入;
2) 控件都是一些高度封装好的对象,有自己的WM_PAINT处理代码,不必用户自己去重绘控件;
3) 控件的消息机制:当点击控件等操作发生时,用户不用具体去处理这些鼠标消息,MFC会处理这些最基本的控件上的消息并将其转化为“通知”(Notify),比如点击按钮时不需要用户去处理按钮的ButtonDown消息,而是MFC将这种消息转化为一个BN_CLICKED通知,然后用户只需要响应OnButtonClicked函数即可;
!!通知消息:
a. 一般普通消息,如WM_LBUTTONDOWN、WM_PAINT等都是基本的消息,这些消息直接反应了触发消息的事件;
b. 通知消息是一种特殊的Windows消息,它主要来自控件,虽然触发通知的都是一些基本消息,如BUTTONDOWN等,但Windows将它们转换成控件发出的通知,通知消息直接反应了触发控件的事件;
4) 控件一般都挂载其它窗口上,因此控件都是其它窗口的子窗口,所以控件有时也叫子窗口控件:
i. 父窗口移动控件就会跟着移动;
ii. 父窗口被销毁控件也会跟着被销毁;
iii. 这些动作都由MFC自动完成;
2. 传统控件:
1) Windows目前用于20多种控件,其中6种为传统控件,这6种传统控件在Windows的第一个版本中就已经出现;
2) 传统控件和相应的MFC类:从左到右分别是控件类型、WNDCLASS注册时的名称和MFC类
按钮 "BUTTON" CButton
列表框 "LISTBOX" CListBox
编辑控件 "EDIT" CEdit
组合框 "COMBOBOX" CComboBox
滚动条 "SCROLLBAR" CScrollBar
静态控件(静态文本等) "STATIC" CStatic
3) 创建控件也很简单,只需要先创建对象,然后调用对象的Create函数即可,如果希望控件中有一些扩展的样式