各位:
小弟刚学vc,在创建了个线程,在线程函数中用到CClientDC dc(this);
为什么提示错误?
错误如下:グローバル関数にアクセスするための 'this' ポインタがありません
小弟日语也不会,不知道啥意思
帮忙,谢谢!

解决方案 »

  1.   

    CClientDC只有在窗口类中才能使用。另外,反感日文。
      

  2.   

    MFC的线程才能调用MFC的东西还有,CClientDC   dc(this); 中,this你指得是什么?日语的意思说,全局函数访问的this指针是个空指针
      

  3.   

    就是普通的线程 线程中时显示图片:如下
       {
        CBMPView m_MBMPView;
        m_MBMPView.LoadBMPFile(_T("qinzhi.bmp"));
        CClientDC dc(this);
        m_MBMPView.ShowBMP(&dc,100,200);
       }
    我没有指定某个窗口,是不是需要定义一些东西啊
      

  4.   

    原来是实现单一的图片显示功能,用的是MFC工程。这句话
    {
            CBMPView   m_MBMPView;
            m_MBMPView.LoadBMPFile(_T( "qinzhi.bmp "));
            CClientDC   dc(this);
            m_MBMPView.ShowBMP(&dc,100,200);
    }
    是在调用对话框相应的时候添加的,好用。
    但是现在我想加载线程中,线程倒是创建成功,但是就是执行到那
    段就出现错误。我认为是实现单一功能的时候,那个this是默认挡墙窗口的
    现在可能是不指定它,this不知道是哪个窗口, 不知道如何改。谢谢各位
      

  5.   

    小弟实现单一功能是显示图片,用的是MFC工程 好用
    是在对话框响button中添加的那句话:
    {
            CBMPView   m_MBMPView;
            m_MBMPView.LoadBMPFile(_T( "qinzhi.bmp "));
            CClientDC   dc(this);
            m_MBMPView.ShowBMP(&dc,100,200);
          } 
    但是在多线程中,调用出错,线程是创建成功了,但是执行到那句话就有错误。
    我认为是不是在实现单一功能的时候,this默认知道是那个窗口句柄,而在实现
    多线程的时候,如果不指定this是哪个窗口的句柄,就出错了??那么如果是这样
    如何更改,谢谢各位!
      

  6.   

    你的this指向哪了?
    要先用AfxGetMainWnd( );获取主窗口的指针
      

  7.   

    你这个ShowBMP()可以定义为不带dc参数的啊,在你的CBMPView类里面画的时候再AfxGetMainWnd()去取得窗口指针,创建dc,不是更好吗?