MFC编辑框控件属性和用法

news2025/2/28 3:40:17

目录

一、编辑框的属性

1.want return

2.Multiline

3.滚动条

4.添加完效果

二、初始化编辑框内容

三、复制与退出

四、edit control的值类型

五、思维拓展


一、编辑框的属性

 默认情况下编辑框edit control 是可以横向无限输入的

1.want return

支持换行,运行程序后想在编辑框里通过换行来输入接下来的内容,把它设为true即可

如果此属性是FALSE,运行程序一旦在编辑框内回车就会导致退出整个程序

 解决这个一回车就退出的小bug方法就是,在类视图中找到Dlg后缀的文件,左键选中之后右键属性,可以跳转到一个有重写的属性面板,找到其中的on ok,其小三角下拉框点击add on ok

会跳转到这样一段代码,可以看到有CDialogEx::OnOK(); 这个是让程序按回车(以确定的方式)退出的,只需要把它注释掉就可以放心在编辑框中敲回车了

2.Multiline

 支持多行输入,此功能与want return 搭配使用可以敲多行文本(新版 VS2017以上不用打开auto  hoerizen)也可以实现纵向无限输入,旧版本则需要打开此属性

3.滚动条

 水平滚动条,horzontal scroll  横向的滚动条,方便定位在编辑框中输入的每一列中的内容

垂直滚动条vertical scroll 竖的,定位行 内容

4.添加完效果

二、初始化编辑框内容

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的值类型

在原基础上,添加一个新的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);
}

可以实现

更改内容试试看是否能同步复制更新,答案是不可以,重新点击,还是会变成代码中的语句

果然是我太笨了,拓展这里换不过来--^^--~,望指教

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/39086.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

dreamweaver作业静态HTML网页设计模板——迪士尼影视电影(6页)带音乐

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置,有div的样式格局,这个实例比较全面,有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 文章目录一、网页介绍一…

Private Execution on Blockchain

1.Alan Szepieniec: Ghost-Queen Chess——复杂金融合约 Alan Szepieniec为Neptune合伙人。 为何需关注decentralized Finance? 1)从学术角度来看:是 密码学 ∩\cap∩ 分布式系统 ∩\cap∩ 经济学 ∩\cap∩ …的集合。2)从工程…

基于蚁群算法的多配送中心的车辆调度问题的研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

BUUCTF Misc ningen1 小明的保险箱1 爱因斯坦1 easycap1

ningen1 下载文件 使用kali中的binwalk查看 binwalk xxx.jpg 分离文件 打开 压缩包加密了,爆破 爆破成功,密码:8368 得到flag flag{b025fc9ca797a67d2103bfbc407a6d5f} 小明的保险箱1 下载文件 用010 editor打开 可以看到图…

Java初识泛型

什么是泛型 泛型是jdk1.5引入的新语法,泛型就是适用于许多许多类型,就是对类型实现了参数化。实现一个类,类中包含一个数据成员,使得数组中可以存放任何类型的数据,也可以根据成员方法返回数组中某个下标的值 class M…

linux-免费ssl证书

title: linux-免费ssl证书 categories: Linux tags: [linux, xshell] date: 2022-09-10 19:29:55 comments: false mathjax: true toc: true linux-免费ssl证书 前篇 33种免费获取SSL证书的方式 - https://zhuanlan.zhihu.com/p/174755007 HTTPS 证书文件格式转换 HTTPS证书文…

基于多目标粒子群优化算法的冷热电联供型综合能源系统运行优化附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

acm退役小记

本人大学是接近一本线的二本大学,目前能打的区域赛场基本打完了,桂林rank105和沈阳rank140是有两个区域赛铜。如果我是强校的话,也会说下只能拿废物铜耻辱退役 这里简单记下我的acm生涯 其实我一直觉得对于我们这种弱校,虽然打a…

delete删除后怎么恢复文件?四种方法进行找回

演示机型:技嘉 H310M HD22.0 系统版本:Windows 10 专业版 很多小伙伴在日常工作或生活中,喜欢通过delete键进行删除文件,虽然这种删除方式快捷方便,但是也容易出现误删的情况,那么用delete键删除的文件可以…

【语音识别】高斯混合模型(GMM)说话人识别【含Matlab源码 574期】

⛄一、高斯混合模型简介 GMM基本框架 类似的还有GMM-UBM(Universal background model)算法,其与GMM的区别在于:对L类整体样本训练一个大的GMM,而不像GMM对每一类训练一个GMM模型。SVM的话MFCC作为特征,每一帧作为一个样本&#…

golang的new和make

golang 变量定义的方式 可以通过 var变量名称变量类型 进行声明变量,当我们没有给它赋值的时候,它们的结果是变量类型的零值,例如: string 的零值是"",int 的零值是0,引用类型的零值是nil。 前面两种类型…

Android加载第三方so库

本篇文章使用的android studio版本是:Android Studio Bumblebee | 2021.1.1 Patch 2 上一篇文章:Android开发java调用C简单示例 演示了java调C,那么so文件能否复用到别的项目了? 这次我们尝试用上一篇文章生成的so库,调用里面的…

APK 签名 v1 v2 步骤

APK 签名 v1 v2 步骤 需要工具 **apksigner.jar jarsinger.exe keytool.exe zipalign.exe ** 1.生成 keystore keytool -genkey -v -keystore my.keystore -alias liuhan -keyalg RSA -keysize 2048 -sigalg SHA256withRSA -dname "cnTest,ouTest,cCA" -validity …

【机器学习入门项目10例】(六):KMeans聚类

💥 项目专栏:【机器学习入门项目10例】 文章目录 一、KMeans聚类二、数据集介绍三、KMeans聚类算法介绍四、定义KMeans模型4.1 kmeans算法入口4.2 初始化簇4.3 计算DBI优化指标4.4 计算每个样本到簇中心的距离4.5 更新每个样本所属的簇分类4.6 更新每个簇的中心4.7 官方实现…

百行代码实现VLC简易视频播放器【详细环境配置过程+可执行源码注释完整】

文章目录❓什么是VLC🚀VLC 库的集成⭐VLC环境配置演示【win10系统vs2017win64】🍎VLC 库的基本使用🎂视频播放器实现⭐自定义函数Unicode2Utf8讲解🏠总结❓什么是VLC VLC 是 Video Lan Client 的缩写,原先是几个法国的…

学生HTML网页作业作品:HTML+CSS网站设计与实现【红色喜庆邀请函 3页】

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

朗道-西格尔零点猜想(the Landau-Siegel Zeros Conjecture)

1 简介 朗道-西格尔零点猜想(the Landau-Siegel Zeros Conjecture),是一个数学难题。 要理解朗道-西格尔零点猜想,首先需要理解黎曼猜想,进而需理解广义黎曼猜想,以及狄利克雷L函数。断言L函数没有异常零…

【OneDrive篇】OneDrive禁用个人保管库(网页端)

【OneDrive篇】OneDrive禁用"个人保管库"(网页端) 最近OneDrive个人保管库一直同步出错,把文件全部移出来还是一样,就选择直接禁用"个人保管库"功能了—【蘇小沐】 文章目录【OneDrive篇】OneDrive禁用"…

Windowns编译OpenSSL

前言 开发过程中需要上传数据,URL是https的,Qt默认是http网络请求,访问https需要用到SSL认证,而Qt默认不支持,需要自己编译OpenSSL库。 一、下载OpenSSL 环境:Qt 5.12.2 MSVC 2017,32bit ,可通过下面代码…

[附源码]Python计算机毕业设计高校国防教育管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…