翻译|其它|编辑:郝浩|2007-09-17 11:43:40.000|阅读 2113 次
概述:
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
编辑框(Edit)控件实际上是一个简易的文本编辑器,用户可以在编辑框中输入可添加或插入文本。还有复制、粘贴、剪切、删除等编辑功能。
应用程序用 CreateWindowEx 创建编辑框控件时,可根据控件的用途在下表中选择部份常数来设定其风格属性(style)。
常数 |
说明 |
ES_MULTILINE |
多行文本,指定编辑控件可以多行文本编辑,用户每按一次 Enter,在当前光标次输入一个回车换行符(0Dh,0Ah),文本增加一行。 |
ES_LEFT |
文本显示居左。 |
ES_CENTER |
文本显示居中。 |
ES_RIGHT |
文本显示居右。 |
ES_LOWERCASE |
把用户输入的字母统统转换成小写字母。 |
ES_UPPERCASE |
把用户输入的字母统统转换成大写字母。 |
ES_OEMCONVERT |
使编辑框中的正文可以在 ANSI 字符集和 OEM 字符集之间相互转换。这在编辑框中包含文件名时是很有用的。 |
ES_AUTOHSCROLL |
当用户在行尾键入一个字符时,正文将自动向右滚动10个字符,当用户按回车键时,正文总是滚向左边。 |
ES_AUTOVSCROLL |
当用户在最后一个可见行按回车键时,正文向上滚动一页。 |
ES_NUMBER |
只接收数码输入,其它字符输入一律无效。 |
ES_NOHIDESEL |
当编辑框失去输入焦点,正文中的选择保持不变,缺省时正文中的选择将失效。 |
ES_READONLY |
将编辑框设置成只读的。 |
ES_PASSWORD |
使所有键入的字符都用“*”来显示。 |
ES_WANTRETURN |
使多行编辑器接收回车键输入并换行。如果不指定该风格,按回车键会选择缺省的命令按钮,这往往会导致对话框的关闭。 |
当用户在编辑控件上进行各种操作时,其父窗口将收到 WM_COMMAND 通知消息,同时 wParam 的低16位带控件的 ID。lParam 带控件句柄(hWnd),wParam 的高16位带有如下表的消息代码。
消息代码 |
用户操作 |
EN_CHANGE |
编辑框的内容被用户改变了。与 EN_UPDATE 不同,该消息是在编辑框显示的正文被刷新后才发出的。 |
EN_ERRSPACE |
编辑框控件无法申请足够的动态内存来满足需要。 |
EN_HSCROLL |
用户在水平滚动条上单击鼠标。 |
EN_KILLFOCUS |
编辑框失去输入焦点。 |
EN_MAXTEXT |
输入的字符超过了规定的最大字符数。在没有 ES_AUTOHSCROLL 或ES_AUTOVSCROLL 的编辑框中,当正文超出了编辑框的边框时也会发出该消息。 |
EN_SETFOCUS |
编辑框获得输入焦点。 |
EN_UPDATE |
在编辑框准备显示改变了的正文时发送该消息。 |
EN_VSCROLL |
用户在垂直滚动条上单击鼠标。 |
应用程序可以通过调用 SendMessage 向控件发送如下消息来设定和查询控件各种参数。
uMsg |
wParam |
lParam |
说明 |
EM_UNDO |
0 |
0 |
撤消前一次在控件的编辑操作,当重复发送本消息,控件将在撤消和恢复中来回切换。 |
EM_CANUNDO |
0 |
0 |
检测控件撤消缓冲区是否为空,通常控件把最后一次在控件的编辑操作保存在一个撤消缓冲区,如果缓冲区非空则返回 TRUE 表示上次操作可以撤消,否则返回 FALSE,应用程序可以利用该返回值来禁止或允许菜单或工具条的“撤消”项。 |
EM_EMPTYUNDOBUFFER |
0 |
0 |
清除控件的撤消缓冲区,使其不能撤消前一次编辑操作。 |
EM_REPLACESEL |
TRUE或FALSE |
替换文本指针 |
用指定文本替换编辑控件中的当前选定内容,如果 wParam 为 TRUE,则本次操作允许撤消,FALSE 禁止撤消。 |
EM_SETSEL |
起点 |
终点 |
设置编辑控件中文本选定内容范围,该范围被高亮度显示,用于为复制、替换、粘贴、剪切、删除等编辑功能指定范围。使用本功能,键盘光标将被移至指定的终点后面,通常使用指定相同起点和终点来移动键盘光标而不选定范围。当指定的起点等于0和终点等于-1时,全文全部被选中,此法常用在清空编辑控件。当指定的起点等于-2和终点等于-1时,全文均不选,键盘光标移至文本未端,此法常用在文本未端追加内容。注意:当控件没有输入焦点时,本操作将会失败,一般在执行本操作前都应调用 SetFocus 先取得输入焦点。 |
EM_GETSEL |
起点缓冲地址 |
终点缓冲地址 |
取得编辑控件中选定内容的范围,返回值中低16位为起点与高16位为终点,如果 wParam 和 lParam 中指定了地址,则会在该地址填入相应值(dword)。本操作也常用来求取键盘光标位置。 |
EM_CHARFROMPOS |
0 |
位置 |
取得指定位置处的字符相对于文本头部的偏移,使用本操作应先在 lParam 的高16位指定行号,低16位指定列号,行列是按编辑控件的客户区左上角为原点(0,0)计算的。如果指定的位置超出控件客户区则返回-1 |
EM_FMTLINES |
TRUE或FALSE |
0 |
决定是否在取回的文本宇串中包含软回车字符 |
EM_GETFIRSTVISIBLELINE |
0 |
0 |
取得编辑控件中显示的第一行 |
EM_GETHANDLE |
0 |
0 |
取得编辑控件文本缓冲区。 |
EM_GETLIMITTEXT |
0 |
0 |
获取一个编辑控件中文本的最大长度 |
EM_GETLINE |
行号 |
缓冲地址 |
从编辑控件取回一行的内容,缓冲区第一个字(word)必须先填写缓冲区的长度, |
EM_GETLINECOUNT |
0 |
0 |
取得一个编辑控件的总行数 |
EM_GETMARGINS |
0 |
0 |
获取编辑控件的左、右边距,返回值低16位为左边距,高16位为右边距 |
EM_GETMODIFY |
0 |
0 |
取编辑控件的修改标志,返回 TRUE 则控件文本已被修改,返回 FALSE 则未变。此值可以来决定是否提示用户存盘。 |
EM_GETPASSWORDCHAR |
0 |
0 |
取得编辑控件用来显示密码的字符,返回 NULL 表示没有字符。 |
EM_GETRECT |
0 |
RECT结构地址 |
获取一个编辑控件的格式化矩形 |
EM_GETTHUMB |
0 |
0 |
取得多行文本编辑控件的滚动框的当前位置。 |
EM_GETWORDBREAKPROC |
0 |
0 |
取得整字换行回调函数EditWordBreakProc 指针。 |
EM_LIMITTEXT |
最大值 |
0 |
限制编辑中文本的最大长度 |
EM_LINEFROMCHAR |
字符偏移 |
0 |
取得指定的字符偏移处的行号。 |
EM_LINEINDEX |
行号 |
0 |
取得指定行第一个字符偏移 |
EM_LINELENGTH |
字符偏移 |
0 |
取得指定字符偏移处对应的一行长度字符数。 |
EM_LINESCROLL |
列字符 |
行数 |
滚动编辑控件 |
EM_POSFROMCHAR |
POINT结构地址 |
字符偏移 |
取得指定字符偏移的显示位置行列号,行列是按编辑控件的客户区左上角为原点(0,0)计算的。字符偏移是相对于文本头部的偏移。 |
EM_SCROLL |
SB_LINEDOWN |
0 |
编辑框显示文本垂直滚动。滚动方向:SB_LINEDOWN 向下滚动一行,SB_LINEUP 向上滚动一行,SB_PAGEDOWN 向下滚动一页,SB_PAGEUP 向上滚动一页。 |
EM_SCROLLCARET |
0 |
0 |
把键盘光标移至可见范围。 |
EM_SETHANDLE |
缓冲区指针 |
0 |
为编辑控件指定新的文本缓冲区。此操作仅适用对话框创建带 DS_LOCALEDIT 风格的控件。 |
EM_SETLIMITTEXT |
长度(字节) |
0 |
限制编辑控件中的文本缓冲区最大长度。 |
EM_SETMARGINS |
EC_LEFTMARGIN |
边距 |
设置编辑控件的左、右边距,当wParam 含 EC_LEFTMARGIN 时在 lParam 的低16位指定左边距点数,当 wParam 含EC_RIGHTMARGIN 时在lParam 的高16位指定右边距点数。当指定 wParam 为 EC_USEFONTINFO 时,则用当前字体的字符"A"的宽度指定右边距和字符"C"的宽度指定左边距 lParam 被忽略。 |
EM_SETMODIFY |
TRUE或FALSE |
0 |
用于设置或清除一个编辑控件的修改标志 |
EM_SETPASSWORDCHAR |
字符 |
0 |
指定控件用来显示密码字符,缺省为“*”。当 wParam 为0时,本操作将清除控件的 ES_PASSWORD 风格,并按实际字符显示。 |
EM_SETREADONLY |
TRUE或FALSE |
0 |
决定是否将编辑控件设为只读,同时决定控件的 ES_READONLY 风格 |
EM_SETRECT |
0 |
RECT结构地址 |
为一个编辑控件设置格式化矩形 |
EM_SETRECTNP |
0 |
RECT结构地址 |
与 EM_SETRECT 类似,只是控件此时不会重画 |
EM_SETTABSTOPS |
制表站数 |
站距表地址 |
设置编辑控件中的制表站间距,当制表站数为0时 lParam 被忽略,所有制表站距均为32个对话框单位,当制表站数不为0时 lParam 指向一个由32位(dword)组成的站距表,以对话框单位为宽度计算单位。 |
EM_SETWORDBREAK |
0 |
0 |
本操作现已不支持,请使用EM_SETWORDBREAKPROC。 |
EM_SETWORDBREAKPROC |
0 |
函数入口地址 |
设置整字换行回调函数EditWordBreakProc 指针。 |
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com
文章转载自:csdn