MFC之编辑框
初始操作
新建MFC应⽤程序,项⽬名为EditCtrl,基于对话框。
删除原有控件在右侧⼯具箱中到Edit Control。放置到窗⼝中。如图:
现在的编辑框只可以在⼀⾏输⼊,⽆法换⾏,同时如果按下enter换⾏会直接退出程序。
多⾏输⼊&⽂本向上滚动&滚动条
1.多⾏输⼊
右键属性,到Multiline,改成True。以及Want Return也改为True。这时候就可以多⾏输⼊了。
但⼀个问题,如图,⼀⾏可以⼀直敲很多字符,但⾏数⼀旦占满编辑框就⽆法再增加⾏了。
2.⽂本向上滚动
右键属性,到Auto VScroll,改成True。这样就可以输⼊很多⾏了,由于图⽚不直观,不放图了。
现在⼀个问题时没有滚动条,⾏数太多⽆法很快返回。
3.滚动条
同样在右键属性中,到Horizontal Scroll以及Vertical Scroll,都改为True。
⼀个⽰例
按住ctrl复制出⼀个同样的编辑框,并从⼯具箱中添加两个按钮。
实现功能是点击复制按钮,上⾯编辑框的内容就复制到下⾯的编辑框,点击退出就是退出程序。
在上⾯的编辑框中右键添加变量,设置属性private,变量名n_edit1。⽽下⾯的编辑框中右键添加变量,设置属性private,变量名n_edit2。如果变量名较多,可以在界⾯上右键选择类向导,即可查看。
定位到:类视图--CEditCtrlDlg--OnInitDialg()中,在其中添加代码。
1.添加编辑框默认显⽰内容
n_edit1.SetWindowTextW(TEXT("C++"));
2.设置复制按钮的点击事件
双击按钮,进⼊点击事件中,添加代码。
//获取d到edit1的内容,然后给edit2
CString str;
n_edit1.GetWindowTextW(str);
n_edit2.SetWindowTextW(str);
执⾏,点击复制按钮后:
3.设置退出按钮
双击按钮,进⼊点击事件中,添加代码。
//退出程序html内容文本框
exit(0);
//退出当前对话框
CDialog::OnOK();
CDialog::OnCancel();
后两种的不同之处在于:
CDialog::OnOK⾸先调⽤UpdateData(TRUE)将数据传给对话框成员变量,然后调⽤CDialog::EndDialog关闭对话框;
CDialog::OnCancel只调⽤CDialog::EndDialog关闭对话框;
关于按下enter换⾏会直接退出程序
单个未改动的编辑框,换⾏会使得程序直接退出,尝试更改。
⾸先在原来项⽬基础上新增⼀个编辑框。
然后再本项⽬Dlg右键属性,选择重写。然后定位到OnOk()中,注释掉⾥⾯的CDialog::OnOK();即可。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。