ITPub博客

首页 > Linux操作系统 > Linux操作系统 > MFC控件精简

MFC控件精简

Linux操作系统 作者:czhaii 时间:2013-11-08 19:10:39 0 删除 编辑

表6.1 Windows标准控件

控件

MFC

描述

动画

CAnimateCtrl

显示连续的AVI视频剪辑

按钮

CButton

用来产生某种行为的按钮,以及复选框、单选钮和组框

组合框

CComboBox

编辑框和列表框的组合

编辑框

CEdit

用于键入文本

标题头

CHeaderCtrl

位于某一行文本之上的按钮,可用来控制显示文件的宽度

热键

CHotKeyCtrl

用于通过按下某一组合键来很快的执行某些常用的操作

图象列表

CImageList

一系列图象(典型情况下是一系列图标或位图)的集合。图象列表本身不是一种控件,它常常是和其它控件一起工作,为其它控件提供所用的图象列表

列表

CListCtrl

显示文本及其图标列表的窗口

列表框

CListBox

包括一系列字符串的列表

进度

CProgressCtrl

用于在一较长操作中提示用户所完成的进度

多格式文本编辑

CRichEditCtrl

提供可设置字符和段落格式的文本编辑的窗口

滚动条

CScrollBar

为对话框提供控件形式的滚动条

滑块

CSliderCtrl

包括一个有可选标记的滑块的窗口

旋转按钮

CSpinButtonCtrl

提供一对可用于增减某个值的箭头

静态文本

CStatic

常用于为其它控件提供标签

状态条

CStatusBarCtrl

用于显示状态信息的窗口,同MFCCStatusBar类似

续表6.1

控件

MFC

描述

选项卡

CTabCtrl

在选项卡对话框或属性页中提供具有类似笔记本中使用的分隔标签的外观的选项卡

工具条

CToolBarCtrl

具有一系列命令生成按钮的窗口,同MFCCToolBar类似

工具提示

CToolTipCtrl

一个小的弹出式窗口,用于提供对工具条按钮或其它控件功能的简单描述

CTreeCtrl

用于显示一系列的项的继承结构

 第二节 所有窗口类的基类:CWnd

1. 类CWnd的数据成员(6.2)

表6. 2 类CWnd的数据成员

数据成员

描述

m_hWnd

与该CWnd对象相关联的Windows窗口句柄(HWND)

 

表6. 3 类CWnd的构造函数和析构函数

成员函数

获得图标句柄

 

SetIcon

设置句柄为一指定图标

 

GetWindowContextHelpId

获得帮助上下文标识符

 

SetWindowContextHelpId

设置帮助上下文标识符

 

ModifyStyle

修改当前窗口样式

 

ModifyStyleEx

修改当前窗口的扩展样式

 

成员函数

描述

GetWindowPlacement

获得显示状态和窗口的正常、最小化和最大化位置

SetWindowPlacement

设置显示状态和窗口的正常、最小化和最大化位置

GetWindowRgn

获得窗口的窗口区域的拷贝

SetWindowRgn

设置窗口区域

IsIconic

判断窗口是否被最小化(图标化)

IsZoomed

判断窗口是否被最大化

MoveWindow

改变窗口的位置和度量

SetWindowPos

改变子窗口、弹出式窗口或顶层窗口的大小、位置和顺序

ArrangeIconicWindows

排列所有最小化的子窗口

BringWindowToTop

CWnd对象放到覆盖窗口栈的顶部

GetWindowRect

获得CWnd对象的屏幕坐标

GetClientRect

获得CWnd对象客户区的度量

 

表6. 7 类CWnd的窗口访问成员函数

成员函数

描述

ChildWindowFromPoint

判断包含指定点的子窗口

FindWindow

返回由其窗口名称和窗口类标识的窗口的句柄

GetNextWindow

返回窗口管理器列表中的下一个(或上一个)窗口

GetOwner

返回指向CWnd对象的所有者的指针

续表6.7

成员函数

描述

SetOwner

改变CWnd对象的所有者

GetTopWindow

返回属于CWnd对象的第一个子窗口

GetWindow

返回与当前窗口有指定关系的窗口

GetLastActivePopup

判断由CWnd对象所有的弹出窗口中最近激活的窗口

IsChild

判断CWnd对象是否为一个子窗口

GetParent

如果存在的话,获得CWnd对象的父窗口

GetSafeOwner

获得给定窗口的安全的所有者

SetParent

改变父窗口

WindowFromPoint

标识包括给定点的窗口

GetDlgItem

从指定的对话框获得标准符为指定ID的控件

GetDlgCtrlID

如果CWnd为一子窗口,返回其ID

SetDlgCtrlID

CWnd对象为一子窗口(不仅指对话框中的控件)时,为其指定控件ID或窗口ID

GetDescendantWindow

检查所有下级窗口(descendant window)并返回具有指定ID的窗口

GetParentFrame

获得CWnd对象的父框架窗口

SendMessageToDescendants

发送一条消息到窗口的所有下级窗口

GetTopLevelParent

获得窗口的顶层父窗口

GetTopLevelOwner

获得窗口的顶层所有者窗口

GetParentOwner

返回指向子窗口的父窗口的指针

GetTopLevelFrame

获得窗口的顶层框架窗口

UpdateDialogControls

用来更新对话框按钮或其它控件的状态

UpdateData

初始化对话框或从对话框中获取数据

CenterWindow

