表6.1 Windows标准控件
|
控件 |
MFC类 |
描述 |
|
动画 |
CAnimateCtrl |
显示连续的AVI视频剪辑 |
|
按钮 |
CButton |
用来产生某种行为的按钮,以及复选框、单选钮和组框 |
|
组合框 |
CComboBox |
编辑框和列表框的组合 |
|
编辑框 |
CEdit |
用于键入文本 |
|
标题头 |
CHeaderCtrl |
位于某一行文本之上的按钮,可用来控制显示文件的宽度 |
|
热键 |
CHotKeyCtrl |
用于通过按下某一组合键来很快的执行某些常用的操作 |
|
图象列表 |
CImageList |
一系列图象(典型情况下是一系列图标或位图)的集合。图象列表本身不是一种控件,它常常是和其它控件一起工作,为其它控件提供所用的图象列表 |
|
列表 |
CListCtrl |
显示文本及其图标列表的窗口 |
|
列表框 |
CListBox |
包括一系列字符串的列表 |
|
进度 |
CProgressCtrl |
用于在一较长操作中提示用户所完成的进度 |
|
多格式文本编辑 |
CRichEditCtrl |
提供可设置字符和段落格式的文本编辑的窗口 |
|
滚动条 |
CScrollBar |
为对话框提供控件形式的滚动条 |
|
滑块 |
CSliderCtrl |
包括一个有可选标记的滑块的窗口 |
|
旋转按钮 |
CSpinButtonCtrl |
提供一对可用于增减某个值的箭头 |
|
静态文本 |
CStatic |
常用于为其它控件提供标签 |
|
状态条 |
CStatusBarCtrl |
用于显示状态信息的窗口,同MFC类CStatusBar类似 |
续表6.1
|
控件 |
MFC类 |
描述 |
|
选项卡 |
CTabCtrl |
在选项卡对话框或属性页中提供具有类似笔记本中使用的分隔标签的外观的选项卡 |
|
工具条 |
CToolBarCtrl |
具有一系列命令生成按钮的窗口,同MFC类CToolBar类似 |
|
工具提示 |
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
|
成员函数 |
描述 |
|
|
在指定的设备上下文绘制当前窗口 |
|
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使用,在窗口消息被发送到TranslateMessage和DispatchMessage之前对其进行过滤 |
续表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: |
控件标签文本。如果在标题中的某个字母前加上了“&”符号,该字母在显示时将被加上下划线,相应的“&”符不会被显示。在运行直接按下加有下划线的字母同单击按钮具有同样的效果。默认情况下,资源编辑器对按钮标题的命名依赖于控件的类型,如Button1、Button2等。 |
|
Visible: |
决定当应用程序第一次运行时控件是否可见。类型:布尔值 默认值为真 |
|
Disabled: |
决定当对话框创建时该控件是否显示为禁止状态。类型:布尔值 默认值为假 |
|
Group: |
指定一组控件中的第一个控件。在同组控件中用户可以使用箭头键在控件之间移动。以tab order为序,在该控件之后的所有该属性值为False的控件将被视为同一组控件,直到遇上Group属性标记为True的控件为止。类型:布尔值 默认值为假 |
|
Tabstop: |
决定用户是否可以使用TAB键来定位到该控件。类型:布尔值 默认值为假 |
|
HelpID: |
为控件指定一个帮助标识符。该标识符基于相应的资源标识符。类型:布尔值 默认值为假 |
样式:
|
Default button: |
该属性为真时,控件将作为对话框中的默认按钮,默认按钮在对话框第一次显示时具有粗的黑边,用户在对话框中按下ENTER键相当于单击该按钮。一个对话框中只允许有一个默认按钮。类型:布尔值 默认值为假 |
|
Owner draw: |
创建一个自绘按钮。使用自绘按钮可以定制按钮的外观。使用自绘按钮需要重载下面的两个函数或其中之一:CWnd::OnDrawItem和CButton::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_CHANGE:ON_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消息来获得特定项的文本。在默认情况下,除了自绘制按钮以外,所有的列表框都具有该项属性。由应用程序创建的自绘制列表框可以具有或不具有该样式。 该样式仅当自绘制属性被设置为Fixed或Variable时可用。如果自绘制属性被设置为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_VKEYTOITEM和WM_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变量映射(使用ClassWizard的Member 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_DROPDOWN或CBS_DROPDOWNLIST属性的组合框,显示或隐藏其列表框 |
|
GetDroppedControlRect |
获得下拉组合框的可视(下拉)列表框的屏幕坐标 |
|
GetDroppedState |
判断下拉组合框的列表框是否可见(处理下拉状态) |
|
SetExtendedUI |
对于具有CBS_DROPDOWN或CBS_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 |
Type:Dropdown Owner draw:Fixed 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博客 ” ,链接:https://blog.itpub.net/27660822/viewspace-776142/ ,如需转载,请注明出处,否则将追究法律责任。