16,471
社区成员
发帖
与我相关
我的任务
分享
void CDialogModalDlg::OnClickTree(NMHDR* pNMHDR, LRESULT* pResult) //单击事件
{
CPoint point;
UINT pflags;
GetCursorPos(&point);
m_Tree.ScreenToClient(&point);
HTREEITEM hitItem = m_Tree.HitTest( point, &pflags );
void CXXXDlg::OnNMClickXXX(NMHDR *pNMHDR, LRESULT *pResult)
{
CPoint pt;
UINT uFlag;
HTREEITEM hSelected;
GetCursorPos(&pt);
ScreenToClient(&pt);
HTREEITEM hItem = m_TreeCtrl.HitTest(pt, &uFlag);
hSelected = m_TreeCtrl.GetSelectedItem(); //得到被选中的节点
if( hItem && TVHT_ONITEMSTATEICON == uFlag ) //判断鼠标点击位置
{
if (!m_TreeCtrl.GetCheck(hSelected)) //选中
{
//......
}
else
{
//......
}
}
*pResult = 0;
}
//在void CXXXDlg::OnNMClickXXX(NMHDR *pNMHDR, LRESULT *pResult) 中:
DWORD dwPos = GetMessagePos();
CPoint point( LOWORD(dwPos), HIWORD(dwPos));
m_TreeCtrl.ScreenToClient(&point);
UINT uFlags=0;
HTREEITEM hItem = m_TreeCtrl.HitTest(point, &uFlags);
if(hItem!=NULL)
{
if(uFlags & TVHT_ONITEMSTATEICON) //点击的是节点前面的checkbox
{
m_TreeCtrl.SelectItem(hItem);
if (m_TreeCtrl.GetCheck(hItem))
{
TRACE(m_TreeCtrl.GetItemText(hItem));
... ...