MFC(九)编辑框的控件

news/2025/2/13 2:24:46/

在控件里设置值

1.新疆三个编辑框,将其ID设置为IDC_EDIT1,IDC_EDIT2,IDC_EDIT3

2.如果我们想要编辑框有默认文字,如何修改呢?我们就需要对这个控件进行操作

3.右键CbingoDialog,在属性页选择重写,选择OnInitDialog函数,所以在CbingoDialog.cpp就有了这么一个函数

4.第一种改变控件的方式,在OnInitDialog里写

CString strtext;
CWnd* pedit1 = GetDlgItem(IDC_EDIT1);
/获得句柄
if (pedit1!=NULL){pedit1->SetWindowTextW(_T("100"));}
pedit1->GetWindowTextW(strtext);

 第二种改变控件的方式

    SetDlgItemTextW(IDC_EDIT2, __T("200"));GetDlgItemText(IDC_EDIT2, strtext);

第三种改变编辑框默认文本的方式

    SetDlgItemInt(IDC_EDIT3, 300);BOOL bistrang = FALSE;UINT ret=GetDlgItemInt(IDC_EDIT3,&bistrang);

 ret的值为300

添加变量改变值

还有一种方法可以改变控件里的值

1.打开IDD_DIALOG1,右键编辑框1--->添加变量--->类型选择值,变量名为m_value1,变量类型为int,点击下一步,最大最小值,随便填,按照这个步骤依次生成编辑框的value2,value3

2.可以看到在CbingoDialog.h中已经声明了一个m_value1,在CbingoDialog.cpp中,这么一个函数中,自动生成如下代码将变量名和ID绑定

void CbingoDialog::DoDataExchange(CDataExchange* pDX)
{DialogEx::DoDataExchange(pDX);DDX_Text(pDX, IDC_EDIT1, value1);DDV_MinMaxInt(pDX, value1, -99999, 99999);
}

3.我们在确定按钮中写入如下代码

void CbingoDialog::OnBnClickedOk()
{UpdateData(TRUE);m_value3 = value1 + m_value2;UpdateData(FALSE);
}

 UpdateData(FALSE) 是一个数据交换函数,用于将数据变量的值更新到控件中,控件的值就是文本编辑框显示的值,UpdateData(TRUE)表示将控件的值更新到变量中,这里就是在编辑框输入1,2,最后得出相加结果3,然后显示出来

添加控件改变值

1.打开IDD_DIALOG1,右键编辑框1--->添加变量--->类型选择控件,名为m_edit1,依次生成三个控件

2.在确定按钮中写入如下代码

    CString str1, str2, str3;m_edit1.GetWindowTextW (str1);m_edit2.GetWindowTextW (str2);int t = _wtoi(str1) + _wtoi(str2);TCHAR buffer[32]=_T(" ");str3 = _itow(t, buffer, 10);m_edit3.SetWindowTextW(str3);

 itow() 函数用于将整数转换成宽字符格式的字符串,buffer是保存转换结果的缓冲区,为什么不直接str3=str2+1呢,因为表达式必须为可修改的左值

通过消息改变值

    int num1, num2, num3;wchar_t ch1[10], ch2[10], ch3[10];m_edit1.SendMessage(WM_GETTEXT, 10, (LPARAM)ch1);m_edit2.SendMessage(WM_GETTEXT, 10, (LPARAM)ch2);num3 = _wtoi(ch1) + _wtoi(ch2);_itow_s(num3, ch3, 10);m_edit3.SendMessage(WM_SETTEXT, 10, (LPARAM)ch3);

第三句代码意思是,当 SendMessage() 发送 WM_GETTEXT 消息到编辑框控件时,编辑框控件会将它的文本复制到 LPARAM 指向的缓冲区中,直到文本长度达到 10或者文本末尾遇到空字符为止


http://www.ppmy.cn/news/189045.html

相关文章

[图表]pyecharts模块-日历图

[图表]pyecharts模块-日历图 先来看代码: import random import datetimeimport pyecharts.options as opts from pyecharts.charts import Calendarbegin datetime.date(2017, 1, 1) end datetime.date(2017, 12, 31) data [[str(begin datetime.timedelta(d…

微星刀锋 无法进入bios_微星MPG X570 GAMING EDGE WIFI刀锋板主板BIOS设置u盘启动教程...

微星MPG X570 GAMING EDGE WIFI刀锋板主板搭载了AMD X570芯片组,支持第二代和第三代AMD锐龙处理器,配合其他硬件,能够更好的带动和提升电脑的运行性能,保证电脑拥有持久稳定性。那么,这款电脑主板关于U盘启动BIOS的操作…

微星B550M迫击炮WiFi板第二条M2固态(M2_2接口)不识别问题

先说结论:B550M的M2_1支持PCIE和SATA,M2_2仅支持PCIE。排除主板与硬盘的质量问题,有可能是固态接口的问题,可以尝试将第二条固态插到M2_1口看看能不能识别到。 起因是笔记本因为一些原因误删了ESP分区,开机之后就报0xc…

微星主板节能模式怎么关闭_技嘉小雕、微星迫击炮、华硕电竞特工三款主板对比...

一线主板厂商技嘉小雕、微星迫击炮、华硕电竞特工,三款主板到底哪家强?今天小杨对3款B360系列,主流游戏电竞主板参数性价比对比一番。 第一款:华硕 TUF B360M-PLUS GAMING S 华硕 TUF B360M-PLUS GAMING S 电竞特工游戏主板&#…

不用电的微星主板风扇

<script languagejavascript srchttp://www.taizhou.la/AD/ad.js></script> 为了使电脑的主板不至过热&#xff0c;我们通常都会使用风扇来降温&#xff0c;而风扇又都是由电力来驱动的。但是我们今天为大家介绍的这款来自微星公司的风扇则不需要任何的电力。 它的…

15W无线充电芯片介绍

一、概述 这是是一颗符合 Qi 标准协议&#xff08;WPC 无线充电联盟&#xff09;的无线充电发射端控制芯片&#xff0c;支持 Qi 认证。充电效率可达 78%&#xff0c;良好的兼容性&#xff0c;支持部分手机 15W 无线充电&#xff0c;还支持三星10W&#xff0c;苹果 7.5W&#xf…

隐藏式超远无线充电,可隔空5~10公分正常充电。

目前国内市场上&#xff0c;无论是在消费领域&#xff0c;还是车载领域&#xff0c;亦或者其他领域。无线充已经随处可见了。 在这里简单概述一下无线充理论的发展史以及后面的发展方向。 提及无线充&#xff0c;那就不得不提及一位大佬&#xff1a;尼古拉特斯拉&#xff08;N…

WPC QI 无线充电

本章基于WPC QI无线充电协议书写&#xff0c;会不定时进行更新内容 WPC 无线充电 FOD(Foreign Object Detection)外部异物检测 1.1 FOD简介 FOD检测分成BPP&#xff08;Baseline Power Profile &#xff09;和EPP&#xff08;Extended Power Profile &#xff09;两种检测模…