偶正在学习VC,可是经常遇见一些问题,很是不爽。
这次,我利用向导生成了一个类似“资源管理器”的单文档框架。
然后,在LeftView下 创建 了一个CTreeCrl控件,不过它的好多消息都被屏蔽了,
现在,通过单击左键紧紧可以显示加亮,响应单击某个item时间,必须采用双击事件;而右键按下时,加亮“选中的”放开时,又恢复原来的选择,怎么回事??
那位仁兄也碰见过这样的问题,最好详细介绍一下解决方案!!
有谁知道,我也正想解决这问题,如何用鼠标右键也能选中某项?
右键可以。用hittest找到点中的item,SelectItem
非常感谢回复人: feiniaoliang(飞鸟良) ( ) 信誉:100
这样搞定了!!!
void CLeftView::OnRClick(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
CTreeCtrl& pTreeView = GetTreeCtrl();
MSG msg;
::GetMessage( &msg, m_hWnd, 0, 0 );
CPoint ptClickWindow;
ptClickWindow = msg.pt;
CPoint ptClickClient = ptClickWindow;
ScreenToClient( &ptClickClient );
UINT uFlags;
HTREEITEM hHitItem = pTreeView.HitTest( ptClickClient, &uFlags );
if(hHitItem != NULL )
{
pTreeView.SelectItem(hHitItem);
CMenu menu;
menu.LoadMenu(IDR_FORTREEVIEW);
CMenu* pM=menu.GetSubMenu(0);
if (pM!=NULL)
{
CPoint pt;
GetCursorPos(&pt);
pM->TrackPopupMenu(TPM_LEFTALIGN,pt.x,pt.y,this);
}
}
}