我想自绘单选按钮,在自定义按钮类中添加了WM_PAINT和BN_CLICKED的反射消息处理函数.
当对话框模态显示的时候没有问题,但是当他作为对话框栏显示的时候,这两个函数没有被调用,
请问是什么原因?如何解决? 谢谢~

解决方案 »

  1.   

    应该可以阿,通过子类化
    先取得radio指针pBtn,CMyButton m_btn;
    m_btn.SubClassWindow(pBtn->m_hWnd);
      

  2.   

    CDialogBar有很多消息不能自己处理,所以很难办,有时候使用ClassWizard定义的控件变量都不好使,最好使用GetDlgItem(ID_YOURCTRL)控制控件的行为!
      

  3.   

    CDialogBar有很多消息不能自己处理,所以很难办,有时候使用ClassWizard定义的控件变量都不好使,最好使用GetDlgItem(ID_YOURCTRL)控制控件的行为!
    完全同意!!!!!!!
      

  4.   

    先将消息映射到框架里,在由框架的Bar的句柄就可以了
      

  5.   

    下面的几篇文章应该可以解决你的问题
    http://dev.csdn.net/develop/article/48/article/48/48052.shtm
    http://www.codeguru.com/Cpp/W-D/dislog/dialogbars/article.php/c1871/
    http://www.codeguru.com/Cpp/W-D/dislog/ddxddv/article.php/c1997/
    msdn中的Q185672
    http://www.ccw.com.cn/htm/produ/special/vc/jiangzuo/01_9_11_20.asp
      

  6.   

    问题已解决,
    是通过在CMainFrame的OnCreate()函数中dialogbar的create语句后边
    加一句UpdataData(false);
    问题出现的原因可能是系统没有调用DoDataExchange()吧
    那就手工调用好了,呵呵