AfxGetApp()->GetMainWnd()->GetActiveView();解决,这只是得到指针,如果要看到你视里的函数,还要进行强制转换

解决方案 »

  1.   

    GetSafeHwnd();
    可以取得窗口的句柄。
      

  2.   


    GetSafeHwnd();
    那和 this 有什么不同呢?
    我用 this 是时候总是错
      

  3.   

    this 是指针;
    this ->GetSafeHwnd();是句柄;
    两者是不同的。
      

  4.   

    这要看你的程序是SDI、MDI或是对话框了
      

  5.   

    代码是这样的:void CMyView::ShowMsg(const char* msg,...)
    {
             CClientDC dc(this);
    dc.TextOut(20,20,msg); 
    }帮忙看看啊。
      

  6.   

    这个THIS绝对是正确的,看看其他地方.
      

  7.   

    那我在其他类的实现里这样写:CMyView *m_View;在
    m_View->ShowMsg();时就出错了。不知道为何呢?
      

  8.   

    那我在其他类的实现里这样写:CMyView *m_View;在
    m_View->ShowMsg();时就出错了。不知道为何呢?
      

  9.   

    试一下下面这段代码:POSITION pos=GetFirstViewPosition();
    CMyView* m_View=(CMyView*)GetNextView(pos);
    m_View->ShowMsg();
      

  10.   

    "
    CMyView *m_View;在
    m_View->ShowMsg();时就出错了。不知道为何呢?"
    m_View虽是指向CMyView 的指针,但不是指向当前运行的CMyView 对象
    你要作的就是让他指向当前运行的CMyView 对象
    再m_View->ShowMsg();
      

  11.   

    其实我觉得你没必要定义一个CMyView指针,在你用到的时候用函数获取指针多好.
    个人意见,仅供参考
      

  12.   

    guopo(guopo)你说的我不理解,怎么用呢?
      

  13.   

    若是SDI,用(CFrameWnd*)GetParentFrame()得到主框架窗口的指针
    用CFrameWnd::GetActiveView ()得到CView POINTER
    THEN U CAN GET THE HANDLE AS ABOVE.
      

  14.   

    同意楼上
    多半是你的m_view并没有事例话的CView对象,也就没有窗口,
    而你的showMsg函数中的dc(this);dc设备就没有创建成功,而又执行了
    dc.TextOut(20,20,msg); 出错
      

  15.   

    来个Demo 好吗。我刚才找了个好的东西。http://www.csdn.net/expert/topic/583/583701.xml?temp=.7878992