编辑控件(edit)的事件

Edit控件事件响应及自动换行,刷屏 两种响应: ON_EN_UPDATE :编辑控件将要显示变动的文本。 ON_EN_CHANGE   用户采取的行动可能会改变编辑控件的文本。与EN_UPDATE通知消息不同,该通知是在Windows更新显示之后发送的。  响应顺序,ON_EN_UPDATE 为先,但二者都需要直接对编辑框的操作。而对编辑框内容的间接改变(在程序中赋值+UpdateData)则不会响应。 自动换行 阅读详情

概述:编辑框(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  指针。

 

转载自:https://www.evget.com/article/2007/9/17/7017.html

MFC_4、Button控件与Edit控件的应用 写在前面的话 清明时节雨纷纷。今年的清明天气貌似不错,和两个朋友一起去玩了一天。回来接着把这几天打算写的文章写完。只是写MFC最基本的用法,所以就用了可能用到的控件的一种功能,要知道更深层次的应用,大家可以自行学习。写这些博客意在抛砖引玉,帮助小白入门,解决最基本的界面问题,如果可以取得成就感,那更有坚持下去的动力。 好了,闲话少说,今天在前面的基础上接着来说明应用Edit控件的使用。本节在已... 阅读详情

相关推荐

c++ builder 中实现listview 里面 combobox,edit,datatimerpiker可以编辑

   

huxiaoyong1983的专栏 3344

c++:MFC EDIT控件内容的四种处理方式使用(CEdit控件类型与CString 值联动)

EDIT控件的使用1.UpdateData()函数2.获取控件内容①句柄操作②变量操作 1.UpdateData()函数 //UpdateData(FALSE); //将变量的值,输出到与其关联的EditBox中 //UpdateData(TRUE); //将关联的EditBox值,输出到与对应的变量中 2.获取控件内容 ①句柄操作 CString str_left, str_right; //ways 1:句柄操作 //GetDlgItem(IDC_EDIT1)->Get

weixin_44322778的博客 2178

嵌入式GUI开发实战:emWin下拉列表与编辑框控件深度解析与应用

在嵌入式系统开发中,图形用户界面(GUI)是连接用户与设备的关键桥梁,其核心交互组件如输入控件,直接影响用户体验与开发效率。emWin作为一款广泛应用于嵌入式领域的GUI库,其下拉列表(DROPDOWN)和编辑框(EDIT)控件是实现数据输入与选择的基础构件。理解其底层原理,如动态资源管理、事件通知机制及多模式编辑,对于构建稳定高效的HMI至关重要。这些控件的技术价值在于,它们不仅提供了标准化的用户交互范式,还通过丰富的API支持深度定制,从而适应从工业控制到智能家居等多样化的应用场景。本文聚焦于这两个核心

weixin_29185167的博客 338

MFC IDC_EDIT回车响应

在MFC中,在EDIT编辑框中输入一串数据,按回车响应函数被触发,以执行某些函数。点击EDIT编辑框,右击>类向导>命令>虚函数>找到PreTranslateMessage并双击。此时已重写的虚函数中就会出现PreTranslateMessage,Dlg.cpp中会出现如下代码。在刚刚生成的PreTranslateMessage函数中添加如下消息处理函数,其中m_listbox是界面中listbox的变量。

小叔 1755

嵌入式GUI开发实战:emWin EDIT控件从原理到应用全解析

在嵌入式系统开发中,人机交互界面是连接用户与设备的核心桥梁,而编辑框控件则是实现数据输入与交互的关键组件。其工作原理基于事件驱动与消息通知机制,通过封装底层键盘扫描、字符编码和输入验证逻辑,为开发者提供简洁高效的API接口。这种设计在资源受限的嵌入式环境中具有重要技术价值,能显著提升开发效率并保障系统稳定性。编辑框广泛应用于工业控制、智能家居、医疗设备等场景的参数设置与数据配置。本文聚焦emWin库中的EDIT控件,深入解析其多模式编辑能力,包括文本、十进制、浮点数及二进制等模式,并结合实战案例展示如何构建

congju3179的博客 446

手把手教你用Simulink给C2000配置SCI串口发送数据(附模型与避坑点)

本文详细介绍了如何使用Simulink为C2000系列微控制器配置SCI串口发送数据,包括硬件资源分配、模型搭建、参数设置及调试技巧。通过代码生成和串口通信实践,帮助开发者高效实现嵌入式系统开发,避免常见通信问题。

weixin_30831529的博客 294

14. Windows edit 控件(编辑框控件)

在C语言控制台程序(Console Application)中,可以使用 scanf 函数获取用户的输入,而在Windows程序中使用编辑框控件。 创建编辑框控件 编辑框控件的窗口类名是edit。除了子窗口常用的风格 WS_CHILD、WS_VISIBLE、WS_BORDER 外,edit 控件也有自己的风格,都是以ES开头。 edit 控件常用风格 登录框演示: #include <Wi...

y果子 5444

Android以太网开关流程分析

Android以太网开关流程分析 一、引言   在Android 以太网服务启动流程中我们启动了EthernetService(ES),NetworkManagementService(NMS)等服务,其中ES作为Binder的服务端,向客户端EthernetManger提供了调用接口的引用。因此,应用可以通过EthernetManger来访问以太网的相关接口。本篇文章将从APP调用以太网的使能和关闭的接口流程作为切入点来分析,以太网框架中,上层app是如何将指令传递到底层。图1-1所示为以太网使能和关闭

franc521的博客 6112

win32: 文本编辑框(Edit)控件响应事件

过去几年,关于文本编辑框(Edit)控件的响应事件,我都是在主程序 while(GetMessage(&messages, NULL, 0, 0)) { ... } 捕获。 总感觉这种方式让人感觉不舒服。 今天想给一个 Edit 控件加一下按下【回车】的响应事件,我百度了一下,找到一篇文章:https://blog.youkuaiyun.com/gloria__zhang/article/deta...

weixin_30535565的博客 697

6层高速PCB设计实战:BGA布局与阻抗匹配关键解析

本文深入解析6层高速PCB设计中BGA布局与阻抗匹配的关键技术。通过实战经验分享,详细介绍了六层PCB层叠结构的选择与优化、BGA器件布局技巧、阻抗匹配的实战经验以及高速布线技巧,帮助工程师提升PCB设计水平,确保信号完整性和电源完整性。

weixin_28481133的博客 368

数字化转型是什么?核心又是什么呢?

01到底什么是数字化转型? 这时候你或许要问笔者了,既然你说使用新兴技术不是数字化转型,那使用新的商业模式总该是数字化转型了吧?你比如阿里巴巴,作为我们中国人最熟悉的开展电子商务的公司,它可以说是新的商业模式最大的开创者了:阿里巴巴是世界上最大的零售商,却没有任何一家实体店和任何库存;再比如优步(Uber),我们非常熟悉的一个线上打车平台,它可以算是世界上最大的出租车公司了,但是它不拥有一辆出租车。还有近些年来,我们经常使用的的旅游房屋租赁社区爱彼迎(Airbnb),它可以为消费者提供多样的住宿信息..

weixin_58342023的博客 4043

怎么样捕捉在edit control中按下回车键

写的很好:http://blog.youkuaiyun.com/sanfenlu/article/details/5675672 编辑框对应的消息响应如下,如果这个里面还是没有,那就要自己在消息处理函数PreTranslateMessage里面进行判断了。 EN_CHANGE //编辑框中的文本己更新  EN_ERRSPACE //编辑框内存不足  EN_HSCROLL //用户点击了水平滚动条

xlm289348的专栏 3939

编译原理2024期末复习(面向做题,大题速学)【太原理工大学】

归约-归约”冲突就是在项目集规范族一个状态中两个。

m0_63181421的博客 1万+

MFC列表框控件的动态编辑

在我们进行mfc 编程时,我们需要用到列表框显示各层或各物体的参数设置,同时也希望能编辑其参数。我以前在网上查找,用了CComboListCtrl,这需要3个cpp 和 h 文件,用起来还不容易。 最近看到一个文章https://blog.youkuaiyun.com/qingyang8513/article/details/50986455,这个直接用 listctrl 和 一个Edit 控件,很简单...

曾立文的博客 3302

保姆级教程:用HFSS 2023 R2搞定GPS右旋圆极化微带天线(从建模到优化全流程)

本文提供了一份详细的HFSS 2023 R2教程,指导读者从零开始设计GPS右旋圆极化微带天线。涵盖建模、仿真和优化全流程,特别关注圆极化特性的实现与优化,帮助工程师快速掌握天线设计的关键技术。

weixin_42557830的博客 169

【KITTI数据集中Raw_Data数据标定文件中的参数关系解读】

上一节本人将KITTI Odometry数据集中的参数文件进行了解释。本节主要针对一些做融合slam的人,将Raw_Data数据标定文件中的参数按照自己的理解做如下阐述。其中,所讲之处如有错误,欢迎各位批评指正。

weixin_43389152的博客 1526

VCL组件之编辑控件

VCL组件之编辑控件 Note 以后将用两种方式提及组件,以组件的名称或定义组件的VCL类的名称。可以说“Label组件用于……”或说“TLabel用于……”,这两种方式谈到的是同一组件。 编辑控件(Edit Control) Delphi共有5个编辑控件组件,Edit、Memo、MaskEdit、RichEdit(该控件不是标准Windows控件)和SpinEdit(数字编辑

徘徊在牛A与牛C之间的码农 1363

解析AI人工智能领域AI芯片的散热技术

当你用ChatGPT写代码、用AI生成高清图片时,背后的AI芯片可能正在“发高烧”——全球TOP500超算的平均功耗已突破10兆瓦,单颗GPU的峰值功耗超过700W(相当于3台家用空调同时运行)。本文将聚焦AI芯片的散热技术,覆盖从基础原理到前沿方案的全链条解析,帮助读者理解“散热为什么比算力更重要”。

AIGC应用创新大全的博客 934

鼠标双击事件 MINIUI

onrowdblclick="rowdblclick" 控件方法 function rowdblclick(e) { var data = e.record; edit(data);}设置选中行 转载于:https://www.cnblogs.com/JAVA-BK/p/11512353.html

diexu7415的博客 1745

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

emWin下拉列表与编辑框控件深度解析:从API到实战优化

在嵌入式GUI开发中,窗口控件是构建人机交互界面的核心组件。其原理在于通过预定义的图形元素和事件响应机制,将用户操作转化为程序可处理的数据。掌握控件的底层机制不仅能提升界面稳定性,更能实现资源受限环境下的性能优化。从技术价值看,高效的控件使用可以降低开发复杂度、减少内存占用并增强用户体验。在工业HMI、消费电子等应用场景中,下拉列表和编辑框作为高频使用的输入控件,其正确配置与事件处理直接关系到产品的易用性。本文聚焦emWin图形库中的DROPDOWN和EDIT控件,深入剖析其API设计逻辑、内存管理策略以及

weixin_30820077的博客 262

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

awtk开发实践——学习篇10:edit示例(单行编辑器控件)

说明:   本文章旨在总结备份、方便以后查询,由于是个人总结,如有不对,欢迎指正;另外,内容大部分来自网络、书籍、和各类手册,如若侵权请告知,马上删帖致歉。   QQ 群 号:513683159 【相互学习】 内容来源:   官方的手册(免费获取)Pxx=该手册的对应页码xx   github-awtk 说明   awtk开发实践——学习篇7:创建简单工程(方式二:基于HelloWorld.Xml-Demo工程)   按照上篇创建工程后:     ①将label.c文件替换为edit.c文件。     ②在

weixin_42645653的博客 1053

MFC LIst Control控件键盘输入

创建控件List Control,并创建变量; 创建双击List Control 控件事件: int m_Row; int m_Col; void PageTest::OnNMDblclkList1Log(NMHDR *pNMHDR, LRESULT *pResult) { LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR); // TODO: 在此添加控件通知处理程序代码

qq_47999510的博客 1529

MFC listCtrl实现部分编辑

双击listCtrl事件处理,利用edit控件实现编辑。edit控件事件处理,listctrl保存。

weixin_43803955的博客 698

***************我动态创建的EDIT,怎么给他加 OnChange事件

***************我动态创建的EDIT,怎么给他加 OnChange事件 Delphi / Windows SDK/APIhttp://www.delphi2007.net/DelphiDB/html/delphi_20061216164404267.html 我动态创建的EDIT,怎么给他加 OnChange事件 写个事件付值给它 procedure E...

aibi9196的博客 233
上一篇: 旋转数组的二分查找
下一篇: C++设计模式——简单工厂模式
CoderAldrich
博客等级 码龄12年 431粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值