WEB开发网
开发学院软件开发VC VC++树视控件在多文档中的使用 阅读

VC++树视控件在多文档中的使用

 2007-10-05 20:22:27 来源:WEB开发网   
核心提示:CRect rc; GetClientRect(&rc); m_TreeCtrl.MoveWindow(&rc);在CCTreeControlBarView中,添加成员变量m_Title,VC++树视控件在多文档中的使用(3),添加成员函数DrawRect(CDC *pDC);代码如下:void CCTreeContr

CRect rc;
   GetClientRect(&rc);
   m_TreeCtrl.MoveWindow(&rc);

在CCTreeControlBarView中,添加成员变量m_Title,添加成员函数DrawRect(CDC *pDC);

代码如下:

void CCTreeControlBarView::DrawRect(CDC* pDC)
{
   CRect rect;
   pDC->Rectangle(100,100,400,400);
   rect.top=100;
   rect.left=100;
   rect.right=250;
   rect.bottom=250;
   pDC->DrawText(m_Title,rect,DT_CENTER);
}

在OnDraw函数中调用此函数;

再在应用程序类中加入视图类的指针,pView;在视图中重载OnInitUpdate()函数,其中对pView进行初始化。代码如下

void CCTreeControlBarView::OnInitialUpdate()
{
   CView::OnInitialUpdate();
   // TODO: Add your specialized code here and/or call the base class
   CCTreeControlBarApp *pApp=(CCTreeControlBarApp *)AfxGetApp();
   pApp->pView=this;
}

在MyTree类中添加左键单击函数OnLButtonDown()在函数中将通过单击树控中的节点,获得对应节点的文本标题。代码如下:

HTREEITEM hItem =HitTest(point, &m_uFlags);
//进行的是与运算,对于 二进制数来说都为1的情况下结果为1
if ( (m_uFlags&TVHT_ONITEMLABEL ))
{
    
   CCTreeControlBarApp *pApp=(CCTreeControlBarApp *)AfxGetApp();
   pApp->pView->m_Title=GetItemText(hItem);;
   pApp->pView->Invalidate(TRUE);
   SelectItem(hItem);
}

工程就设计到这里,运行后可以通过单击节点是在视图中显示对应节点的文本标注。

由于本人接触VC++时间很短,其中一定有很多不完善的地方请大家指出,或是大家有什么更好的方法,提供出来我将进一步完善。

上一页  1 2 3 

Tags:VC 控件 文档

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接