编辑框
编辑框的主要作用是让用户输入文本,例如要求用户在编辑框中输入密码的文本。
.基础知识
编辑框里的文本可以是单行,也可以是多行,后者的风格取值为 ES_MULTILINE。一般对于多行文本编辑框还需设置 ES_AUTOVSCROLL,这样用户可以输入多行文本,并自动滚动。在默认的状况下,编辑框是没有边框的,如果需要边框,设置WS_BORDER即可。另外还可规定编辑框里的文本是否只读,风格属性设置为ES_READONLY。当需要建立密码编辑框时,只要设置ES_PASSWORD风格属性即可。
编辑框的全部风格如表所示。
风格取值 描述
ES_AUTOHSCROLL 自动增加水平滚动条
ES_AUTOVSCROLL 当按下Enter键后,自动切换到下一页
ES_CENTER 文本居中
ES_LEFT 文本左对齐
ES_LOWERCASE 把所有的字母都小写
ES_MULTILINE 建立多行文本编辑框
ES_NOHIDESEL 当失去输入焦点时,选中的文本将隐藏
ES_OEMCONVERT 把输入的文本从ANSI码转换成OEM码,然后又转换成ANSI码,这样的目的是保证函数AnsiToOem的正确调用
ES_PASSWORD 控制编辑框作为密码文本框的字符形式
ES_RIGHT 文本右对齐
ES_UPPERCASE 将所有的字符转换成大写字符
ES_READONLY 文本只读
Windows系统把编辑框的操作以 WM_COMMAND的形式发送给父窗口。消息的有关信息仍然包含在参数wParam和IParam中。wParam的低位字节包含编辑框的标识符,高位字节包含通知消息的类型,lParam包含编辑框的句柄。编辑框的通知消息如表所示。
消息取值 作用
EM_CANUNDO 检验编辑框是否可以执行取消操作
EM_GETHANDLE 得到内存区文本的句柄,不适用于单行文本编辑框
EM_GETLIMITTEXT 得到文本限制的信息
EM_GETLINE 把指定行文本拷贝到字符串指针中
EM_GETLINECOUNT 得到编辑框的行的数目
EM_GETMARGINS 得到编辑框的边框宽度
EM_GETMODIFY 确认编辑框是否被修改
EM_GETPASSWORDCHAR 得到密码编辑框设置的密码字符
EM_GETRECT 得到文本矩形区域
EM_GETSEL 得到选中的文本
EM_GETTHUMB 得到编辑框滚动条的位置
EM_GETWORDBREAKPROC 得到折行函数的地址
EM_LIMITTEXT 设置用户能够输入的字符数目
EM_LINEINDEX 得到字符所在的行序号
EM_LINELENGTH 得到行的长度
EM_LINESCROLL 使文本滚动
EM_SCROLL 在多行编辑框中垂直滚动文本
EM_SCROLLCARET 把插入符移到编辑框的可见区
EM_SETHANDLE 给文本内存缓冲区设置句柄
EM_SETPASSWORDCHAR 设置密码字符
EM_SETTABSTOPS 在多行编辑框里设置制表符停止位置,但单行编辑框没有该消息
EM_UNDO 取消上一次操作
EN_CHANGE 发送编辑框改变的消息
EN_ERRSPACE 当文本内存不够时,发送该消息
EN_KILLFOCUS 当编辑框失去输入焦点时发送该消息
EN_MAXTEXT 当输入的文本超过最大允许数目时发送该消息
EN_SETFOCUS 设置输入焦点
EN_UPDATE 当编辑框被改变时发送该消息,与EN CHANGE不同,它在编辑框重画前发送
WM_COPY 拷贝消息
WM_CTLCOLOREDIT 只读编辑框重画时向父窗口发送该消息
WM_CUT 剪切消息
WM_PASTE 粘贴消息
WM_UNDO 取消上一次操作消息