CEdit从CWnd继承了重要的功能,要在CEdit对象中设置或获取文本,使用CWnd成员函数SetWindowText和GetWindowText,可以设置和得到编辑控件的全部内容,即使它是一个多行控件。如果编辑控件是多行的,使用CEdit成员函数GetLine,SetSel,GetSel和ReplaceSel来获取和写入控件的部分文本。
为了让编辑框控件接受换行符,必须设置该控件支持多行输入这一属性。
要注意的地方:若在对话框的OnInitDialog()中设置焦点到编辑框控件上,OnInitDialog需返回FALSE。
eg:
BOOL CtestDlg::OnInitDialog()
{
......
// TODO: 在此添加额外的初始化代码
static CEdit MyEdit;//定义编辑框控件
MyEdit.Create(ES_LEFT|WS_VISIBLE, CRect(0,100,200,120),this, 123);
CFont fontEdit;
fontEdit.CREATE_FONT(20, _T("宋体"));
MyEdit.SetFont(&fontEdit);//设置编辑框中字体
MyEdit.SetFocus();//设置焦点到编辑框
MyEdit.SetPasswordChar(_T('*'));//作为密码输入控件使用
<strong>return FALSE; // 除非将焦点设置到控件,否则返回 TRUE</strong>
}
CEdit::Create()用来创建编辑控件,并将其与Cedit对象关联。
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_OEMCONVERT:输入到编辑控件的文本将被从ANSI字符集转换到OEM字符集,然后转换回ANSI字符集。这使得在应用程序调用Windows的AnsiToOem函数以把编辑控件中的ANSI字符串转换为OEM字符时,能够进行正确的字符转换。这个风格对包含文件名的编辑控件最有用。
ES_PASSWORD:在编辑控件中输入字符时,将所有的字符显示为星号(*)。应用程序可以通过SetPasswordChar成员函数来改变显示的字符。
ES_READONLY:编辑框为只读。
ES_WANTRETURN:当用户在多行编辑控件中输入文本时,如果按下了ENTER键,则插入回车换行符。这个风格对单行编辑控件不起作用。
CEdit成员:
构造函数
属性
GetSel 从编辑控件中获得所选中文本的位置
操作
SetTabStops设置多行编辑控件的制表键停顿位
剪贴板操作
转载出处:http://baike.baidu.com/link?url=3CxMnrlXUfzd9pVMQpk0_YMy50-DZRlfg8k74-gqMmmgOshHngR-p98XBmgNIJg5QzMjlXcQb711WuvV_hf70a
http://blog.sina.com.cn/s/blog_4520b87a0100c6pb.html