相对于父窗口使窗口居中

表6. 8 类CWnd的更新和绘制函数

成员函数

描述

BeginPaint

为重绘操作准备CWnd对象

EndPaint

标记重绘操作的结束

续表6.8

成员函数

描述

Print

在指定的设备上下文绘制当前窗口

PrintClient

在指定的设备上下文(通常是打印机)绘制所有窗口

LockWindowUpdate

禁止或重新允许绘制指定的窗口

UnlockWindowUpdate

解除CWnd::LockWindowUpdate对窗口的锁定

GetDC

获得客户区的显示上下文

GetDCEx

获得客户区的显示上下文,并在绘制过程中允许裁剪

RedrawWindow

在客户区中更新指定的矩形或区域

GetWindowDC

获得整个窗口的显示上下文,包括标题条,菜单和滚动条

ReleaseDC

释放客户区或窗口设备上下文,并使其可为其它程序所使用

UpdateWindow

更新客户区

SetRedraw

决定在CWnd对象中的改变是否被重绘

GetUpdateRect

获得完全覆盖CWnd对象的更新区域的最小矩形坐标

GetUpdateRgn

获得CWnd对象的更新区域

Invalidate

使用整个客户区无效

InvalidateRect

通过将给定矩形添加到当前更新区域来使包括在给定矩形内的客户区无效

InvalidateRgn

通过将给定区域添加到当前更新区域来使包括在给定区域内的客户区无效

ValidateRect

通过将给定矩形从当前更新区域中移出来使包括在给定矩形内的客户区有效

ValidateRgn

通过将给定区域从当前更新区域中移出来使包括在给定区域内的窗户区有效

ShowWindow

显示或隐藏窗口

IsWindowVisible

判断窗口是否可见

ShowOwnedPopups

显示或隐藏窗口拥有的所有弹出式窗口

EnableScrollBar

允许或禁止滚动条上的一个或两个箭头

表6. 9 类CWnd的坐标映射函数

成员函数

描述

MapWindowPoints

CWnd对象的坐标空间映射一系列点到另一窗口的坐标空间

续表6.9

成员函数

描述

ClientToScreen

转换给定点的客户坐标或显示矩形到屏幕坐标

ScreenToClient

转换给定点的屏幕坐标或显示矩形到客户坐标

表6. 10 类CWnd的窗口文本函数

成员函数

描述

SetWindowText

设置窗口文本或标题条(如果有的话)为指定文本

GetWindowText

获得窗口文本或标题条

GetWindowTextLength

返回窗口文本或标题条的长度

SetFont

设置当前字体

GetFont

获得当前字体

表6. 11 类CWnd的滚动成员函数

成员函数

描述

GetScrollPos

获得滚动框的当前位置

GetScrollRange

拷贝给定滚动框中滚动块的当前最大和最小位置

ScrollWindow

滚动客户区的内容

ScrollWindowEx

滚动客户区内容。与ScrollWindowEx类似,但具有一些附加特性

GetScrollInfo

获得关于某一滚动条的由SCROLLINFO结构维护的信息

GetScrollLimit

获得滚动条的限制

SetScrollInfo

设置关于滚动条的信息

SetScrollPos

设置滚动条的当前位置,并在指定的情况下重绘滚动条以反映新的位置

SetScrollRange

设置给定滚动条的最小和最大位置值

ShowScrollBar

显示或隐藏滚动条

EnableScrollBarCtrl

允许或禁止兄弟滚动条控件

GetScrollBarCtrl

返回兄弟滚动条控件

RepositionBars

在客户区中对控件条重定位

表6. 12 类CWnd的拖放成员函数

成员函数

描述

DragAcceptFiles

使窗口可以接受文件拖放

表6. 13 类CWnd的插入符成员函数

成员函数

描述

CreateCaret

新的插入符形状,并获得该插入符的所有权

CreateSolidCaret

创建方块形状的插入符,并获得该插入符的所有权

CreateGrayCaret

创建变灰方块形状的插入符,并获得该插入符的所有权

GetCaretPos

获得插入符当前位置的客户坐标

SetCaretPos

移动插入符到指定的位置

HideCaret

隐藏插入符

ShowCaret

在插入符的当前位置显示插入符

表6. 14 类CWnd的对话框项函数

成员函数

描述

CheckDlgButton

在按钮控件前放置选中标记或清除按钮控件的选中标记

CheckRadioButton

选中指定的单选钮并清除指定给中其它所有单选钮的选中标记

GetCheckedRadioButton

返回一组按钮中当前选中单选钮的ID

DlgDirList

使用文件或目录列表填充一列表框

DlgDirListComboBox

使用文件或目录列表填充一组合框的列表框

DlgDirSelect

从一列表框中获得当前选择

DlgDirSelectComboBox

从一组合框的列表框中获得当前选择

GetDlgItemInt

将给定对话框中某一控件的文本转换为一个整数值

GetDlgItemText

获得与某一控件相关联的标题或文本

GetNextDlgGroupItem

查找同一组中的下一个(或前一个)控件

续表6.14

成员函数

描述

GetNextDlgTabItem

查找在指定控件之前(或之后)的第一个具有WS_TABSTOP样式的控件

IsDlgButtonChecked

判断一个按钮控件是否选中

IsDialogMessage

判断一个给定消息是否影响非模态对话框,如果是,处理该消息

SendDlgItemMessage

向指定的控件发送一条消息

