在鼠标右击消息中,先要取得鼠标右击的项目位置,然后在选择项目:
UINT uFlags;
HTREEITEM htItem = m_pTreeCtrl->HitTest(point, &uFlags);
if( (htItem != NULL) && (uFlags & TVHT_ONITEM))
{
m_pTreeCtrl->Select(htItem, TVGN_CARET);
......
}
UINT uFlags;
HTREEITEM htItem = m_pTreeCtrl->HitTest(point, &uFlags);
if( (htItem != NULL) && (uFlags & TVHT_ONITEM))
{
m_pTreeCtrl->Select(htItem, TVGN_CARET);
......
}
解决方案 »
- DLL 接收消息
- 大家给推荐一种开发自定义控件的方法
- 请教关于memcpy用法
- 想要MSDN January 2005的朋友一起下载呀!
- 求教:如何向Win2000的打印机中设置自定义纸型?
- 各位大侠, 如何用VC定义数据库中表的主键,帮忙呀!
- 俺新建了一个网站www.bit0.net欢迎支持
- 我想使程序中的一段代码在debug版中不编译,而在release版中编译,怎么做?(在线等)
- edit的输入问题//OnChar与OnEnChange对不上号呢。。。
- 如何获得一个单文档工程的视图类指针,在线程中使用(TK)
- 北京的高人们留个oicq有时间交流一下
- GetProcAddress()的调用
{
// TODO: Add your control notification handler code here
CPoint pt;
GetCursorPos(&pt);
CPoint pt1=pt;
ScreenToClient(&pt1);
UINT uFlag;
HTREEITEM nHitItem =GetTreeCtrl().HitTest(pt1,&uFlag);
if(nHitItem!=NULL)
{
GetTreeCtrl().SelectItem(nHitItem);
}
*pResult = 0;
}
UINT nFlag;
CPoint Point;
HTREEITEM Item;
GetCursorPos( &Point );
*1*ScreenToClient( &Point );
*2*MapWindowPoints( &m_Tree, &Point, 1 );
Item = m_Tree.HitTest( Point, &nFlag );好像只要用*1*就可以了!