【MFC入门文字教程】8-编辑控件(CEdit)以及各种用法
本帖最后由 无符号整形 于 2016-11-13 13:34 编辑MSDN 官方文档
想像一下这种情形:你需要让用户输入一些数据,那么,该用哪种控件呢?当然是编辑框控件(Edit Control),如果对一个编辑框控件添加变量,那么变量就是 CEdit 类型的,如图。
让我们稍后再介绍成员函数们,让我们认识认识编辑控件的一些属性。
属性 作用
Acccept Files 控件将接收拖放文件
Multline 如果控件文本对控件宽度而言太长,则将文本折为多行
No Hide Selection 指定编辑控件将总是显示某选定内容,即使它没有焦点
OEM Convert 将输入到编辑框中的文本转换为 OEM 字符集
Password 对键入到编辑控件的每个字符显示星号(*)
Read Only 防止用户在编辑控件中键入或编辑文本
Want Return 指定编辑控件要接收Return键(如果不指定这个的话在编辑框里面按回车是会退出的)
那么,CEdit又有什么成员函数呢?{:10_264:}这就告诉你
注意:CEdit 继承于 CWnd
名称 作用
CEdit::CanUndo 确定是否可以撤消编辑操作
CEdit::CharFromPos 检索最接近指定位置的字符的行和字符索引
CEdit::Clear 删除编辑控件中的当前选择的字符(如果有)
CEdit::Copy 将编辑控件中的当前选择的字符(如果有)以CF_TEXT格式复制到剪贴板
CEdit::Create 创建Windows编辑控件并将其附加到CEdit对象
CEdit::Cut 剪切编辑控件中的当前选择的字符(如果有),并以CF_TEXT格式将文本剪切到剪贴板
CEdit::EmptyUndoBuffer 清除编辑控件的撤销缓冲区
CEdit::FmtLines 设置在多行编辑控件中的软回车打开或关闭
CEdit::GetCueBanner 当控件为空且没有焦点时,检索在编辑控件中显示的文本提示或提示的文本
CEdit::GetFirstVisibleLine 确定在编辑控件中最顶部的可视的行
CEdit::GetHandle 检索当前分配给多行编辑控件的内存句柄
CEdit::GetHighlight 获取当前编辑控件中突出显示的文本范围的开始和结束字符的索引
CEdit::GetLimitText 获取此CEdit控件可以包含的最大文本数量。
CEdit::GetLine 从编辑控件中检索一行文本
CEdit::GetLineCount 检索多行编辑控件中的行数
CEdit::GetMargins 获取此CEdit控件对象的左右边距
CEdit::GetModify 确定是否已修改编辑控件的内容
CEdit::GetPasswordChar 当用户输入文本时,检索编辑控件中显示的密码字符
CEdit::GetRect 获取编辑控件的格式化矩形
CEdit::GetSel 在编辑控件中获取当前选择的第一个字符和最后一个字符的位置
CEdit::HideBalloonTip 隐藏与当前编辑控件关联的任何Tip提示
CEdit::LimitText 限制用户可以输入到编辑控件中的文本的长度
CEdit::LineFromChar 检索包含指定字符索引的行的行号
CEdit::LineIndex 检索多行编辑控件中的某行的字符索引
CEdit::LineLength 检索编辑控件中的某行的长度
CEdit::LineScroll 滚动多行编辑控件中的文本
CEdit::Paste 将剪贴板中的数据插入到当前编辑控件的光标位置中,仅当剪贴板包含CF_TEXT格式的数据时才插入数据
CEdit::PosFromChar 检索指定字符索引左上角的坐标。
CEdit::ReplaceSel 将编辑控件中的当前选择的字符串替换为指定的文本
CEdit::SetCueBanner 当控件为空且没有焦点时,设置在编辑控件中显示的文本提示或提示的文本
CEdit::SetHandle 将多行编辑控件使用的本地内存的句柄设置为指定的句柄
CEdit::SetHighlight 突出显示当前编辑控件中显示的一系列文本
CEdit::SetLimitText 设置此CEdit控件可以包含的文本的最大数量
CEdit::SetMargins 设置此CEdit的左右边距
CEdit::SetModify 设置或清除编辑控件的修改标志
CEdit::SetPasswordChar 当用户输入文本时,设置或删除编辑控件中显示的密码字符
CEdit::SetReadOnly 设置编辑控件的只读状态
CEdit::SetRect 设置多行编辑控件的格式矩形,并更新控件
CEdit::SetRectNP 设置多行编辑控件的格式化矩形而不重绘窗口
CEdit::SetSel 设置编辑控件可以选择的字符范围
CEdit::SetTabStops 在多行编辑控件中设置制表符
CEdit::ShowBalloonTip 显示与当前编辑控件相关联的气球提示
CEdit::Undo 撤销上次编辑操作
讲了那么多,如何获取输入的字符串呢?
有两种方法:
1.
::GetWindowText(CEdit变量.m_hWnd,缓冲区,最大字符串长度);
这种是通过调用Windows SDK的 GetWindowText 获取输入的字符串,当然 GetWindowTextA 也可以。
2.
CEdit变量.GetWindowText(CString字符串)
这种是通过成员函数获取 CString 字符串。
如何设置输入的字符串呢?
也有两种方法:
1.
::SetWindowText(CEdit变量.m_hWnd,缓冲区);
这种是通过调用Windows SDK的 SetWindowText 设置输入的字符串,当然 SetWindowTextA也可以。
2.
CEdit变量.SetWindowText(字符串)
这种是通过成员函数获取CString字符串。
实践时间
目标:当用户按下按钮时,弹出一个对话框,告诉用户输入了什么。
1.拖一个按钮,一个编辑框,给编辑框添加一个成员变量,建议把名字设为 m_edit,给按钮添加事件处理程序。
2.写代码,在事件处理程序中添加如下内容:
WCHAR Buffer; //缓冲区
::GetWindowText(m_edit.m_hWnd, Buffer, 128);//获取缓冲区
MessageBox(Buffer, TEXT("您输入的内容"), MB_OK);//弹出对话框
3.效果:
如果你想让用户输入一组指定的数据,那么Edit Control貌似不太适合,好像ListBox更加适合
下一篇,我们将学习List Box控件! 挺好的。继续努力
页:
[1]