SetDlgItemInt

使某一控件的文本为某一给定整数值

SetDlgItemText

设置指定对话框中某一控件的标题或文本

SubclassDlgItem

将一个Windows控件与CWnd对象相关联,并使其通过CWnd对象的消息映射传递消息

ExecuteDlgInit

初始化对话框资源

RunModalLoop

为一模态窗口获取、翻译或发送消息

ContinueModal

使一窗口继续保持模态

EndModalLoop

结束某一窗口的模态状态

表6. 15 类CWnd的数据绑定成员函数

成员函数

描述

BindDefaultProperty

将调用对象的默认简单绑定属性(该属性在类型库中标记)绑定至相关联的数据源控件的游标

BindProperty

将数据绑定控件的游标绑定属性绑定至数据源控件,并使用MFC绑定管理器注册绑定关系

GetDSCCursor

获得指向由数据源控件的数据源、用户名、密码和SQL属性定义的底层游标的指针

表6. 16 类CWnd的菜单成员函数

成员函数

描述

GetMenu

获得指向指定菜单的指针

SetMenu

设置菜单为指定的菜单

DrawMenuBar

重绘菜单条

GetSystemMenu

允许应用程序访问控制菜单以进行复制和修改

续表6.16

成员函数

描述

HiliteMenuItem

加亮顶层菜单项或移去顶层菜单项的加亮显示

表6. 17 类CWnd的工具提示函数

成员函数

描述

EnableToolTip

允许工具提示控件

CancelToolTip

禁止工具提示控件

FilterToolTipMessage

获得对话框中与某一控件相关联的标题或文本

OnToolHitTest

判断一个点是否在指定工具的绑定矩形内,并获得该工具的信息

表6. 18 类CWnd的计时器成员函数

成员函数

描述

SetTimer

安装系统计时器,计时器触发时发送WM_TIMER消息

KillTimer

消除系统计时器

表6. 19 类CWnd的提示成员函数

成员函数

描述

FlashWindow

闪烁窗口一次

MessageBox

创建并显示一个包括应用程序提供的消息和标题的窗口

表6. 20 类CWnd的窗口消息成员函数

成员函数

描述

GetCurrentMessage

返回窗口正在处理的消息的指针。仅当在一个OnMessage消息处理函数中调用该成员函数。

Default

调用默认窗口过程,该过程提供对所有应用程序未处理的消息的默认处理

PreTranslateMessage

CWinApp使用,在窗口消息被发送到TranslateMessageDispatchMessage之前对其进行过滤

续表6.20

成员函数

描述

SendMessage

将一条消息发送到CWnd对象,直至该对象处理该消息之后才返回

PostMessage

将一条消息放入程序的消息队列,不等待窗口处理该消息就立即返回

SendNotifyMessage

将指定消息发送到窗口,并尽可能快的返回,这依赖于调用线程如何创建窗口

表6. 21 类CWnd的剪贴板函数

成员函数

描述

ChangeClipboardChain

从剪贴板查看器链中移去CWnd对象

SetClipboardViewer

添到CWnd对象到窗口链,这些窗口当剪贴板内容改变时会收到通知

OpenClipboard

打开剪贴板。其它程序仅当Windows CloseClipboard函数被调用时才可以更改剪贴板

GetClipboardOwner

获得剪贴板的当前拥有者的指针

GetOpenClipboardWindow

获得指向当前打开剪贴板的窗口的指针

GetClipboardViewer

获得指向剪贴板查看器链中第一个窗口的指针

表6. 22 类CWnd的OLE控件函数

成员函数

描述

SetProperty

设置OLE控件属性

OnAmbientProperty

实现环境属性值

GetControlUnknown

获得指向一未知OLE控件的指针

GetProperty

获得一OLE控件的属性

InvokeHelper

调用OLE控件方法或属性

表6. 23 类CWnd的可重载成员函数

成员函数

描述

WindowProc

CWnd对象提供一个窗口过程。默认的窗口过程通过消息映射发送消息

DefWindowProc

调用默认窗口过程,该过程提供应用程序未处理的所有窗口消息的默认处理

PostNcDestroy

在窗口被消毁后由OnNcDestroy函数调用

OnNotify

由框架调用以通知父窗口某一事件在某一控件中发生或者该控件需要信息

OnChildNotify

由父窗口调用以给通知控件一个响应控件通知的机会

DoDataExchange

用于对话框数据交换和验证。由UpdateData调用

按钮 一般属性:

ID

在头文件中定义的符号。类型:符号、整数或用引号括起来的字符串

Caption

控件标签文本。如果在标题中的某个字母前加上了“&”符号,该字母在显示时将被加上下划线,相应的“&”符不会被显示。在运行直接按下加有下划线的字母同单击按钮具有同样的效果。默认情况下,资源编辑器对按钮标题的命名依赖于控件的类型,如Button1Button2等。

Visible

决定当应用程序第一次运行时控件是否可见。类型:布尔值 默认值为真

Disabled

决定当对话框创建时该控件是否显示为禁止状态。类型:布尔值 默认值为假

Group

指定一组控件中的第一个控件。在同组控件中用户可以使用箭头键在控件之间移动。以tab order为序,在该控件之后的所有该属性值为False的控件将被视为同一组控件,直到遇上Group属性标记为True的控件为止。类型:布尔值 默认值为假

Tabstop

决定用户是否可以使用TAB键来定位到该控件。类型:布尔值 默认值为假

