CMyButton派生自CButton,自己定义构造函数
CMyButton::CMyButton(CDC *DC,CPoint center,float radius,COLORREF color)
{
    CPen newPen;
    newPen.CreatePen(PS_SOLID, 1, color);
    CBrush brush;
    brush.CreateSolidBrush(color);
    CBrush *oldbrush=DC->SelectObject(&brush);
    CPen *oldPen = DC->SelectObject(&newPen);
    DC->Ellipse(center.x-radius,center.y-radius,center.x+radius,center.y+radius);
    DC->FloodFill(center.x,center.y,color);
    DC->SelectObject(oldPen);
    DC->SelectObject(oldbrush);
    newPen.DeleteObject();
    brush.DeleteObject();
}void CButtonView::OnDraw(CDC* pDC) //CButtonView派生自CFormView
{
    CPoint point(200,200);
    CMyButton button(pDC,point,50,RGB(255,0,0));
}
我想在这个自己生成的button中单击,就可以响应一个函数
void CMyButton::OnClicked() 
{
    // TODO: Add your control notification handler code here
    MessageBox("Hello");
}可是单击此button并不能做出反应,这是为什么?请高手指教!谢谢!

解决方案 »

  1.   

    不是这样用法的,你连Window都未创建(没有调用CMyButton::Create()),怎么可能在CMyButton中收到消息呢?
      

  2.   

    CMyButton::Create()
    应该放在哪里?
    怎么写?
    帮帮我
    小妹实在不行了!
      

  3.   

    动脑啊!CButton是怎么相应的?
      

  4.   

    你只是在视图中定义了一个BUTTON变量,并没有创建该按钮,CBUTTON是从视图类中继承过来的,所以应该这样:CMyButton button;
    button.Create(参数//记不清了,看MSDN);//然后在重写一下你需要的函数,即可.