MFC_对话框_访问控件_7种方法_A
访问对话框控件的七种方法
方法一、
GetDlgItem()->GetWindowText();
GetDlgItem()->SetWindowText();
方法二、
GetDlgItemText();
SetDlgItemText();
方法三、
GetDlgItemInt();
SetDlgItemInt();
一、建立名为Demo的MFC工程,并按照如图添加控件,修改第一个static text Caption属性为+,第二个static text Caption属性为-,
分别修改三个button 的Caption属性为Add,
方法一:
双击第一个Add button,进入DemoDlg.cpp添加,
void CDemo1Dlg::OnBnClickedButton1()
{
int num1,num2,num3;
TCHAR ch1[],ch2[],ch3[]; //定义三个字符数组用来保存输入输出数据
GetDlgItem(IDC_EDIT1)->GetWindowText(ch1,); //获取文本输入,并保存到数组中
GetDlgItem(IDC_EDIT2)->GetWindowText(ch2,); num1=_ttoi(ch1); //将字符串转变为整数用于计算
num2=_ttoi(ch2); num3 = num1 + num2; //计算 _itot(num3,ch3,); //将整数转变为字符串用于显示
GetDlgItem(IDC_EDIT3)->SetWindowText(ch3); //显示结果
}
方法二:
双击第二个Add button,进入DemoDlg.cpp添加,
void CDemo1Dlg::OnBnClickedButton2()
{ int num1,num2,num3;
TCHAR ch1[],ch2[],ch3[];
GetDlgItemText(IDC_EDIT1,ch1,);
GetDlgItemText(IDC_EDIT2,ch1,); num1=_ttoi(ch1);
num2=_ttoi(ch2); num3 = num1 + num2; _itot(num3,ch3,);
SetDlgItemText(IDC_EDIT3,ch3);
}
方法三:
双击第三个Add button,进入DemoDlg.cpp添加,
方法三
void CDemo1Dlg::OnBnClickedButton3()
{ int num1,num2,num3;
num1=GetDlgItemInt(IDC_EDIT1);
num2=GetDlgItemInt(IDC_EDIT2); num3 = num1 + num2; SetDlgItemInt(IDC_EDIT3,num3);
}
MFC_对话框_访问控件_7种方法_A的更多相关文章
- MFC控件编程之 按钮编辑框.静态文本的使用,以及访问控件的七种方法.
MFC控件编程之 按钮编辑框.静态文本的使用以及访问控件的七种方法. 一丶按钮.静态文本的通用属性. 他们都有一个属性.就是可以输入标题内容.以及可以自定义控件ID. 创建一个MFC Dlg对话框. ...
- C#中跨线程访问控件问题解决方案
net 原则上禁止跨线程访问控件,因为这样可能造成错误的发生,推荐的解决方法是采用代理,用代理方法来间接操作不是同一线程创建的控件. 第二种方法是禁止编译器对跨线程访问作检查,可以实现访问,但是出不出 ...
- c#使用MethodInvoker解决跨线程访问控件
功能函数测试集锦(77) C#专区(114) 版权声明:本文为博主原创文章,未经博主允许不得转载. .net 原则上禁止跨线程访问控件,因为这样可能造成错误的发生,有一种方法是禁止编译器对跨线 ...
- c# winform InvokeRequired 解决跨线程访问控件
C#中禁止跨线程直接访问控件,InvokeRequired是为了解决这个问题而产生的,当一个控件的InvokeRequired属性值为真时,说明有一个创建它以外的线程想访问它. Windows 窗体中 ...
- winform跨线程访问控件
首先说下,.net 2.0以后加强了安全机制,不允许在winform中直接跨线程访问控件的属性.所以除了控件所在的线程外的线程调用会抛异常 (Cross-thread operation not va ...
- C# 关于跨线程访问控件问题
跨线程访问控件问题的原因是:控件都是在主线程中创建的,而系统默认控件的修改权归其创建线程所有.在子线程中如果需要直接修改控件的内容,需要使用委托机制将控件的修改操作交给主线程处理.因此,当没有使用委托 ...
- C#中跨线程访问控件
net 原则上禁止跨线程访问控件,因为这样可能造成错误的发生,推荐的解决方法是采用代理,用代理方法来间接操作不是同一线程创建的控件. 第二种方法是禁止编译器对跨线程访问作检查,可以实现访问,但是出不出 ...
- C#线程中安全访问控件(重用委托,避免繁复的delegate,Invoke)总结
1.第一种,不安全,当线程过多后,timer控件和线程中同时访问窗体控件时,有时会出现界面重绘出错. public frmMain() { InitializeComponent(); System. ...
- [C#] Control.Invoke方法和跨线程访问控件(转载)
转载前,在网上找了好多INVOKE方法的文章,就这个看着还可以,明白了大概,以后再深用的时候再研究 ,废话少说上转载(连转载都说的这么有气势,哈哈) 在设计界面时,我们经常需要将一些需要时间才能完 ...
随机推荐
- C++模板相关知识点总结
1:在 C++ 中,模板是泛型编程的基础.模板是创建类或函数的蓝图或公式. 2:模板定义以关键字 template 开始,后接模板形参表,模板形参表是用尖括号括住的一个或多个模板形参的列表,形参之间以 ...
- 去除selet标签默认样式
select { /*Chrome和Firefox里面的边框是不一样的,所以复写了一下*/ border: solid 1px #000; /*很关键:将默认的select选择框样式清除*/ appe ...
- vuex之仓库数据的设置与获取
如果你之前使用过vue.js,你一定知道在vue中各个组件之间传值的痛苦,在vue中我们可以使用vuex来保存我们需要管理的状态值,值一旦被修改,所有引用该值的地方就会自动更新,那么接下来我们就来学习 ...
- LeetCode80 Remove Duplicates from Sorted Array II
题目: Follow up for "Remove Duplicates":What if duplicates are allowed at most twice? (Mediu ...
- CH1401 兔子与兔子
#include<bits/stdc++.h> using namespace std; ,p=; typedef unsigned long long ULL;//自然溢出 ULL f[ ...
- oracle函数 RPAD(c1,n[,c2])
[功能]在字符串c1的右边用字符串c2填充,直到长度为n时为止 [参数]C1 字符串 n 追加后字符总长度 c2 追加字符串,默认为空格 [返回]字符型 [说明]如果c1长度大于n,则返回c1左边n个 ...
- es6 promise简析
1.Promise的含义 所谓Promise,就是一个对象,用来传递异步操作的消息. Promise对象有以下两个特点: 对象的状态不受外界影响.Promise对象代表一个异步操作,有三种状态:Pen ...
- SuperSocket SuperWebSocket并发数100限制的问题
var wsSer = new WebSocketServer(); wsSer.NewMessageReceived += wsSer_NewMessageReceived;//有消息传入时事件 w ...
- javascript 变量的提升
下面是一个关于全局和局部作用域的问题 var a = 123; function f(){ alert(a); var a = 1; alert(a); } f(); 大家第一眼看到后都会认为第一次a ...
- 【CSS3动画】下拉菜单模拟
下拉菜单模拟效果图: CSS3: <style> #box{width:200px; height:50px; overflow:hidden; cursor: pointer; tran ...