Visual C++ 2010开发权威指南--5 MFC对话框控件

来源:互联网 发布:v919 ubuntu 编辑:程序博客网 时间:2024/06/11 20:05

Visual C++ 2010开发权威指南--5 MFC对话框控件

所有控件都是由CWnd派生得到。
5.1 Button
CButton的常用成员函数
GetState()
SetState()
SetCheck()
GetButtonStyle()
SetButtonStyle();
SetIcon()
GetIcon()
SetBitmap()
SetCursor()
GetBitmap()
GetCursor()
Button有很多类(命令按钮、复选框、单选按钮、组框、自绘式按钮),程序中通过按钮风格区分。
Create()函数的参数:(显示文本,按钮风格,对位置与尺寸RECT的引用,指向父窗口的指针,ID)。
例如:
CButton button1;
button1.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, CRect(10,10,100,30), this, 1);
关于按钮风格:
WS_CHILD  子窗口
WS_VISIBLE  可显示 
WS_DISABLED  不可显示
WS_GROUP  指定该类控件为一组
WS_TABSTOP  具有Tabstop数学
BS_CHECKBOX  复选框
BS_PUSHBUTTON 普通命令按钮
BS_RADIOBUTTON 单选按钮
BS_GROUPBOX  组框控件
BS_OWNERDRAW 自绘式
BS_AUTOCHECKBOX 同复选框,单击时自动反转
BS_3STATE  同复选框,有3种状态:含灰色
BS_AUTO3STATE 同BS_3STATE,单击会改变状态
BS-AUTORADIOBUTTON 同单选,单击自动反转
BS_DEFPUSHBUTTON 
BS_LEFTTEXT  标题于左侧
5.2 ListBox简介CListBox
可以添加的消息:
LBN_DBLCLK
LBN_SELCHANGE
LBN_SELCANCEL
LBN_KILLFOCUS
LBN_SETFOCUS
WM_CHARTOITEM
WM_VKEYTOITEM
CListBox主要成员函数:
GetCount()     返回选项的数目
GetHorizontalExtent()  可滚动范围宽度
SetHorizontalExtent()
GetTopIndex()    返回第一个可见项的索引
SetTopIndex()    指定待定列表项课件
GetItemRect()    返回列表框中当期那显示列表项的矩形区域边界
SelectString()    搜索并选择列表框中指定字符串
GetItemData()     返回并指定与列表项有关的32位值
SetItemDataPtr()   设置指向列表项的指针
ItemFromPoint()    获取与指定点最近列表项
SetItemHeight()    设置列表项高度
GetItemHeight()    
GetSel()     返回指定列表项选择状态
GetText()     复制列表项到缓冲区
GetTextLen()    返回字节数
SetColumnWidth()   设置多兰列表框栏宽
SetTabStops()    设置制表符位置
AddString()     
DeleteString()
ResetContent()    从当前目录添加文件名到列表框
FindString()  
FindStringExact()   搜索列表框中第一个与指定字符串匹配之字符
Create()函数参数说明:(列表框风格dwStyle,空间位置与尺寸rect,指向父窗口的指针pParentWnd,空间ID)
关于风格什么的参考相关章节。
例:
ClistBox* pmyListBox;
pmyListBox->Create(WS_CHILD | WS_VISIBLE | LBS_STANDARD | WS_HSCROLL | LBS_EXTENDEDSEL, CRect(10,10,200,200), this, 1);
5.3 ComboBox组合框CComboBOx
种类:简易式Simple(Create函数指定风格为CBS_SIMPLE)、下拉式Dropdown(单击后列表框才弹出,Create函数指定风格为CBS_DROPDOWN)、下拉列表Drop List(编辑框只读,Create函数指定风格为CBS_DROPDOWNLIST)。
成员函数说明:
AddString()
InsertString()
ResetContent()
DeleteString()
GetCount()
SetCurSel()  选中一个选项
GetCurSel()  获得被选中项的索引
5.4 List列表控件CListCtrl
列表控件的使用:1)在对话框类中嵌入CListCtrl对象;2)使用类CListView间接使用。
列表控件中的项由图标、标签、其他信息组成。
5.5 Edit
5.6 Rich Edit
5.7 Progess
5.8 Tree
5.9 二维表DBgrid
5.10 Rebar子窗口容器CReBar和CReBarCtrl
Rebar用作子窗口的容器,这些子窗口分配给Rebar控件带去。Rebar控件可以包含一个或多个带去,每个带去是拖动条、位图、标签文本、子窗口的任意组合。
使用Rebar控件的方法;
1)利用CReBar创建对象,然后调用GetReBarCtrl(返回对CR额BarCtrl对象的引用)获得对CReBarCtrl成员函数的访问;
2)利用CReBarCtrl的构造函数创建CRebar。
CReBarCtrl对象应在父对象可见之前创建。例如,框架窗口对象中使用的Rebar控件常用作工具栏的父窗口,因此,Rebar控件的父级就是框架窗口对象。因此,父级的OnCreate()是创建Rebar控件的最佳位置。
5.11 Timer
间隔的取值为0~64767(约64.8s)。
系统每秒生成8个时钟信号,因此间隔实际精确度不会超过1/18s。
Timer的关键属性:
1)Enabled:是否窗体加载时Timer即开始工作,当然可通过外部事件启动或关闭Timer;
2)Interval:毫秒。
5.12 Tab控件
5.13 IP控件
5.14 Picture控件
5.15 滑块Slider
5.16 滚动条Scroll Bar
5.17 Hot Key
5.18 视频Animation
5.19 数值调节钮Spin
5.20 GroupBox
5.21 Data Time Picker
若要同时使用CDateTimePicker和CMonthCa了Ctrl类,必须包含AFXDTCTL.h(项目的STDAFX.h文件中)。
1)在对话框窗口中使用CDateTimeCtrl
添加带Control属性的CDateTimeCtrl类型成员变量,可以使用此成员调用CDateTimeCtrl的成员函数。
2)不在对话框中使用CDateTimeCtrl
在视图类或窗口类中声明该控件;调用Create函数,可能在在OnInitialUpdate()中,也可能与父窗口的OnCreate()函数一样早设置样式。
通过调用GetMonthCalCtrl()成员函数,可以从CDateTimeCtrl对象访问嵌入的月历控件对象。
自定义事件日期格式:
CString formatStr=_T("'Today is:'yy'/'MM'/'dd");
m_dtPicker.SetFormat(formatStr);
5.22 月历控件Month Canlendar控件
若要使用CMonthCalCtrl类,必须包括AFCDTCTL.h(常在STDAFX.h中)。
1)在对话框中直接使用CMonthCalCtrl
添加带Contrl属性的CMonthCalCtrl类型成员变量,可以使用该成员调用CmonthCalCtrl的成员函数;在OnInitDialog()中设置CMonthCalCtrl对象其他样式。
2)在非对话框窗口中使用CMonthCalCtrl
在视图类或窗口类中定义该控件;调用Create函数,可能在在OnInitialUpdate()中,也可能与父窗口的OnCreate()函数一样早设置样式。
通过调用GetMonthCalCtrl()成员函数,可以从CDateTimeCtrl对象访问嵌入的月历控件对象。
5.23 自定义控件Custom
自定义控件:特殊格式的动态链接库或者一个文件,能够给基于Windows的应用程序用户接口添加特性和功能。
ActiveX控件:也成为OLE自定义控件。
5.24 SysLink控件CLinkCtrl
要添加SysLink控件,先添加一个自定义控件,然后将其Class属性改为SysLink。
SysLink控件可以方便地在窗口中嵌入超文本链接。
5.25 拆分按钮Split Button
拆分按钮(分割按钮):单击该按钮,变为两部分,主要部分与一侧的下拉按钮。
5.26 Network Address控件
5.27 Check Box控件
int GetCheck() const;
5.28 Radio Button
5.29 MediaPlayer控件
ActiveX控件:能执行特定功能的控件。通常保存在.ocx或.dll文件中。ActiveX控件不能单独运行,必须依赖于某种应用程序如Windows应用程序、Web应用程序等,这些程序成为宿主程序。

0 0