HelpID

为控件指定一个帮助标识符。该标识符基于相应的资源标识符。类型:布尔值 默认值为假

样式:

Default button

该属性为真时,控件将作为对话框中的默认按钮,默认按钮在对话框第一次显示时具有粗的黑边,用户在对话框中按下ENTER键相当于单击该按钮。一个对话框中只允许有一个默认按钮。类型:布尔值 默认值为假

Owner draw

创建一个自绘按钮。使用自绘按钮可以定制按钮的外观。使用自绘按钮需要重载下面的两个函数或其中之一:CWnd::OnDrawItemCButton::OnDraw

Icon

在按钮显示时使用一个图标来代替文本。类型:布尔值 默认值为假

该按钮样式为Windows 95中新引入的按钮样式

Bitmap

在按钮显示时使用位图来代替文本。类型:布尔值 默认值为假

该样式为Windows 95中新引入的样式

Multi-line

当按钮文本太长时使用多行回绕的方式进行显示。类型:布尔值 默认值为假

Notify

按钮控件被单击或双击时通知父窗口。类型:布尔值 默认值为真

Flat

使用平面外观代替按钮默认的三维外观。类型:布尔值 默认值为假

Horizontal alignment

设置按钮标题文本的对齐方式(左对齐、右对齐、居中对齐或使用默认位置)

Vertical alignment

设置按钮标题文本的对齐方式(向上对齐、向下对齐、居中对齐或使用默认位置)

扩展样式

Client edge

使按钮看起来有下凹的感觉。类型:布尔值 默认值为假

Static edge

在按钮边缘创建边框。类型:布尔值 默认值为假

Modal frame

提供一个三维框架

Transparent

使控件透明。位于透明窗口下面的窗口不会被该窗口所覆盖。具有透明样式的窗口仅当所有底层兄弟窗口完成更新之后才会收到WM_PAINT消息。类型:布尔值 默认什为假

Accept files

是否接受文件拖放。如果在控件上放下文件时,控件将接收到WM_DROPFILES消息。类型:布尔值 默认值为假

No parent notify

指定子窗口不向父窗口发送WM_PARENTNOTIFY消息。类型:布尔值 默认值为假

Right aligned text

指定文本为右对齐。类型:布尔值 默认值为假

Right-to-left reading order

使用从右向左的阅读方式来显示文本。主要用于希伯来语系和阿拉伯语等。类型:布尔值 默认值为假

以下特定于复选框的样式可以Properties对话框的Styles属性页中进行设置:

Auto

对于Auto属性为真的复选框,在单击时将自动在“选中”和“不选中”之间进行切换。如果在一组复选框中使用了Dialog Data Exchange,则必须将该属性设置为真。类型:布尔值 默认值:真

Tri-state

创建三态复选框。除了处于“选中”和“不选中”状态外,三态复选框还可以处于变灰状态。通常,态复选框的变灰状态表示其选中状态不确定。在很多软件的安装程序中,变灰往往表示仅选中该组件中的一部分。

表6. 24 工程CheckBox中各控件的属性设置

控件

ID

标题文本

其它

复选框

IDC_PLACE1

在家里(&H)

Auto属性和Tri-state属性均为真

IDC_PLACE2

在公司办公室(&O)

IDC_PLACE3

在学校公共机房(&S)

IDC_OFTEN

经常

Auto属性为假,Tri-state属性为真

IDC_SELDOM

偶尔

IDC_NEVER

从不

组框

IDC_STATIC

使用计算机的场所

 

态控件的Properties属性对话框的Styles选项卡进行这些属性或样式的设置。

Align text

决定静态文本控件中文本的横向对齐方式。可供选择的值为Left (向左对齐)Center (居中对齐)Right (向右对齐)。默认值:Left

Center Vertically

在静态文本控件中将文本进行垂直居中。类型:布尔值 默认值:假

No prefix

不将控件文本中的“&”符解释为助记字符。在默认情况下,“&”符号在显示时会被去掉,取而代之的是紧接“&”符之后的字符被以加下划线的格式进行显示。我们早在前面说过,通过双写“&”符可以在控件文本中显示出实际的“&”符,但是,对于一些特殊的场合,如使用静态文本控件来显示文件名的时候,将No prefix属性设置为“真”要更方便。

No wrap

以左对齐的方式来显示文本,并且不进行文本的自动回行。超出控件右边界的文本将被裁去。需要注意的是,这时即使使用转义字符序列"\n"也不可以强制控件文本进行换行。类型:布尔值 默认值:假

Simple

禁止设置Text Align属性和No Wrap样式。在该属性为真的情况下,静态文本控件中的文本不会被自动回行,也不会被剪裁。类型:布尔值 默认值:假

Notify

决定控件在被单击时是否通知父窗口。类型:布尔值 默认值:假

Sunken

使用静态文本控件看上去有下凹的感觉。类型:布尔值 默认值:假

Border

为文本控件创建边框。类型:布尔值 默认值:假

对于文本编辑控件,除了我们在前面所涉及的一些外,还可以设置以下的一些属性样式:

Align text

决定当Multiline属性为真时文本的对齐方式。默认值为:Left

Multi-line

创建一个多行文本编辑控件。当一个多行文本编辑控件具有输入焦点时,如果用户按下了ENTER键,以默认情况下的行为是选择对话框中的默认命令按钮,而不是向文本编辑控件中插入新行。将AutoHScroll属性或Want return属性设置为真可以将用户按下的ENTER键解释为插入新行,而不是选择默认命令按钮。

