马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 无符号整形 于 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又有什么成员函数呢?这就告诉你
注意: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[128]; //缓冲区
::GetWindowText(m_edit.m_hWnd, Buffer, 128); //获取缓冲区
MessageBox(Buffer, TEXT("您输入的内容"), MB_OK); //弹出对话框
3.效果:
如果你想让用户输入一组指定的数据,那么Edit Control貌似不太适合,好像ListBox更加适合
下一篇,我们将学习List Box控件! |