CEdit控件[转]
1、
CButton、CEdit等从CWnd继承了重要的功能:
使用CWnd::SetWindowText和CWnd::GetWindowText可以设置和获得窗口或控件上的文本。
CWnd::SetFont可以设置窗口或控件上的文本字体。
CWnd::EnableWindow()禁止、允许窗口或控件接受鼠标和键盘的输入,即禁止或允许用户的访问。
如果一个CEdit编辑框控件设置了禁止接收输入,那么当其恢复的时候,还需调用SetFocus()重新设置其为焦点。
若在对话框的OnInitDialog()中设置焦点到控件上,OnInitDialog需返回FALSE。
2、
CEdit::Create()用来初始化编辑控件.
virtual BOOL Create(
DWORD dwStyle, //控件风格
const RECT& rect, //控件区域
CWnd* pParentWnd, //父窗口
UINT nID //ID
);
其中控件风格为以下值的“或”组合:
ES_AUTOHSCROLL:当输入文字超出显示横向范围时自动滚动。
ES_AUTOVSCROLL:当输入文字超出显示竖向范围时自动滚动。
ES_CENTER:文本居中对齐
ES_LEFT:文本左对齐
ES_RIGHT:文本右对齐
ES_LOWERCASE:字符小写显示
ES_UPPERCASE:字符大写显示
ES_MULTILINE:允许多行输入(缺省是单行的),。为了让编辑框控件接受换行符,必须设置该控件支持多行输入这一属性。如果指定了ES_AUTOVSCROLL风格,编辑控件将显示尽可能多的文本,并且当用户按下
ENTER键时会自动地垂直滚动文本。如果没有指定ES_AUTOVSCROLL风格,则编辑控件将显示尽可能多的行,如果在按下ENTER键却没有更多
的行要显示的话,就发出蜂鸣声。如果指定了ES_AUTOHSCROLL风格,当光标到达控件的右边时,多行编辑控件会自动地水平滚动文本。如
果要开始一个新行,用户必须按下ENTER键。如果没有指定ES_AUTOHSCROLL风格,控件会在有必要时自动将单词折合到下一行的开始。如
果按下ENTER键,则另起一行。折回单词的位置是由窗口的大小决定的。如果窗口的大小发生改变,折回单词的位置也会反生改变,将会
重新显示文本。多行编辑控件可以有滚动条。具有滚动条的编辑控件会处理它自己的滚动条消息。没有滚动条的编辑控件按照前面描述的
方式进行滚动,并且处理父窗口发出的任何滚动消息
ES_NOHIDESEL:通常,当编辑控件获得输入焦点时,它会显示选择区域, 当失去输入焦点时,它会隐藏选择区域。如果指定了
ES_NOHIDESEL风格则去掉了这个缺省的动作。
ES_NUMBER:只允许输入数字
ES_PASSWORD:在编辑控件中输入字符时,将所有的字符显示为星号(*)。应用程序可以通过SetPasswordChar成员函数来改变显示的字
符。
ES_READONLY:编辑框为只读。
ES_WANTRETURN:当用户在多行编辑控件中输入文本时,如果按下了ENTER键,则插入回车换行符。这个风格对单行编辑控件不起作用。
eg:
BOOL CtestDlg::OnInitDialog()
{
...... // TODO: 在此添加额外的初始化代码
static CEdit MyEdit;//定义编辑框控件
MyEdit.Create(ES_LEFT|WS_VISIBLE, CRect(,,,),this, ); CFont fontEdit;
fontEdit.CREATE_FONT(, _T("宋体"));
MyEdit.SetFont(&fontEdit);//设置字体
MyEdit.SetFocus();//设置焦点
MyEdit.SetPasswordChar(_T('*'));//作为密码输入控件使用 return FALSE; // 除非将焦点设置到控件,否则返回 TRUE
}
3、
普通操作:
SetReadOnly 设置只读
GetLineCount 获得编辑控件中的行数
SetSel 在编辑控件中选中文本,SetSel(-1)将光标移动到文本末尾,SetSel(0)将光标移动到文本开头
SetMargins 为CEdit设置左边和右边的空白边界
GetMargins 获得为CEdit设置左边和右边的空白边界
SetLimitText 设置CEdit能够容纳的文本的最大量
GetLimitText 获得CEdit能够容纳的文本的最大量
PosFromChar 获得指定字符索引的左上角的坐标
CharFromPos 获得最靠近指定位置的字符的行和字符索引
GetLine 从编辑控件中获得一行文本
GetSel 从编辑控件中获得所选中文本的位置
GetPasswordChar 获得当用户输入文本时在编辑控件中显示的口令
SetPasswordChar 设置或清除当用户输入文本时在编辑控件中显示的口令
LineLength 获得编辑控件中的行的长度
LineScroll 在多行编辑控件中滚动文本
ReplaceSel 用指定文本替换编辑控件中当前被选中的文本
GetRect 为编辑控件获取格式化的矩形
SetRect 设置多行编辑控件的带格式的矩形,并更新该控件
SetRectNP 设置多行编辑控件的带格式的矩形,而不必重新绘制
GetFirstVisibleLeLine 获得在编辑控件中最顶部的可视的行
FmtLines 设置在多行编辑控件中的软回车打开或关闭
LimitText 用户在输入文本时的文本长度限制
LineFromChar 获得包含指定字符索引的行的数目
LineIndex 获得在多行编辑控件中的某行的字符索引
GetModify 决定编辑控件的内容是否被修改
SetModify 为编辑控件设置或清除修改标记
GetHandle 获得为当前多行编辑控件分配的内存的句柄
SetHandle 设置为多行编辑控件使用的本地内存的句柄
EmptyUndoBuffer 重新设置(清除)编辑控件的撤销标记
SetTabStops设置多行编辑控件的制表键停顿位
剪贴板操作:
CanUndo 决定一个编辑控件操作是否能够被撤销
Undo 撤销上一次的编辑控件操作
Clear 删除(清除)编辑控件中当前选中的文本
Copy 将编辑控件中的当前选中文本以CF_TEXT格式拷贝到剪贴板中
Cut 删除编辑控件中当前选中的文本,并将删除的文本以CF_TEXT格式拷贝到剪贴板中
Paste 在当前光标位置插入剪贴板内的文本。只有在剪贴板数据为CF_TEXT格式时才进行插入
4、
通告消息事件:
ON_EN_UPDATE 将要显示变动的文本。在控件对文本格式化之后但在显示文本之前发送消息,以便在必要时改变窗口尺寸。
ON_EN_CHANGE 用户采取的行动可能会改变编辑控件的文本。与EN_UPDATE通知消息不同,该通知是在Windows更新显示之后发送的。
ON_EN_SETFOCUS 获得焦点。
ON_EN_KILLFOCUS 失去输入焦点。
ON_EN_HSCROLL 要输入的字符会超过编辑控件的宽度时,发送消息。
ON_EN_VSCROLL 要输入的字符会超过编辑控件的高度时,发送消息。
ON_EN_MAXTEXT 当前输入超过了为编辑控件指定的数目,并作截尾处理。
ON_EN_HSCROLL 用户单击了编辑控件中的水平滚动条,父窗口在屏幕更新之前被通知。
ON_EN_VSCROLL 用户单击了编辑控件中的垂直滚动条,父窗口在屏幕更新之前被通知。
ON_EN_ERRSPACE 不能为特定请求分配足够的空间。
CEdit控件[转]的更多相关文章
- 创建透明CEdit控件
1.在资源编辑器中将Edit控件的Border设为none(当然也可以在代码中修改窗口样式) 2.在重载CEdit的类中响应MSG_OCM_CTLCOLOREDIT消息,在处理函数中将背景模式设为透明 ...
- 关于CEdit控件的透明(重绘)
摘自:http://www.jcwcn.com/html/VC/10_19_51_12.htm 做一个透明的Edit控件的主要问题是字符的输出,在Edit里输出的刷新有几个时机,一个是在接收到键盘或鼠 ...
- VC++中CEdit控件实现回车换行
1.通过回车Enter换行: 这里要有两个设置 <1>.将控件的属性设置为Mutilines->true; <2>.将控件的另一个属性设置为Want return-> ...
- 在编辑框(CEdit)控件上追加内容
版权声明:本文为博主原创文章,未经博主允许不得转载. // MFC 版本 CEdit* pEdit = GetDlgItem(IDC_EDIT1); ASSERT(pEdit && p ...
- MFC CEdit控件 自动换行
属性设置: Auto HScroll : False Auto VScroll : True Multiline : Ture Want Return : Ture 亲自测试,值得信赖!
- MFC学习 MFCActiveX控件
例子包含 1. 重绘activex控件显示区域 在activex的ctrl类中ondraw中实现 2.添加修改activex控件属性(前景色, 背景色, 自定义属性),, 只要在类视图中展开libra ...
- mfc控件与其对应的对象的关联方法
对话框的控件与其对应类的对象相关联:(两种方法) (1) 通过CWnd::DoDataExchange函数进行关联: 用VC++6.0的MFC ClassWizard中的Member Var ...
- MFC控件(9):network address control
这个控件的名字倒是取的不错,一看就知道是让你输入IP地址或host name的. 不过一打开看到那控件的样子就完全是个Edit control.不过该控件对应的类也确实是继承自类CEdit. 先拖个控 ...
- VC中edit控件使用
SetSel(start,end)作用:定制EDIT的所选择内容.间接地可以用于定位光标位置. 使用例子:EXP1:设置光标CEdit* pEdit=(CEdit*)GetDlgItem(I ...
随机推荐
- 【python中调用shell命令使用PIPE】使用PIPE作为stdout出现假卡死的情况——将stdout重定向为输出到临时文件
在Python中,调用:subprocess.Popen(cmd, stdout = PIPE, stderr = PIPE, shell= true)的时候,如果调用的shell命令本身在执行之后会 ...
- 上海大都会赛 I Matrix Game(最大流)
At the start of the matrix game, we have an N x M matrix. Each grid has some balls.The grid in (i,j) ...
- Python: PySide(PyQt)QMessageBox按钮显示中文
习惯了Delphi.c#调用系统MessageBox本地化显示,待用PySide调用时,Qt原生提示对话框,默认以英文显示. 如何本地化呢? 参考些资料,加以摸索,实现所需效果.并可根据此思路,设计自 ...
- git--(3)分支 合并
git branch test //新建分支 git branch //列出分支 git branch -r //列出远程分支 git branch -m | -M oldbranch newbran ...
- Angular5学习札记
1.使用cnpm安装jQuery和bootstrap后,页面没有加载的问题 -使用cnpm安装的路径和使用npm安装路径不一样,解决如下: 把css路径改成"../node_modules/ ...
- PHP的网站主要攻击方式有哪些?
1.命令注入(Command Injection) 2.eval注入(Eval Injection) 3.客户端脚本攻击(Script Insertion) 4.跨网站脚本攻击(Cross Site ...
- c#devexpress GridContorl datasource为 类字段的实现方式 非datatable方式以及其他操作总结
1:定义model class A { public string a{get;set;} public string b{get;set;} } 2:赋值: A aobj=new A(); aobj ...
- Linux_(1)基本命令(上)
一.基本命令1.我是谁 whoami --who am i2.谁在线 who w3.显示当前路径(定位) pwd4.切换目录 cd ~返回主目录 cd ..返回上一级目录5.查看某个目录中的子目录和文 ...
- spring boot (二):使用fastJson解析json数据
如果我们想在spring boot中使用第三方的json解析框架: 1)我们需要在pom.xml文件中引入第三方包的依赖; 2)实现方法: 方法1 需要在启动类中继承WebMvcConfigurerA ...
- 如何在 Laravel 中连接多个 MySQL 数据库
第一步.定义数据库链接 config/database.php <?php return [ 'default' => 'mysql', 'connections' => [ # 主 ...