在选择了AutoHScroll属性时,如果插入点超过了控件的右边界,多行文本编辑控件自动进行水平滚动。用户可以使用ENTER键来开始新行。

如果没有选择AutoHScroll属性,多行文本编辑控件将视需要将文本进行自动折行。而仅当Want return属性为真时,用户才可以使用ENTER键来开始新行。

多行文本编辑控件也可以拥有自己的滚动条。具有滚动条的编辑控件处理自己的滚动条消息,而不具有滚动条的编辑控件也可以由父窗口发送的滚动条消息。

类型:布尔值 默认值:假

Number

用户不能输入非数字字符。类型:布尔值 默认值:假

Horizontal scroll

为多行控件提供水平滚动条。类型:布尔值 默认值:假

Auto HScroll

当用户输入的字符超过了编辑框的右边界时自动水平向右滚动文本。类型:布尔值 默认值:真

Vertical scroll

为多行控件提供垂直滚动条。类型:布尔值 默认值:假

Auto VScroll

在多行控件中,当用户在最后一行按下ENTER键时自动向上滚动文本

Password

当用户键入时将所有字符显示为星号(*)。该属性对于多行控件不可用。类型:布尔值 默认值:假

No hide selection

改变当编辑框失去和重新获得焦点时文本的显示方式。如果该属性为真,在编辑框中选中的文本在任何时候都显示为选中状态(即反白状态)。类型:布尔值 默认值:假

OEM convert

将键入的文本从Windows字符集转换为OEM字符集,再转换回Windows字符集。该操作确认应用程序在调用AnsiToOem函数将编辑框中的字符串转换为OEM字符串时进行正确的字符转换,因此该样式对于包括文件名的编辑控件特别有用。类型:布尔值 默认值:假

Want return

指定当用户在多行编辑控件中按下ENTER键时插入一个回车符,否则用户按下ENTER将被解释为选择了对话框中的默认命令按钮。该样式对于单行编辑框控件没有任何影响。类型:布尔值 默认值:假

Border

在编辑框边缘创建边框。类型:布尔值 默认值:真

Uppercase

将用户在编辑框中输入的字符转换为大写。类型:布尔值 默认值:假

Lowercase

将用户在编辑框中输入的字符转换为小写。

类型:布尔值 默认值:假

Read-only

防止用户编辑和更改编辑框中的文本。类型:布尔值 默认值:假

表6. 25 类CEdit中定义的成员函数

成员函数

描述

CEdit

构造CEdit控件对象

Create

创建Windows编辑控件,并将其与CEdit对象相关联

GetSel

获得编辑控件中当前选择的开始和结束字符的位置

ReplaceSel

使用特定的文本来替换编辑控件中的当前选择

SetSel

设置编辑控件中所选定的字符范围

Clear

删除编辑控件中当前选定的字符

Copy

使用CF_TEXT格式将编辑控件中当前选定的文本复制到剪贴板

Cut

删除当前选定的字符,并将所删除的字符复制到剪贴板

Paste

将剪贴板中格式为CF_TEXT的数据(如果有的话)插入到编辑框中的当前位置。

Undo

撤销最后一次编辑操作

CanUndo

决定编辑控件的操作是否可以被撤销

EmptyUndoBuffer

重置编辑控件的undo标志

GetModify

判断编辑控件中的内容是否被修改过

SetModify

设置或清除编辑控件中的修改标志

SetReadOnly

设置编辑控件的只读状态

GetPasswordChar

当用户输入文本时获得编辑控件中显示的密码字符

SetPasswordChar

设置或移去当用户输入文本时编辑控件中显示的密码字符

GetFirstVisibleLine

获得编辑控件中最上面的可见行

LineLength

获得编辑控件中一行的长度

LineScroll

滚动多行编辑控件中的文本

LineFromChar

获得包含指定索引字符的行的行号

GetRect

获得编辑控件的格式矩形

LimitText

限制用户可以在编辑控件中输入的文本的长度

GetLineCount

获得多行编辑控件中行的数目

GetLine

获得编辑控件中的一行文本

LineIndex

获得多行编辑控件中一行的字符索引

FmtLines

在多行编辑控件中设置是否包含软换行符的开关

续表6.25

成员函数

描述

 

SetTabStops

在多行编辑控件中设置制表位

 

SetRect

设置多行文本编辑控件的格式矩形,并更新控件

 

SetRectNP

设置多行文本编辑控件的格式矩形,但不重绘控件窗口

 

GetHandle

获得为多行编辑控件分配的内存的句柄

 

SetHandle

设置供多行编辑控件使用的本地内存句柄

 

GetMargins

获得当前CEdit对象的左右页边距

 

SetMargins

设置当前CEdit对象的左右页边距

 

GetLimitText

获得当前CEdit对象可以包括的最大文本量

 

SetLimitText

设置当前CEdit对象可以包括的最大文本量

 

CharFromPos

获得最接近于指定位图的行和字符的索引

 

PosFromChar

获得指定字符索引的左上角的坐标

 

 

 

ON_EN_CHANGEON_EN_ERRSPACE

编辑控件不能按选定需要分配足够的内存

ON_EN_HSCROLL

用户单击了编辑控件中的水平滚动条。父窗口在屏幕更新前获得此消息

