已知MFC树控件的节点,怎样发送一个鼠标左键单击的消息?
HTREEITEMhChild=m_treeDeviceList.GetChildItem(hItem);while(hChild){HTREEITEMhGrandson...
HTREEITEM hChild = m_treeDeviceList.GetChildItem(hItem);
while (hChild)
{
HTREEITEM hGrandson = m_treeDeviceList.GetChildItem(hChild);
while (hGrandson)
{
hGrandson = m_treeDeviceList.GetNextSiblingItem(hGrandson);
}
hChild = m_treeDeviceList.GetNextSiblingItem(hChild);
}
这是遍历的源码,大神帮我看下怎么点击那个hChild。 展开
while (hChild)
{
HTREEITEM hGrandson = m_treeDeviceList.GetChildItem(hChild);
while (hGrandson)
{
hGrandson = m_treeDeviceList.GetNextSiblingItem(hGrandson);
}
hChild = m_treeDeviceList.GetNextSiblingItem(hChild);
}
这是遍历的源码,大神帮我看下怎么点击那个hChild。 展开
1个回答
展开全部
是想让某个节点被选中? 还是就是为了模拟鼠标?
选中的话,可以用
CTreeCtrl::SelectItem
BOOL SelectItem(
HTREEITEM hItem
);
模拟的话,就是 mouse_event
更多追问追答
追问
我是在初始化遍历时获取的节点,要起到的效果是初始化时单击一次找到的节点。
追答
hResult = m_pWin->PostMessage(WM_LBUTTONDOWN, MK_LBUTTON, m_lp);
hResult = m_pWin->PostMessage( WM_LBUTTONUP, MK_LBUTTON, m_lp);
也可以直接发送消息,代码仅供参考,关键是要算对坐标值。
也可以用 SPY++抓一下消息,看你发送的和真正的点击有什么区别。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询