博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MFC对话框控件访问的七种方式
阅读量:6247 次
发布时间:2019-06-22

本文共 2870 字,大约阅读时间需要 9 分钟。

void CTestDlg::OnButtonAdd() {	// TODO: Add your control notification handler code here	//动态创建按钮/*	if ( FALSE == m_bIsCreate )  // 亦可以通过静态变量 static BOOL bIsCreate = FALSE;	{		m_btn.Create("Lee", BS_DEFPUSHBUTTON | WS_VISIBLE | WS_CHILD, CRect(0,0,100,65), this, 111);	//	m_btn.ShowWindow(SW_NORMAL);//若上句没有WS_VISIBLE,就加上showWindow		m_bIsCreate = TRUE;	}	else	{		m_btn.DestroyWindow();		m_bIsCreate = FALSE;	}*//*	//最简单的动态创建按钮	if (!m_btn.m_hWnd) //窗口句柄不为空	{		m_btn.Create("Lee", BS_DEFPUSHBUTTON | WS_VISIBLE | WS_CHILD, CRect(0,0,100,65), this, 111);	}	else	{		m_btn.DestroyWindow(); // 会自动将 m_hWnd = NULL	}*/	//实现 点击Add按钮,将 编辑框1的数 + 编辑框2 的数  放到编辑框3中/*	int num1, num2, num3;	char ch1[10], ch2[10], ch3[10];	GetDlgItem(IDC_EDIT1)->GetWindowText(ch1,10); //将编辑框的文本存到ch1中,最大10个字符	GetDlgItem(IDC_EDIT2)->GetWindowText(ch2,10);		num1 = atoi(ch1); // 将字符串转换为整型	num2 = atoi(ch2);	num3 = num1 + num2;	itoa(num3, ch3, 10); // 将整数num3 转换到ch3中,以十进制的方式		GetDlgItem(IDC_EDIT3)->SetWindowText(ch3); // 将ch3字符数值,存到编辑框3中*//*	//也可以	int num1, num2, num3;	char ch1[10], ch2[10], ch3[10];	GetDlgItemText(IDC_EDIT1, ch1, 10);	GetDlgItemText(IDC_EDIT2, ch2, 10);	num1 = atoi(ch1); // 将字符串转换为整型	num2 = atoi(ch2);	num3 = num1 + num2;	itoa(num3, ch3, 10);	SetDlgItemText(IDC_EDIT3, ch3);*//*	//还可以	int num1, num2, num3;	num1 = GetDlgItemInt(IDC_EDIT1); // 直接获得编辑框中的数值	num2 = GetDlgItemInt(IDC_EDIT2);	num3 = num1 + num2;	SetDlgItemInt(IDC_EDIT3, num3);*//*	//最简单的一种,用classwizard 关联 控件与成员变量(以值)	UpdateData();	m_num3 = m_num2 + m_num1;	UpdateData(FALSE);*//*	//第五种方式  用classwizard 关联 控件与成员变量(以控件)。与第一种相似	int num1, num2, num3;	char ch1[10], ch2[10], ch3[10];	m_edit1.GetWindowText(ch1, 10);	m_edit2.GetWindowText(ch2, 10);	num1 = atoi(ch1); // 将字符串转换为整型	num2 = atoi(ch2);	num3 = num1 + num2;	itoa(num3, ch3, 10);	m_edit3.SetWindowText(ch3);*//*	//第六种方式,发送消息	int num1, num2, num3;	char ch1[10], ch2[10], ch3[10];	//::SendMessage(GetDlgItem(IDC_EDIT1)->m_hWnd, WM_GETTEXT, 10, (LPARAM)ch1);	//::SendMessage(m_edit1.m_hWnd, WM_GETTEXT, 10, (LPARAM)ch1);	//GetDlgItem(IDC_EDIT1)->SendMessage(WM_GETTEXT, 10, (LPARAM)ch1);	m_edit1.SendMessage(WM_GETTEXT, 10, (LPARAM)ch1); //以上四句等价	m_edit2.SendMessage(WM_GETTEXT, 10, (LPARAM)ch2);	num1 = atoi(ch1); // 将字符串转换为整型	num2 = atoi(ch2);	num3 = num1 + num2;	itoa(num3, ch3, 10);	m_edit3.SendMessage(WM_SETTEXT, 10, (LPARAM)ch3);*/	//第七种方式	int num1, num2, num3;	char ch1[10], ch2[10], ch3[10];	SendDlgItemMessage(IDC_EDIT1, WM_GETTEXT, 10, (LPARAM)ch1);//直接给子控件发消息	SendDlgItemMessage(IDC_EDIT2, WM_GETTEXT, 10, (LPARAM)ch2);	num1 = atoi(ch1); // 将字符串转换为整型	num2 = atoi(ch2);	num3 = num1 + num2;	itoa(num3, ch3, 10);	SendDlgItemMessage(IDC_EDIT3, WM_SETTEXT, 10, (LPARAM)ch3);	SendDlgItemMessage(IDC_EDIT3, EM_SETSEL, 0, -1); //复选所有的文本	//GetDlgItem(IDC_EDIT3)->SetFocus(); //将焦点聚到edit3. 或者 	m_edit3.SetFocus();}

  

转载于:https://www.cnblogs.com/htj10/p/9346411.html

你可能感兴趣的文章
[原]浅谈几种服务器端模型——反应堆模式(基于epoll的反应堆)
查看>>
关于 Content-Encoding: gzip - 知道创宇
查看>>
linux lftp命令
查看>>
跟JBPM学设计模式之工厂方法模式
查看>>
extern用法详解
查看>>
推荐几款软件界面模型设计工具
查看>>
存储过程传言
查看>>
JavaScript求当月天数
查看>>
ClipCursor与GetClipCursor 用法
查看>>
静态查找---->顺序、折半、分块查找
查看>>
经历无数次失败,终于把kamailio装上了
查看>>
Tsung 1.5.0 增加对 WebSocket 和 BOSH 的支持
查看>>
NYOJ-613 免费馅饼
查看>>
概率论07 联合分布
查看>>
虚拟机中克隆系统后网卡无法识别的解决办法
查看>>
Spring bean中的properties元素内的name 和 ref都代表什么意思啊?
查看>>
跟我一起云计算(4)——lucene
查看>>
Subversion服务器搭建
查看>>
PourOver – 快速筛选和排序大的数据集合
查看>>
swift学习第五章-字典的使用
查看>>