RADIO 控件的问题

caitian6 2009-06-30 03:03:46
RADIO控件 只能响应单击事件,无法响应双击事件??
怎么解决?
问题产生: 单击选择RADIO控件后,想用双击事件取消“选中”状态。 双击事件无法响应??
设置代码没有问题,如下,
((CButton*)GetDlgItem(IDC_RADIO1))->SetCheck(FALSE);
...全文
40 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Conry 2009-06-30
  • 打赏
  • 举报
回复
你如果一定要用RADIO的话,要添加一个成员变量BOOL m_flag;状态跟RADIO的状态一样


void Cldlg1Dlg::OnBnClickedRadio1()
{

CButton* p = (CButton*)GetDlgItem(IDC_RADIO1);


if(m_flag)
{
p->SetCheck(BST_UNCHECKED);
m_flag=FALSE;
}
else
{
m_flag=TRUE;
}

}



efeeler1925 2009-06-30
  • 打赏
  • 举报
回复
路过学习了!
caitian6 2009-06-30
  • 打赏
  • 举报
回复
哈哈,谢谢 !
牛人们都出来啦
spring203 2009-06-30
  • 打赏
  • 举报
回复
radio属于button的一种,楼主自己写个类派生CBuutton吧, 否则单击就会被选中(PreTranslateMessage都不好处理),很明显不符合要求。
Conry 2009-06-30
  • 打赏
  • 举报
回复
[Quote=引用楼主 caitian6 的帖子:]
RADIO控件 只能响应单击事件,无法响应双击事件??
怎么解决?
问题产生: 单击选择RADIO控件后,想用双击事件取消“选中”状态。 双击事件无法响应??
设置代码没有问题,如下,
((CButton*)GetDlgItem(IDC_RADIO1))->SetCheck(FALSE);
[/Quote]

为什么要用双击

你这种需求为什么不用CHECK BOX
oyljerry 2009-06-30
  • 打赏
  • 举报
回复
还是自己用PreTranslateMsg来捕获双击消息,自己判断..
skyxie 2009-06-30
  • 打赏
  • 举报
回复
对话框资源上,选中radio, 属性中Notify: True 就可以了~
快乐鹦鹉 2009-06-30
  • 打赏
  • 举报
回复
用PreTranslateMessage截取双击消息。判断Focus
caitian6 2009-06-30
  • 打赏
  • 举报
回复
ON_BN_DOUBLECLICKED(IDC_RADIO1, OnDoubleclickedRadio1)
映射了这消息,但设断点就是不进去, 奇怪了

void CTestDlg::OnDoubleclickedRadio1()
{
// TODO: Add your control notification handler code here
AfxMessageBox("双击");
((CButton*)GetDlgItem(IDC_RADIO1))->SetCheck(FALSE);




}
skyxie 2009-06-30
  • 打赏
  • 举报
回复
有!

直接在对话框只有选中radio, 右键属性-- 在属性面板上面点"control event"那个按钮(就是闪电形N)那个 处理 DOUBLECLICKED

或者手动添加:

.h
afx_msg void OnBnDoubleclickedRadio1();

.cpp

BEGIN_MESSAGE_MAP(CtttreeDlg, CDialog)
...
//}}AFX_MSG_MAP
ON_BN_DOUBLECLICKED(IDC_RADIO1, &CtttreeDlg::OnBnDoubleclickedRadio1)
END_MESSAGE_MAP()

void CtttreeDlg::OnBnDoubleclickedRadio1()
{
// TODO: Add your control notification handler code here
}

15,979

社区成员

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

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