CEdit 样式与消息 解析
编辑框(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 起点缓冲地址
或NULL 终点缓冲地址
或NULL 取得编辑控件中选定内容的范围,返回值中低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
SB_LINEUP
SB_PAGEDOWN
SB_PAGEUP 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
EC_RIGHTMARGIN
EC_USEFONTINFO 边距 设置编辑控件的左、右边距,当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指针
http://blog.csdn.net/bible521125/article/details/22748371
CEdit 样式与消息 解析的更多相关文章
- ONVIF Event消息解析(How to work with gSoap)
Prepare Requirements ONVIF Event gSoap reference ONVIF Specification 问题描述 Event是ONVIF核心规范中一块, 文档解释了如 ...
- XML消息解析_php
初识php——微信消息处理 <?php $test = new weixin(); $test->Message(); class weixin{ public function Mess ...
- 微信推送给服务器的XML消息解析-springmvc 解析xml数据流
微信推送给服务器的XML消息解析: 可以使用request.getInputStream(); 获取输入的消息流:但是需要自己解析流: spring mvc自带解析功能: controller中: @ ...
- Netty 中的消息解析和编解码器
本篇内容主要梳理一下 Netty 中编解码器的逻辑和编解码器在 Netty 整个链路中的位置. 前面我们在分析 ChannelPipeline 的时候说到入站和出站事件的处理都在 pipeline 中 ...
- NDEF消息解析实例[转]
问题:按照NDEF消息格式来解析下列Hex串? D1 02 1F 53 70 91 01 0E 54 02 65 6E 68 65 6C 6C 6F 20 77 6F 72 6C 64 51 ...
- iOS 远程推送消息解析及逻辑处理
关于远程推送的相关配置网上已经有足够多的教程,这里就不复述了.这里讲述当客户端收到推送消息后,应怎样对其进行相应的逻辑处理. 工程的AppDelegate.m文件里提供了如下方法: //当应用程序启动 ...
- POI样式设置详细解析
````````由于看到网上对poi做报告合成的内容不是很全面, ````````自己最近又有新的需求, 作为勉励, 会慢慢补充详细的样式设置, 希望也能帮到各位 设置段落方向 (默认是纵向, 这里可 ...
- Protocol Buffers动态消息解析
http://www.searchtb.com/2012/09/protocol-buffers.html http://www.cnblogs.com/jacksu-tencent/p/344731 ...
- android黑科技系列——解析公众号文章消息和链接文章消息自动打开原理
一.辅助功能方案分析 关于WX的各种功能插件已经非常普遍了,而现在的插件都是依赖于Xposed框架进行的,所以个人觉得WX应该在这方便应对Xposed框架的使用防护,防止插件满天飞的现象,本文来介绍一 ...
随机推荐
- Oracle中的单引号问题
SELECT '<a href="javascript:void(0)" onclick="openWyl('''||a.aac001 FROM ac01 a; S ...
- Python 操作Redis
redis对比monoDB: redis和memcache 是key value非关系型数据库,mysql是关系型数据库,表的结构和保存的内容有严格的要求,关系型数据库无法保存临时数据或不标准的数据, ...
- hadoop安全模式
hadoop安全模式在分布式文件系统启动的时候,开始的时候会有安全模式,当分布式文件系统处于安全模式的情况下,文件系统中的内容不允许修改也不允许删除,直到安全模式结束.安全模式主要是为了系统启动的 ...
- [置顶] 自定义java Annotation快速入门与提高
我们先来看看一个简单的注解类定义 import java.lang.annotation.Documented; import java.lang.annotation.Retention; impo ...
- Oracle中查询各种对象的方法小结
--查看当前库中的所有表select * from all_tables a where a.table_name='INFOCODE_P20081'--查看表结构select * from all_ ...
- Sql Server 循环添加日期--(累加到一个字段中)
SQL语句: ),) '
- 【转】Lua编程规范
Lua编程规范 1. 版本和版权问题 版权和版本的声明位于定义文件的开头(参见示例1-1),主要内容有: (1)版本号 <主版本号><次版本号><修订号> (2)文 ...
- ActivityGroup相关--getLocalActivityManager() 以及intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)用法
ActivityGroup简介 1.ActivityGroup的核心就是继承了该类,能够通过getLocalActivityManager()得到一个LocalActivityManager 如,Lo ...
- mysql 安装过程中的错误:my-template.ini could not be processed and written to XXX\my.ini.Error code-1
安装mysql的过程中,在最后配置mysql时,提示错误:Configuration file tmeplate E:\编程\MySQL\my-template.ini could not be pr ...
- Eclipse用法和技巧二十二:快速调整字体大小
团队代码review的时候,一般都会一堆人围着显示器,或者投影仪.这个时候调整代码字体大小就显得很重要.下面直接说操作方式. 步骤一:Windows -> Preference 步 ...