在子窗口初始化某一个radio button的默认勾选状态

所选工具:vs2010
以我的项目为例:我想在点击“WriteData”这个按钮的时候弹出一个框,而且这个框上面要默认选上其中一个radio button(NO),
在子窗口初始化某一个radio button的默认勾选状态_第1张图片
我的OK按钮下的相应函数直接return OnOK();

void CWriteDataDialog::OnBnClickedBtnWriteOk()
{
	// TODO: 在此添加控件通知处理程序代码
	bWriteProtectedData = 0;
	CString strOffset,strWriteDataInfo;
	GetDlgItem(IDC_EDT_WRITE_OFFSET)->GetWindowText(strOffset);
	m_SubDlgWriteOffset = strOffset;
	GetDlgItem(IDC_EDT_WRITE_DATA_INFO)->GetWindowText(strWriteDataInfo);
	m_SubDlgWriteDataInfo = strWriteDataInfo;
	if(((CButton*)(GetDlgItem(IDC_RADIO_NO)))->GetCheck())
	{
		bWriteProtectedData = 0;
	}
	if(((CButton*)(GetDlgItem(IDC_RADIO_YES)))->GetCheck())
	{
		bWriteProtectedData = 1;
	}
	return OnOK();
}

然后我在父窗口判断:
在子窗口初始化某一个radio button的默认勾选状态_第2张图片
writeData按钮的相应函数:

void CModifyWhiteInkDataDemoDlg::OnBnClickedBtnWriteData()
{
	// TODO: 在此添加控件通知处理程序代码
	CWriteDataDialog writeDataDlg;
	if(IDOK == writeDataDlg.DoModal())
	{
		...
	}
}

我开始是在子窗口那里添加默认选中按钮:
在子窗口初始化某一个radio button的默认勾选状态_第3张图片
但是问题是,我是点击了子窗口的OK按钮之后才设置初始化选中NO这个radio button,此时窗体都已经消失了,是不能勾选成功的。所以需要我们自己在这个子窗口初始化的时候就让它勾选上这个窗口:但是我找了很久,似乎代码里只有主窗口才有初始化窗口OnInitDialog();这个函数,也就是说需要我们自己手动添加子窗口的窗体初始化函数
具体步骤如下:
首先进入我们子窗口的类:
在子窗口初始化某一个radio button的默认勾选状态_第4张图片
右边有一个属性一栏,点进去
在子窗口初始化某一个radio button的默认勾选状态_第5张图片
点击红框里面的按钮(重写)
找到OnInitDialog();函数重写即可;
在子窗口初始化某一个radio button的默认勾选状态_第6张图片
于是在相应的头文件与cpp文件会出现该函数的声明与定义,我们只需要在该函数定义里加上子窗口勾选radio button的代码即可。
在子窗口初始化某一个radio button的默认勾选状态_第7张图片
然后我们的目的就达到了。
在子窗口初始化某一个radio button的默认勾选状态_第8张图片

本篇文章主要是记录,手动添加初始化窗口函数。

你可能感兴趣的:(c++笔记)