目录
默认情况下编辑框edit control 是可以横向无限输入的
支持换行,运行程序后想在编辑框里通过换行来输入接下来的内容,把它设为true即可
如果此属性是FALSE,运行程序一旦在编辑框内回车就会导致退出整个程序
解决这个一回车就退出的小bug方法就是,在类视图中找到Dlg后缀的文件,左键选中之后右键属性,可以跳转到一个有重写的属性面板,找到其中的on ok,其小三角下拉框点击add on ok
会跳转到这样一段代码,可以看到有CDialogEx::OnOK(); 这个是让程序按回车(以确定的方式)退出的,只需要把它注释掉就可以放心在编辑框中敲回车了
支持多行输入,此功能与want return 搭配使用可以敲多行文本(新版 VS2017以上不用打开auto hoerizen)也可以实现纵向无限输入,旧版本则需要打开此属性
水平滚动条,horzontal scroll 横向的滚动条,方便定位在编辑框中输入的每一列中的内容
垂直滚动条vertical scroll 竖的,定位行 内容
ctrl+鼠标左键拖拽复制控件(属性也和上一个一样,就caption不一样)
给两个编辑框分别添加变量,命名为edit_1,edit_2
找到类视图,选中Dlg后缀的文件,找到oninitdialog,双击,定位到该函数
添加初始化edit_control1的代码
// TODO: 在此添加额外的初始化代码
m_edit1.SetWindowTextW(TEXT("面朝大海 春暖花开"));//设置默认显示,初始化edit1
这样运行起来就会默认有内容显示了
添加一个button改caption为“复制”
双击button进入其函数,先获取edit1的内容再设置给edit2
- void CBianJiKuangDlg::OnBnClickedButton1()//复制 button的函数
- {
- //获取edit1的内容,然后复制
- CString str;
- m_edit1.GetWindowTextW(str);
- m_edit2.SetWindowTextW(str);//把edit2的内容设置为edit1获取到的str
- }
再添加一个退出按钮,写入退出程序的代码
退出的方法有很多种
- void CBianJiKuangDlg::OnBnClickedButton2()//退出按钮
- {
- // TODO: 在此添加控件通知处理程序代码
- //exit(0);//最简单粗暴的退出方法
- //CDialog::OnOK();//以确定的方式来退出
- CDialog::OnCancel();//以取消的方式来退出
- }
这样就可以实现程序的复制和退出了
在原基础上,添加一个新的edit control ,添加变量时把类别改为值
尝试直接对编辑框内容进行操作
添加两个button 一个叫设置内容,一个叫获取内容
双击进入设置内容和获取内容 button的函数,添加如下代码
void CBianJiKuangDlg::OnBnClickedButton3()//设置内容
{
// TODO: 在此添加控件通知处理程序代码
//设置内容
m_value=TEXT("海子的诗");
//将变量内容 同步到控件中
UpdateData(FALSE);
}
void CBianJiKuangDlg::OnBnClickedButton4()//获取内容
{
// TODO: 在此添加控件通知处理程序代码
//v_value本身就是cstring类型,所以可以直接把他传入messagebox中
//将控件内容同步到变量中
UpdateData(TRUE);//和将变量内容 同步到控件中 反着来
MessageBox(m_value);//弹出内容显示
}
有无updata的差别就是在获取内容之后,继续执行内容修改,获取的内容是否会随着edit control内新输入的内容更新显示
也可以更改属性,实现多行显示
纵向想无限输入却被限制了?打开竖向的滚动条就可以纵向无限输入了
把复制内容用值类别的方式传递呢?
也就是改写控件变量为,值变量
复制(或添加两个新的编辑框),分别添加类变量(类型改为值类型(value)),变量名改为v_edit1和v_edit2
为值方式复制按钮添加如下代码即可实现
void CBianJiKuangDlg::OnBnClickedButton5()//值方式复制
{
// TODO: 在此添加控件通知处理程序代码
UpdateData(TRUE);//将控件内容同步到变量中
v_edit1 = TEXT("值方式的 面朝大海 春暖花开");
v_edit2 = v_edit1;
UpdateData(FALSE);
}
可以实现
更改内容试试看是否能同步复制更新,答案是不可以,重新点击,还是会变成代码中的语句
果然是我太笨了,拓展这里换不过来--^^--~,望指教