ON_EN_KILLFOCUS

编辑控件失去输入焦点

ON_EN_MAXTEXT

当前插入内容超过了编辑控件中的指定的字符数,该插入内容已被裁剪。如果控件没有设置ES_AUTOHSCROLL样式,那么在插入的字符超出了编辑控件的宽度也发送该通知消息。同样,如果控件没有指定ES_AUTOVSCROLL样式,该通知也以插入操作导致总行数超过编辑控件的高度时发送。

ON_EN_SETFOCUS

编辑按钮获得输入焦点

ON_EN_UPDATE

控件已对文本作了格式化,但尚未显示文本。通常可以处理该消息以决定是否需要对窗口的大小作改变等。

ON_EN_VSCROLL

用户单击了编辑控件的垂直滚动条。父窗口在屏幕更新前收到该消息。

表6. 26 在类CListBox中定义的成员函数

成员函数

描述

AddString

向列表框中添加字符串

CharToItem

为不包含字符串的自绘制列表框提供对WM_CHAR的定制处理

CListBox

构造一个CListBox对象

CompareItem

由框架调用以决定新添加的项在有序自绘制列表框中的位置

Create

创建一个Windows列表框控件,并将它与CListBox对象相关联

DeleteItem

当用户从自绘制列表框中删除一项时由框架调用

DeleteString

从列表框中删除字符串

Dir

从当前目录向列表框中添加文件名

DrawItem

当自绘列表框的可视部分改变时由框架调用

FindString

在列表框中查询指定的字符串

FindStringExact

查找与指定字符串相匹配的第一个列表框字符串

GetAnchorIndex

返回列表框中当前“锚点”项的基于零的索引

续表6.26

成员函数

描述

GetCaretIndex

在多重选择列表框中获得当前拥有焦点矩形的项的索引

GetCount

返回列表框中字符串的数目

GetCurSel

返回列表框中当前选择字符串的基于零的索引值

GetHorizontalExtent

以象素为单位返回列表框横向可滚动的宽度

GetItemData

返回下列表框项相关联的32位值

GetItemDataPtr

返回指向列表框项的指针

GetItemHeight

决定列表框中项的高度

GetLocale

获得列表框使用的区域标识符

GetSel

返回列表框项的选定状态

GetSelItems

返回当前选定字符串的索引

GetSelCount

在多重选择列表框中获得当前选定字符串的数目

GetText

拷贝列表框项到缓冲区

GetTextLen

以字节为单位返回列表框项的长度

GetTopIndex

返回列表框中第一个可视项的索引

InitStorage

为列表框项和字符串预先分配内存

InsertString

在列表框中的指定位置插入一个字符串

ItemFromPoint

返回与指定点最接近的列表框项的索引

MeasureItem

当自绘列表框创建时由框架调用以获得列表框的尺寸

ResetContent

从列表框中清除所有的项

SelectString

从单项选择列表框中查找并选定一个字符串

SelItemRange

在多重选择列表框中选中某一范围的字符串或清除某一范围的字符串的选定状态

SetAnchorIndex

在多重选择列表框的设置扩展选定的起点(“锚点”项)

SetCaretIndex

在多重选择列表框中设置当前拥有焦点矩形的项的索引

SetColumnWidth

设置多列列表框的列宽

SetCurSel

在列表框中选定一字符串

SetHorizontalExtent

以象素为单位设置列表框横向可滚动的宽度

SetItemHeight

设置列表框中项的高度

SetItemRect

返回列表框项当前显示的边界矩形

SetLocale

为列表框指定区域标识符

续表6.26

成员函数

描述

SetSel

在多重选择列表框中选定一列表框项或清除某一列表框项的选定状态

SetTabStops

设置列表框的制表位

SetTopIndex

设置列表框中第一个可视项的基于零的索引

VKeyToItem

为具有LBS_WANTKEYBOARDINPUT样式的列表框提供定制的WM_KEYDOWN消息处理

以下是列表框可能向父窗口发送的通知消息及其说明:

ON_LBN_DLBCLK

用户双击了列表框中的字符串。仅当列表框具有LBS_NOTIFY样式时会发送该通知消息

ON_LBN_ERRSPACE

列表框不能按需要分配足够的内存

ON_LBN_KILLFOCUS

列表框失去输入焦点

ON_LBN_SELCANCEL

列表框中的当前选择被取消。仅当列表框具有LBS_NOTIFY样式时才会发送该通知消息

ON_LBN_SELCHANGE

列表框中的选择将被更新。需要注意的是,当使用成员函数CListBox::SetCurSel时不会发送该通知消息,同时,该消息也仅当列表框具有LBS_NOTIFY样式才会发送。对于多重选择列表框,当用户按下光标键时,即使所选择的内容没有改变,也会发送LBN_SELCHANGE通知消息。

ON_LBN_SETFOCUS

列表框获得输入焦点

ON_WM_CHARTOITEM

不包括字符串的列表框收到WM_CHAR消息

ON_WM_VKEYTOITEM

具有LBS_WANTKEYBOARDINPUT样式的列表框接收到WM_KEYDOWN消息

Selection

决定列表框的选择方式。可以设置的值如下:

Single:用户同时只能选择列表框中的一项

Multiple:用户可以同时选择多于一个的列表框项,但不可以从开始项扩展选定内容。在鼠标单击时可以使用SHIFT键和CTRL键选定和取消选定,同时选定项不一定需要连续。单击或双击未选定项时将选定该项;单击或双击已选定项时将取消对该项的选定。

