界面出现了奇怪的问题

Rafier 2005-07-29 02:47:32
我太菜了!出了问题后,百思不得其解,只有说“奇怪”二字。
大概是酱紫的:
SDI界面;
主界面CFormView;
CFormView上有一组CRiado Button,初始时都没有SetCheck;
点击其上任意一Button,弹出一相应的对话框,如果该对话框IDOK,该button就SetCheck,同时清空其它button的SetCheck,如果该对话框IDCANCEL,就恢复其它button的SetCheck(界面行为就像没点击该Button一样);
问题出现在这里:初始时都没有SetCheck,这时点击其上任意一Button,并对弹出的对话框IDCANCEL,这时这组CRiado Button都没有点上小黑点,现在最小化程序窗口,再最大化之,刚才弹出的对话框自动弹出,而且点IDOK或IDCANCEL之后,该对话框不停的出现!

不知为何?

但是修改程序,使得这组CRiado Button,总能保持有一个被SetCheck,就不出现上叙问题,点解?
...全文
212 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Rafier 2005-07-31
  • 打赏
  • 举报
回复
goodboyws(深夜不眠者):
请问有什么替代方案可以满足我的要求.
goodboyws 2005-07-29
  • 打赏
  • 举报
回复
BN_CLICK实际上相当于这么个动作
SendMessage(hWndDlg, WM_COMMAND, ID_xxx, (LPARAM)hWndRadio);
而SetCheck刚好也会产生同样的消息,所以就会出现你说的现象
goodboyws 2005-07-29
  • 打赏
  • 举报
回复
SetCheck产生了按钮点击的消息,最好不要这么干
Rafier 2005-07-29
  • 打赏
  • 举报
回复
说得简单些,就是使用正确的方法(没有不良反应的方法),使得单击Riado Button后该Riado Button前面没有小黑点标记。
我的方法:
void CPCSDView::OnBnClickedSectionRt()
{
........
if(mBOOL)
((CButton *)GetDlgItem(ID_SECTION_RT))->SetCheck(FALSE);
}
是有问题的!
快乐鹦鹉 2005-07-29
  • 打赏
  • 举报
回复
描述清楚需求,将源代码发到happyparrot@126.com,马上解决。

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