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

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

 2007-03-17 21:59:38 来源:WEB开发网   
核心提示: CRect rc;GetClientRect(&rc);m_TreeCtrl.MoveWindow(&rc);在CCTreeControlBarView中,添加成员变量m_Title,树视控件在多文档中的使用(3),添加成员函数DrawRect(CDC *pDC);代码如下:void CC
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:控件 文档 使用

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