1.我用VC6.0 MFC 建立了个单文档,然后视图我把它分割了2部分。从中间分隔开的。
 一个是从CListView 继承出来的。用于数据显示,就一条一条的数据集。
 另一个就是直接用的XXview。
        CRect rect;
GetClientRect(&rect);
        m_wndSplitter.CreateStatic(this,2,1);
        m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CShowListView),CSize(rect.Width(),rect.Height()-        rect.Height()/5),pContext);
      m_wndSplitter.CreateView(1,0,RUNTIME_CLASS(CDataListenView),CSize(rect.Width(),rect.Height()/5),pContext);
 现在问题出来了。
   1.我在LISTVIEW中得到点击的一条记录,然后发送给CDataListenView。想在他的范围内通过textout 输出.
结果发现, CShowListView *pSView= (CShowListView*)pFram->GetActiveView();///得到编辑区域指针
                CDataListenView *pDView= (CDataListenView *)pFram->GetActiveView();///得到编辑区域指针
pSView 跟pDView 得到的指针是一样的。
结果 CRect rect;
pDView->GetClientRect(&rect);
        int iTop =  rect.top;
int iLeft=  rect.left;
int ibottom=rect.bottom;
int iRight= rect.right;
        CDC *pDC =pDView->GetDC();
pDC->TextOut(iLeft+10,ibottom-50,"xxxxxxxxxxxxxxxxxxxxxxxxx");
  显示的结果是在CShowListView 的范围内的如何才能textout在CDataListenView  呢????
着急啊···

解决方案 »

  1.   

    CShowListView *pSView= (CShowListView*)pFram->GetActiveView();///得到编辑区域指针
    CDataListenView *pDView= (CDataListenView *)pFram->GetActiveView();///得到编辑区域指针显然是一样的啊!你只是强制转换成不同的指针。
    你应该用CSplitterWnd::GetPane来取得两个view
      

  2.   

    最好是把你绘图的代码放到CDataListenView类的OnDraw函数中。需要绘制的时候发送消息过去就可以了
      

  3.   

    是通过CSplitterWnd来分割的吗?