访问对话框控件的七种方法

方法一、

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的更多相关文章

  1. MFC控件编程之 按钮编辑框.静态文本的使用,以及访问控件的七种方法.

    MFC控件编程之 按钮编辑框.静态文本的使用以及访问控件的七种方法. 一丶按钮.静态文本的通用属性. 他们都有一个属性.就是可以输入标题内容.以及可以自定义控件ID. 创建一个MFC Dlg对话框. ...

  2. C#中跨线程访问控件问题解决方案

    net 原则上禁止跨线程访问控件,因为这样可能造成错误的发生,推荐的解决方法是采用代理,用代理方法来间接操作不是同一线程创建的控件. 第二种方法是禁止编译器对跨线程访问作检查,可以实现访问,但是出不出 ...

  3. c#使用MethodInvoker解决跨线程访问控件

      功能函数测试集锦(77)  C#专区(114)  版权声明:本文为博主原创文章,未经博主允许不得转载. .net 原则上禁止跨线程访问控件,因为这样可能造成错误的发生,有一种方法是禁止编译器对跨线 ...

  4. c# winform InvokeRequired 解决跨线程访问控件

    C#中禁止跨线程直接访问控件,InvokeRequired是为了解决这个问题而产生的,当一个控件的InvokeRequired属性值为真时,说明有一个创建它以外的线程想访问它. Windows 窗体中 ...

  5. winform跨线程访问控件

    首先说下,.net 2.0以后加强了安全机制,不允许在winform中直接跨线程访问控件的属性.所以除了控件所在的线程外的线程调用会抛异常 (Cross-thread operation not va ...

  6. C# 关于跨线程访问控件问题

    跨线程访问控件问题的原因是:控件都是在主线程中创建的,而系统默认控件的修改权归其创建线程所有.在子线程中如果需要直接修改控件的内容,需要使用委托机制将控件的修改操作交给主线程处理.因此,当没有使用委托 ...

  7. C#中跨线程访问控件

    net 原则上禁止跨线程访问控件,因为这样可能造成错误的发生,推荐的解决方法是采用代理,用代理方法来间接操作不是同一线程创建的控件. 第二种方法是禁止编译器对跨线程访问作检查,可以实现访问,但是出不出 ...

  8. C#线程中安全访问控件(重用委托,避免繁复的delegate,Invoke)总结

    1.第一种,不安全,当线程过多后,timer控件和线程中同时访问窗体控件时,有时会出现界面重绘出错. public frmMain() { InitializeComponent(); System. ...

  9. [C#] Control.Invoke方法和跨线程访问控件(转载)

    转载前,在网上找了好多INVOKE方法的文章,就这个看着还可以,明白了大概,以后再深用的时候再研究 ,废话少说上转载(连转载都说的这么有气势,哈哈)   在设计界面时,我们经常需要将一些需要时间才能完 ...

随机推荐

  1. SGU 107 987654321 problem【找规律】

    题目链接: http://acm.sgu.ru/problem.php?contest=0&problem=107 题意: 平方后几位为987654321的n位数有多少个 分析: 虽然说是水题 ...

  2. 字符串分割+二维数组 Day15练习

    package com.sxt.arrays.test; import java.util.Arrays; /* 1,2,3,4!5,6,7!8,9!12,456,90!32 * 将此字符串以叹号为分 ...

  3. mybatis多排序问题

    在很多业务场景中,会有多排序问题,mybatis支持多排序,写法如下: ORDER BY contract.contractCount DESC, reward.rewardTotal DESC, n ...

  4. oracle函数 NLS_UPPER(x[,y])

    [功能]返回字符串并将字符串的转换为大写; [参数]x字符型表达式 [参数]Nls_param可选,指定排序的方式(nls_sort=) . SCHINESE_RADICAL_M(部首.笔画) SCH ...

  5. Laravel如何引用第三方(自定义)库

    想做一个网页抓取的功能,底层使用php的laravel框架. 这里使用phpQuery库来实现网页抓取,这里不做介绍. 需要了解的可以百度,或者等我填坑. 下载最新版本可以前往https://code ...

  6. Android 错误:IllegalStateException: Can not perform this action after onSaveInstanceState

    今天做Fragment切换.状态保存功能的时候,出现了这个错误: E/AndroidRuntime(12747): Caused by: java.lang.IllegalStateException ...

  7. CondaHTTPError: HTTP 000 CONNECTION FAILED

    [root@localhost ~]# conda install samtools Solving environment: failed CondaHTTPError: HTTP 000 CONN ...

  8. 字符串编辑距离(Edit Distance)

    一.问题描述定义字符串编辑距离(Edit Distance),是俄罗斯科学家 Vladimir Levenshtein 在 1965 年提出的概念,又称 Levenshtein 距离,是指两个字符串之 ...

  9. Fragment学习(一) :生命周期

    一. 何为Fragment Fragment是activity的界面中的一部分或一种行为.你可以把多个Fragment们组合到一个Activity中来创建一个多面界面,并且你可以在多个Activity ...

  10. Python--day19--random模块

    random模块 >>> import random #随机小数 >>> random.random() # 大于0且小于1之间的小数 0.766433866365 ...