首先对话框有两个radio按钮,IDC_RADIO_FEMALE group true IDC_RADIO_male group false
消息映射如下:
ON_BN_CLICKED(IDC_RADIO_MALE, &CLoverMatchingView::OnClickedRadioMale)
ON_BN_CLICKED(IDC_RADIO_FEMALE, &CLoverMatchingView::OnClickedRadioFemale)
函数内容如下:
void CLoverMatchingView::OnClickedRadioMale()
{
// TODO: 在此添加控件通知处理程序代码
if(m_radio_gender)
return; if(!randomExecuted)
m_radio_gender=1;
else
{
if(IDYES==MessageBoxW(TEXT("请慎重!\r\n是否继续?"),
TEXT("警告"),MB_YESNO|MB_ICONWARNING))
{
m_radio_gender = 1;
randomExecuted=false;
}
else
{
CheckRadioButton(IDC_RADIO_FEMALE,IDC_RADIO_MALE,IDC_RADIO_FEMALE);
}
}
}void CLoverMatchingView::OnClickedRadioFemale()
{
// TODO: 在此添加控件通知处理程序代码
if(!m_radio_gender)
return; if(!randomExecuted)
m_radio_gender=0;
else
{
if(IDYES==MessageBoxW(TEXT("请慎重!\r\n是否继续?"),
TEXT("警告"),MB_YESNO|MB_ICONWARNING))
{
m_radio_gender = 0;
randomExecuted=false;
}
else
{
CheckRadioButton(IDC_RADIO_FEMALE,IDC_RADIO_MALE,IDC_RADIO_MALE);
}
}
}现在,运行时都没有什么问题,通过某个button响应函数把randomExecuted设置为true时候也可以运行,问题是,当我把窗口最小化之后,在显示的时候,会弹出多个MessageBox对话框,你选择Yes或者No,还是如此,设置断点后可以发现程序不停地进入ButtonClicked函数。难道最小化最大化之后有什么特别的机制。求助啊,找了很多资料都没解决,与网上说的Timer响应无关对话框控件
消息映射如下:
ON_BN_CLICKED(IDC_RADIO_MALE, &CLoverMatchingView::OnClickedRadioMale)
ON_BN_CLICKED(IDC_RADIO_FEMALE, &CLoverMatchingView::OnClickedRadioFemale)
函数内容如下:
void CLoverMatchingView::OnClickedRadioMale()
{
// TODO: 在此添加控件通知处理程序代码
if(m_radio_gender)
return; if(!randomExecuted)
m_radio_gender=1;
else
{
if(IDYES==MessageBoxW(TEXT("请慎重!\r\n是否继续?"),
TEXT("警告"),MB_YESNO|MB_ICONWARNING))
{
m_radio_gender = 1;
randomExecuted=false;
}
else
{
CheckRadioButton(IDC_RADIO_FEMALE,IDC_RADIO_MALE,IDC_RADIO_FEMALE);
}
}
}void CLoverMatchingView::OnClickedRadioFemale()
{
// TODO: 在此添加控件通知处理程序代码
if(!m_radio_gender)
return; if(!randomExecuted)
m_radio_gender=0;
else
{
if(IDYES==MessageBoxW(TEXT("请慎重!\r\n是否继续?"),
TEXT("警告"),MB_YESNO|MB_ICONWARNING))
{
m_radio_gender = 0;
randomExecuted=false;
}
else
{
CheckRadioButton(IDC_RADIO_FEMALE,IDC_RADIO_MALE,IDC_RADIO_MALE);
}
}
}现在,运行时都没有什么问题,通过某个button响应函数把randomExecuted设置为true时候也可以运行,问题是,当我把窗口最小化之后,在显示的时候,会弹出多个MessageBox对话框,你选择Yes或者No,还是如此,设置断点后可以发现程序不停地进入ButtonClicked函数。难道最小化最大化之后有什么特别的机制。求助啊,找了很多资料都没解决,与网上说的Timer响应无关对话框控件
解决方案 »
- 线程里如何实时变更状态栏信息
- 熟悉费尔防火墙源码的高手进
- GDI+ : 加载图片资源的问题
- 类似ps的图形图象软件中是如何实现对封闭的线段内的区域进行颜色的填充的
- 数组中的每一个元素都在内存中有其对应的地址吗??
- (高分求)dll如何向调用它的exe返回字符串?
- H263关于ICSeqCompressFrame、ICDecompress的变态问题,和我的变态解决方法。无语了。。。来者有分!
- .
- 如何动态设置一Edit Control控件的长度!(有代码实现不直接设置属性?)
- ActiveSkin问题:groupbox控件会覆盖其上的控件显示,如何处理?
- 自动搜索文件
- USB复制文件控制以及禁止运行U盘上的程序
注释掉 看看。
是否有其它地方调用这个函数?、 RadioButton 的ID是否重复了???
最后,给出我只记得解决方案:在父窗口中截获所有的WM_LBUTTONDOWN消息,判断point是否在radio button上,再决定是否处理就这样问题就迎刃而解了
两个radio按钮,IDC_RADIO_FEMALE (group) IDC_RADIO_male 只需要关联一个变量。
int m_Sex;不用响应点击。