按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
可以由父窗口发送的滚动条消息。
类型:布尔值 默认值:假
Number: 用户不能输入非数字字符。类型:布尔值
默认值:假
Horizontal 为多行控件提供水平滚动条。类型:布尔
scroll: 值 默认值:假
Auto 当用户输入的字符超过了编辑框的右边界
HScroll: 时自动水平向右滚动文本。类型:布尔值
默认值:真
Vertical 为多行控件提供垂直滚动条。类型:布尔
scroll: 值 默认值:假
Auto 在多行控件中,当用户在最后一行按下
VScroll: ENTER键时 自动向上滚动文本
Password: 当用户键入时将所有字符显示为星号
(*)。该属性对于多行控件不可用。类
型:布尔值 默认值:假
No hide 改变当编辑框失去和重新获得焦点时文本
selection: 的显示方式。如果该属性为真,在编辑框
中选中的文本在任何时候都显示为选中状
态 (即反白状态)。类型:布尔值 默认
值:假
OEM 将键入的文本从Windows字符集转换为OEM
convert: 字符集,再转换回Windows字符集。该操
作确认应用程序在调用AnsiToOem函数将
编辑框中的字符串转换为OEM字符串时进
行正确的字符转换,因此该样式对于包括
文件名的编辑控件特别有用。类型:布尔
值 默认值:假
…………………………………………………………Page 349……………………………………………………………
Want 指定当用户在多行编辑控件中按下ENTER
return: 键时插入一个回车符,否则用户按下
ENTER将被解释为选择了对话框中的默认
命令按钮。该样式对于单行编辑框控件没
有任何影响。类型:布尔值 默认值:假
Border: 在编辑框边缘创建边框。类型:布尔值
默认值:真
Uppercase: 将用户在编辑框中输入的字符转换为大
写。类型:布尔值 默认值:假
Lowercase: 将用户在编辑框中输入的字符转换为小
写。
类型:布尔值 默认值:假
Read…only: 防止用户编辑和更改编辑框中的文本。类
型:布尔值 默认值:假
相比我们在前面所讲述的几个类CButton、CBitmapButton和CStatic
而言,封装标准编辑控件的MFC类CEdit要复杂得多。表给出了在类
CEdit中定义的成员函数:
表6。 25 类CEdit中定义的成员函数
成员函数 描述
CEdit 构造CEdit控件对象
Create 创建Windows编辑控件,并将其与
CEdit对象相关联
GetSel 获得编辑控件中当前选择的开始和
结束字符的位置
ReplaceSel 使用特定的文本来替换编辑控件中
的当前选择
SetSel 设置编辑控件中所选定的字符范围
Clear 删除编辑控件中当前选定的字符
Copy 使用CF_TEXT格式将编辑控件中当前
选定的文本复制到剪贴板
…………………………………………………………Page 350……………………………………………………………
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
…………………………………………………………Page 351……………………………………………………………
成员函数 描述
SetTabStops 在多行编辑控件中设置制表位
SetRect 设置多行文本编辑控件的格式矩形,并更新
控件
SetRectNP 设置多行文本编辑控件的格式矩形,但不重
绘控件窗口
GetHandle 获得为多行编辑控件分配的内存的句柄
SetHandle 设置供多行编辑控件使用的本地内存句柄
GetMargins 获得当前CEdit对象的左右页边距
SetMargins 设置当前CEdit对象的左右页边距
GetLimitText 获得当前CEdit对象可以包括的最大文本量
SetLimitText 设置当前CEdit对象可以包括的最大文本量
CharFromPos 获得最接近于指定位图的行和字符的索引
PosFromChar 获得指定字符索引的左上角的坐标
上面的成员函数涵盖了编辑控件在使用中的很多方面,可以满足我们
在很多情况下的绝大部分需要。这里要注意的是,一些CWnd中定义的
成员函数也是很重要的,比如说我们常用CWnd的成员函数
GetWindowText和SetWindowText来获取和设置编辑控件的文本,使用
成员函数GetFont和SetFont来获取和设置编辑控件显示文本时所使用
的字体。
编辑控件可以向父窗口发送的通知消息也要比前面讲述的几种控件
多。这些消息有:
ON_EN_CHANGE: 编辑控件不能按选定需要
ON_EN_ERRSPACE: 分配足够的内存
ON_EN_HSCROLL: 用户单击了编辑控件中的
水平滚动条。父窗口在屏
幕更新前获得此消息
ON_EN_KILLFOCUS: 编辑控件失去输入焦点
ON_EN_MAXTEXT: 当前插入内容超过了编辑
…………………………………………………………Page 352……………………………………………………………
控件中的指定的字符数,
该插入内容已被裁剪。如
果控件没有设置
ES_AUTOHSCROLL样式,那
么在插入的字符超出了编
辑控件的宽度也发送该通
知消息。同样,如果控件
没有指定ES_AUTOVSCROLL
样式,该通知也以插入操
作导致总行数超过编辑控
件的高度时发送。
ON_EN_SETFOCUS: 编辑按钮获得输入焦点
ON_EN_UPDATE: 控件已对文本作了格式
化,但尚未显示文本。通
常可以处理该消息以决定
是否需要对窗口的大小作
改变等。
ON_EN_VSCROLL: 用户单击了编辑控件的垂
直滚动条。父窗口在屏幕
更新前收到该消息。
示例程序EditDemo演示了编辑控件的一般使用方法。按如下步骤创建
该工程:
1。 使用AppWizard创建基于对话框的工程EditDemo。
2。 向工程中添加菜单资源IDR_MAINMENU,该菜单资源包括两个顶层
菜单项 “文件 (&F)”和 “编辑 (&E)”, “文件 (&F)”下包括如图6。41
所示的菜单命令。各菜单命令 (不包括具有Separator样式的菜单项)
的资源ID依次为ID_FILE_NEW和ID_FILE_EXIT。 “编辑 (&E)”菜单下
包括如图6。42所示菜单命令。各菜单命令的资源ID依次为
ID_EDIT_UNDO、ID_EDIT_CUT、ID_EDIT_COPY、ID_EDIT_PASTE、
ID_EDIT_DEL、ID_EDIT_SELECTALL和ID_EDIT_SETFONT。
图6。 41 “文件”菜单下的菜单命令
…………………………………………………………Page 353……………………………………………………………
图6。 42 “编辑”菜单下的菜单命令
3。 按图6。43在应用程序的主对话框上绘制编辑框 (对应于Control工
具箱中的图标为 ),设置其ID为IDC_EDIT,并将其Multiline属性、
Auto VScroll属性和Want return属性设置为