我在CMyView中定义了一个按钮响应的函数,但似乎不能加CDC* pDC=GetDC();有什么方法可以GetDC呢?

解决方案 »

  1.   

    可以这么用啊,不过绘图操作最好放到OnDraw函数中
      

  2.   

    可以这么用,不过你的CMyView对象要有一个真实存在的窗口对象才行。
      

  3.   

    我定义了一个这样的函数:
    void CMyView::OnFill() 
    {
    // TODO: Add your command handler code here if(m_type==4 && m_currentobject)
    CDC* pDC=GetDC();
    m_currentobject->TianChong(m_color,pDC);
    else 
    MessageBox("请选择所要填充颜色的区域");
    }
    然后编译就有错:
    c:\documents and settings\administrator\桌面\绘图3\绘图view.cpp(566) : error C2065: 'pDC' : undeclared identifier
    c:\documents and settings\administrator\桌面\绘图3\绘图view.cpp(567) : error C2181: illegal else without matching if
    执行 cl.exe 时出错.绘图.exe - 1 error(s), 0 warning(s)
      

  4.   

    怪事,不应该会报这个错的,CWnd类中有GetDC这个成员函数啊,CMyView类应该是CView的子类,应该也会有GetDC这个函数的。
      

  5.   

    怪 我把CDC* pDC=GetDC();这句话移到if前面就调试通过了
      

  6.   

    晕!没看清,CDC *pDC=GetDC();这句是定义变量,放在if里面当然不行了。
    改成这样:
    void CMyView::OnFill()  
    {
    // TODO: Add your command handler code here
    CDC* pDC=NULL;
    if(m_type==4 && m_currentobject)
    pDC=GetDC();
    m_currentobject->TianChong(m_color,pDC);
    else  
    MessageBox("请选择所要填充颜色的区域");
    }