Extended:用户可以通过拖动来扩展选定内容。用户可以鼠标和SHIFT键和CTRL键进行选定或取消选定,选择成组的项或不连续的项。

默认值为Single

Owner draw

控制列表框的自绘特性。可以设置的值如下:

No:关闭自绘制样式,列表框中包含的内容为字符串。

Fixed:指定列表框的所有者负责绘制其内容,并且列表框中的项具有相同的高度。

Variable:指定列表框的所有者负责绘制其内容,并且列表框的项具有不同的高度。

当列表框创建时CWnd::OnMeasureItem将被调用;当列表框的可视部分改变时CWnd::OnDrawItem将被调用。

默认值为No

Has strings

指定自绘制列表框包括由字符串组成的项。列表框为字符串维护内存和指针,因此应用程序可以使用LB_GETTEXT消息来获得特定项的文本。在默认情况下,除了自绘制按钮以外,所有的列表框都具有该项属性。由应用程序创建的自绘制列表框可以具有或不具有该样式。

该样式仅当自绘制属性被设置为FixedVariable时可用。如果自绘制属性被设置为No,列表框在默认情况下包括字符串。

类型:布尔值 默认值为假

Sort

以字母为序对列表框内容进行排序。

类型:布尔值 默认值为真

Notify

如果列表项被单击或双击时通知父窗口。

类型:布尔值 默认值为真

Multi-colume

指定多列列表框,多列列表框可以在水平方向上进行滚动。消息LB_SETCOLUMNWIDTH用来设置列宽。

类型:布尔值 默认值为假

Horizontal scroll

创建具有水平滚动条的列表框。类型:布尔值 默认值为假

Vertical scroll

创建具有垂直滚动条的列表框。类型:布尔值 默认值为真

No redraw

指定当发生改变时列表框外观不进行更新。可以通过发送WM_SETREDRAW消息或调用CWnd::SetRedraw函数改变该属性。

类型:布尔值 默认值为假

Use tabstops

允许列表框在绘制字符串辨认和扩展制表符。默认的制表位为32个对话框单位(DLU)。类型:布尔值 默认值为假

Want key input

指定当用户有按键动作并且列表框具有输入焦点时列表框的所有者收到WM_VKEYTOITEMWM_CHARTOITEM消息,以允许应用程序在使用键盘输入时进行特定的处理。如果列表框具有了Has Strings样式,列表框将接收到WM_VKEYTOITEM消息;如果列表框不具有WM_CHARTOITEM消息,则列表框将接收到WM_CHARTOITEM消息。

类型:布尔值 默认值为假

Disable no scroll

当列表框不具有足够多的项时显示不可用的滚动条。如果不使用该属性,在这种情况下将不使用滚动条。类型:布尔值 默认值为假

No integral height

设置对话框的大小严格等于创建对话框时由应用程序指定的大小。一般情况下,Windows改变列表框的大小以使得它不会只显示某一项的一部分,即列表框客户区的高度为项高的整数倍。

类型:布尔值 默认值为真

表6. 27 应用程序ListBoxDemo主对话框各控件的属性设置

控件类型

资源ID

控件标题

其他

列表框

IDC_LISTSELECTABLE

 

位于图6.47左边的列表框,其Selection属性为Extended。对应的DDX变量映射(使用ClassWizardMember Vari-ables选项卡进行设置)CListBox类型变量m_lsSelectable

IDC_LISTSELECTED

 

位于图6.47右边的列表框,其Selection属性为Extended。对应的DDX变量映射为CListBox类型变量m_lsSelected

静态控件

(无需更改)

待选择的文件

 

已选择的文件

 

下压按钮

IDC_BTNCHANGEDIR

<- 改变目录(&H)

 

IDC_BTNADD

添加到(&A) ->

 

IDC_BTNDEL

删除(&D) <-

 

IDC_BTNCLEAR

全部清除(&L) <-

 

 

表6. 28 对话框IDD_INPUT各控件的属性设置

控件类型

资源ID

控件标题

其他

静态控件

IDC_PROMPT

提示字符串

对应的DDX变量映射为CString类型成员变量m_strPrompt

编辑框

IDC_INPUT

 

对应的DDX变量映射为CString类型成员变量m_strInput

第七节 组合框

Type

指定组合框的类型。可以使用的类型如下:

Simple:创建包括编辑框控件和列表框的简单组合框,其中编辑框控件用来接受用户的输入。

Dropdown:创建下拉组合框。该类型与简单组合框类似。但仅当用户单击了编辑框控件部分右边的下拉箭头时组合框的列表框部分才被显示。

Drop List:该类型类似于下拉样式(drop-down),只是使用静态文本项代替编辑框控件来显示列表框中的当前选择。

默认值为Dropdown

Uppercase

将选择域或列表中的所有文本转换为大写。

类型:布尔值 默认值为假

Lowercase

将选择域或列表中的所有文本转换为小写。

类型:布尔值 默认值为假

表6. 29 在类CListBox中定义的成员函数

成员函数

描述

CComboBox

构造一个CComboBox对象

Create

创建一个组合框并将它与CComboBox对象相关联

InitStorage

为组合框的列表框部分的项和字符串预先分配内存块

GetCount

获得组合框中列表框项的数目

GetCurSel

如果存在的话,返回组合框中列表框的当前选定项的索引

