我是靠谱客的博主 暴躁蜜蜂,最近开发中收集的这篇文章主要介绍控件的学习(二)--动态创建按钮之后把它关联变量,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

我们知道如果在资源视图中添加了某个控件之后,如果想把它关联一个变量的话,可以使用类向导中来添加关联变量,但是动态创建的按钮如何让其关联变量呢?

刚开始我想自己首先在资源框里手动添加一个编辑框,然后关联一个变量,看代码哪里改变了,其实在孙鑫的VC++里面提到了,就是在做数据交换的DoDataExchange函数里面添加 DDX_Text(pDX,控件ID,关联的变量)

比如把IDC_EDIT1关联num1

   //{{AFX_DATA_MAP(C动态创建的控件关联变量Dlg)    //注意在这里添加上两个注释宏
DDX_Text(pDX,IDC_EDIT1,num1);
    DDX_Text(pDX,10002,num2);
DDX_Text(pDX,10003,num3);
//}}AFX_DATA_MAP

但是奇怪的是在VS2008里面,通过类向导,却没有这样关联的代码,这是让我很疑惑的?希望高手可以帮忙解决==??

不过记住变量num1,num2,num3的声明


刚开始的时候我把创建编辑框的代码放在CDialog::OnInitDialog();之后,结果程序奔溃了

(感谢http://topic.csdn.net/t/20060926/16/5049531.html)我就是在这里寻找到答案的==

应该是CDialog::OnInitDialog();里调用了DoDataExchange,进行初始化,结果此时尚未执行创建编辑框的代码,所以无法关联,所以必须在之前创建,

所以在初始化函数里面添加如下代码

BOOL C动态创建的控件关联变量Dlg::OnInitDialog()
{

	m_edit1.Create( WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER,CRect(10,10,100,30),this,10001);
	m_edit2.Create( WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER,CRect(10,50,100,70),this,10002);
	m_edit3.Create( WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER,CRect(10,90,100,110),this,10003);

	CDialog::OnInitDialog();

	// 将“关于...”菜单项添加到系统菜单中。

	// IDM_ABOUTBOX 必须在系统命令范围内。
	ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
	ASSERT(IDM_ABOUTBOX < 0xF000);

	CMenu* pSysMenu = GetSystemMenu(FALSE);
	if (pSysMenu != NULL)
	{
		CString strAboutMenu;
		strAboutMenu.LoadString(IDS_ABOUTBOX);
		if (!strAboutMenu.IsEmpty())
		{
			pSysMenu->AppendMenu(MF_SEPARATOR);
			pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
		}
	}

	// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
	//  执行此操作
	SetIcon(m_hIcon, TRUE);			// 设置大图标
	SetIcon(m_hIcon, FALSE);		// 设置小图标

	// TODO: 在此添加额外的初始化代码

	

	return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}

再在创建一个按钮,在其消息响应函数里面添加计算num1,num2,的值放到num3

代码如下

void C动态创建的控件关联变量Dlg::OnBnClickedButton1()
{
	// TODO: 在此添加控件通知处理程序代码
	UpdateData(true);
         num3=num1+num2;
	UpdateData(false);
}


效果如图



最后

以上就是暴躁蜜蜂为你收集整理的控件的学习(二)--动态创建按钮之后把它关联变量的全部内容,希望文章能够帮你解决控件的学习(二)--动态创建按钮之后把它关联变量所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部