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++时间很短,其中一定有很多不完善的地方请大家指出,或是大家有什么更好的方法,提供出来我将进一步完善。
更多精彩
赞助商链接