SetCurSel

选择组合框中列表框内的一条字符串

GetEditSel

获得组合框中编辑控件的当前选定的起始和终止字符位置

SetEditSel

在组合框的编辑控件中选定字符

SetItemData

设置与组合框中指定项相关联的32位值

SetItemDataPtr

将与组合框中指定项相关联的32位值设置为指定的void指针

GetItemData

获得由应用程序提供的与指定组合框项相关联的32位值

GetItemDataPtr

void指针的形式返回由应用程序提供的与指定组合框项相关联的32位值

GetTopIndex

返回组合框中列表框部分的第一个可视项的索引

SetTopIndex

在组合框中的列表框部分的顶部显示指定索引对应的项

SetHorizontalExtent

以象素为单位指定组合框的列表框部分可以横向滚动的宽度

GetHorizontalExtent

以象素为单位获得组合框中列表框部分可以横向滚动的宽度

SetDroppedWidth

为组合框的下拉列表框部分设置最小允许宽度

GetDroppedWidth

获得组合框的下拉列表框部分的最小允许宽度

Clear

如果存在的话,删除编辑控件中当前选定的内容

Copy

如果存在的话,将当前选定以CF_TEXT格式复制到剪贴板

Cut

如果存在的话,删除编辑控件中当前选定的内容,并将其以CF_TEXT格式复制到剪贴板

Paste

当剪贴板包括CF_TEXT格式的数据时,从剪贴板复制数据到编辑控件的当前插入位置

LimitText

设置用户可以在组合框的编辑控件中输入的文本的长度限制

SetItemHeight

设置组合框中列表项的高度或编辑控件(或静态文本控件)部分的高度

GetItemHeight

获得组合框中列表项的高度

GetLBText

从组合框中的列表框获取字符串

续表6.29

成员函数

描述

GetLBTextLen

获得组合框的列表框中某一字符串的长度

ShowDropDown

对于具有CBS_DROPDOWNCBS_DROPDOWNLIST属性的组合框,显示或隐藏其列表框

GetDroppedControlRect

获得下拉组合框的可视(下拉)列表框的屏幕坐标

GetDroppedState

判断下拉组合框的列表框是否可见(处理下拉状态)

SetExtendedUI

对于具有CBS_DROPDOWNCBS_DROPDOWNLIST样式的组合框,选择默认用户界面或扩展用户界面

GetExtendedUI

判断组合框具有默认用户界面还是扩展用户界面

GetLocale

获得组合框的区域标识符

SetLocale

设置组合框的区域标识符

AddString

向组合框的列表框添加一字符串,对于具有CBS_SORT样式的组合框,新增加的字符串将被排序并插入到合适的位置,否则将被添加到列表框框的末尾

DeleteString

从组合框的列表框中删除字符串

InsertString

向组合框的列表框中插入一字符串

ResetContent

清除组合框的列表框和编辑控件中的所有内容

Dir

添加文件名列表到组合框的列表框中

FindString

在组合框的列表框中查找包括指定前缀的第一个字符串

FindStringExact

在组合框的列表框中查找与指定字符串匹配的字符串

SelectString

在组合框的列表框中查找字符串,如果找到的话,在列表框中选择该字符串,并将字符串复制到编辑控件中

DrawItem

当一个自绘制组合框的可视部分改变时由框架调用

MeasureItem

在创建自绘制组合框时,由框架调用以判断组合框的尺寸

CompareItem

当将一新项插入到排序的自绘制框中时由框架调用以判断项的相对位置

DeleteItem

当一列表项被从自绘制组合框中删除时由框架调用

表6. 30 对话框IDD_COMBODEMO_DIALOG的控件属性设置

控件类型

ID

属性值

组合框

IDC_CLRCOMBO

TypeDropdown

Owner drawFixed

Sort:真

Vertical scroll:真

Has string:假

下压按钮

IDC_ADDCLR

Caption:添加颜色(&A)

IDC_CHGCLR

Caption:改变颜色(&C)

静态控件

IDC_STATICCLR

Caption属性值为空

表6. 31 在类CScrollBar中定义的成员函数

成员函数

描述

 

CScrollBar

构造一个CScrollBar对象

 

Create

创建一个Windows滚动条,并将它与CScrollBar对象相关联

 

GetScrollPos

获得滚动条的当前位置

 

SetScrollPos

设置滚动条的当前位置

 

GetScrollRange

获得给定滚动条的当前最大和最小位置

 

SetScrollRange

设置给定滚动条的当前最大和最小位置

 

ShowScrollBar

显示或隐藏滚动条

 

EnableScrollBar

允许或禁止滚动条上的一个或两个箭头

 

SetScrollInfo

设置关于滚动条的信息

 

GetScrollInfo

获得滚动条的信息

 

GetScrollLimit

获得滚动条的限制

 

SB_LEFT

向左滚动较远距离

SB_ENDSCROLL

结束滚动

SB_LINELEFT

向左滚动

SB_LINERIGHT

向右滚动

SB_PAGELEFT

向左滚动一页

SB_PAGERIGHT

向右滚动一页

SB_RIGHT

向右滚动较远距离

SB_THUMBPOSITION

滚动到绝对位置。当前位置由nPos参数指定

SB_THUMBTRACK

拖动滚动条到指定的位置。当前位置由nPos参数指定

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27660822/viewspace-776142/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-08-22

  • 博文量
    22
  • 访问量
    48232