如何为一个CButton类的对象建立消息映射?
CMainFrame::OnCreate()
{
//...
CRect rc;
GetClientRect(&rc);
rc.left=rc.right/2-50;
rc.top=rc.bottom/2-13;
rc.right=rc.left+100;
rc.bottom=rc.top+25; // rc 大概就是客户区的中心位置
if(!m_wndButton1.Create(
"button1", WS_CHILD|WS_VISIBLE|BS_DEFPUSHBUTTON, rc, this, 
ID_BUTTON1))
{
TRACE0("Failed to create button1\n");
return -1;
}
//...
}
我这样做的button1怎么就像一个图片一样不能按?
然后我加入了
ON_BN_CLICKED(ID_BUTTON1, OnButton1)
//...
afx_msg void OnButton1()
//...
void CMainFrame::OnButton1()
{ AfxMessageBox(""); }
但是,结果还是一样的。怎么回事?

解决方案 »

  1.   

    你  在 view 里面试试看  
      如果不行,,可以用 spy看看你的 button  有什么问题。
      

  2.   

    那么我这么创建的button到底有没有错呢?
    换句话说,你认为可能是什么原因?
      

  3.   

    从CButton派生自己的CMyButton类,用class wizard在CMyButton类中加入WM_LBUTTONDOWN消息映射
      

  4.   

    创建的过程没有问题!但是位置不对!不能在CMainFrame上创建动态按钮!只有在CFormView或CDialog上创建!
      

  5.   

    谢谢各位,我在view里创建已经可以了。
    但是为什么在CMainFrame里不行呢?