我下载了一个程序。在视图中调用工具栏按钮事件,比如一个工具栏按钮ID是IDT_CURVE,在View中把按钮与事件关联代码如下:
BEGIN_MESSAGE_MAP(CConferenceView, CView)
//{{AFX_MSG_MAP(CConferenceView)
ON_COMMAND(IDT_CURVE, OnCurve)
//}}AFX_MSG_MAP现在我想把这个按钮移到普通窗体中去,在View中怎么把按钮与事件关联?谢谢!!

解决方案 »

  1.   

    在普通窗体中接受消息
    然后把消息是呀sendmessage发送给你嘚
    view,最后在view里面响应就可以了
      

  2.   

    还有一个问题View很多地方都用到IDT_CURVE按钮控件资源,如:
    void CConferenceView::OnLButtonUp(UINT nFlags, CPoint point) 
    {
    if (m_nTool == TEXT_TYPE)//
    {
    return;
    }
    // TODO: Add your message handler code here and/or call default
    end.x=point.x;
    end.y=point.y;
    beg2=0;
    CDC* pDC = GetDC();
    CConferenceDoc* pDoc = GetDocument();
    switch(m_nMouseMode)
    {
    case IDT_LINE:
    case IDT_RECTANGLE:
    case IDT_ELLIPSE:
    case IDT_CIRCLE:
    case IDT_CURVE://这个地方怎么办?  if (((beg.x != end.x) || (beg.y != end.y))&& pic !=4 )
     TRY{
     if(m_usrCurrentObject)
     m_usrCurrentObject->Draw(pDC);}
     CATCH(CFileException,e)
    {
    CString strTemp;
    if(strTemp.LoadString (IDS_READERROR))
    AfxMessageBox(strTemp);
    }END_CATCH
    ::ClipCursor(NULL);//
    m_bDrawing = false;

    delete m_usrCurrentObject;
    m_usrCurrentObject = NULL;
    break;
    default:
    break;
    }
    if (pic == 3 )
    {
    long min = min(abs(end.x - beg.x), abs(end.y - beg.y));
    if( end.x < beg.x )
    end.x = beg.x - min;
    else
    end.x = beg.x + min;
    if( end.y < beg.y )
    end.y = beg.y - min;
    else
    end.y = beg.y + min;
    }
    if(pic!=4 && pic!=5)
    SendMsg(); ReleaseDC(pDC);  CView::OnLButtonUp(nFlags, point);
    }
      

  3.   

    只要(在按钮事件中)向主窗口发送WM_COMMAND消息(向视图发当然也可以,更直接),就可以触发视图类的响应,消息的wParam低字设为命令ID(IDT_CURVE)即可。
      

  4.   

    如果楼主是想在普通窗体中加一个新按钮,按下后,执行现在按钮的工作的话.方法是:在新按钮映射的click事件函数里,直接调用现在按钮的函数就好了.只要在新的窗口中得到VIew的指针,再用View指针调用原来按钮的函数即可.获取View的指针是很容易的.
      

  5.   

    我就是这个意思。我用下面这种方法获取视图指针,并调用了视图类的方法:
    CConferenceView *view;
     this->m_pView = view;
    m_pView->OnCurve();
    但是运行后点击按钮,程序马上崩溃!!我想是不是原来工具栏按钮ID:IDT_CURVE要做什处理?谢谢!!
      

  6.   

    你疯了?把自己的本来的View弄个野指针,不崩溃才有鬼呢
      

  7.   

    到现在我还是不清楚你的工程是什么样子的,你是不是想创建一个对话框,然后对话框中一个按钮,按这个按钮能触发View中的一个函数?