void MyThread(CClientDC dc)
{
dc.TextOut(100,100,"asdfasd");
}
void CTestComDlg::OnOK() 
{
CClientDC dc(this);
MyThread(dc);
}

解决方案 »

  1.   

    这样写试试:
         void MyThread(CDC* dc)
    {
    dc->TextOut(100,100,"asdfasd");
    }
    void CTestComDlg::OnOK() 
    {
    CClientDC dc(this);
    MyThread(&dc);
    }
      

  2.   

    CDC的派生类,只能传地址。不能按值传递。
      

  3.   

    使用引用就可以了。也就是:
    void MyThread(CClientDC& dc)
    {
    dc.TextOut(100,100,"asdfasd");
    }
    这是因为,当不使用引用时,调用MyThread(dc);时,系统会将参数dc复制
    一份,来执行函数MyThread,所以这时会要求调用构造函数CClientDC(const
    CClientDC& dc);而class CClientDC没有这样的构造函数,所以编译失败。
      

  4.   

    jishiping(JSP 季世平) 说得很清楚, 好!