树控件的双击响应

王朝vc·作者佚名  2006-01-17
窄屏简体版  字體: |||超大  

树控件的双击响应

吉林大学 李健

下载本文示例代码

ClassWizard为CTreeCtrl(树控件)添加的NM_DBLCLK(双击)消息的响应函数中带有一个NMHDR * 型指针形参:

OnDblClkTree(NMHDR* pNMHDR, LRESULT* pResult)

这个陌生的指针类型常使初用树控件的编程者陷入迷茫之中。实际上我们完全不理会它,也可以实现树控件的双击响应,即在OnDblClkTree( )函数中调用树控件的成员函数CTreeCtrl::GetSelectedItem(

)以获取树控件的子项句柄HTREEITEM,得到此句柄后,我们便可用下列成员函数获取子项各种有用信息:

CTreeCtrl::GetItemData( )、

CTreeCtrl::GetItemHeight( )、

CTreeCtrl::GetItemImage( )、

CTreeCtrl::GetItemRect( )、

CTreeCtrl::GetItemState( )、

CTreeCtrl::GetItemText( )。

例程运行结果如下图所示:

示例代码如下:class CTreeCtrlDlg : public CDialog

{

…………

public:

HTREEITEM m_hTreeItem;

CImageList m_ImgLst;

// Dialog Data

//{{AFX_DATA(CTreeCtrlDlg)

enum { IDD = IDD_TREECTRL_DIALOG };

CTreeCtrlm_wndTree;//与对话框中树控件相关联

//}}AFX_DATA

// Implementation

protected:

afx_msg void OnDblClkTree(NMHDR* pNMHDR, LRESULT* pResult);

…………

};

void CTreeCtrlDlg::OnDblClkTree(NMHDR* pNMHDR, LRESULT* pResult)

{

m_hTreeItem = m_wndTree.GetSelectedItem();

//以GetItemText()函数为例:

CString S1 = m_wndTree.GetItemText(m_hTreeItem);

AfxMessageBox("You have selected "+S1);

*pResult = 0;

}

(全文完)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航