ONMOUSEMOVE 不停的触发
CTreeView 拖拽事件 左键按下后即使鼠标没动也不停的触发OnMouseMove事件
void navtreeview::OnLButtonDown(UINT Flags, CPoint point)
{
if((m_selecteditem=GetTreeCtrl().HitTest(point))!=NULL)
m_lbuttondown=TRUE;
CTreeView::OnLButtonDown(Flags,point);
}
void navtreeview::OnMouseMove(UINT Flags, CPoint point) //一直不停的执行
{
if(m_lbuttondown==TRUE)
{
m_dragging=TRUE;
::SetCursor(::AfxGetApp()->LoadCursor(IDC_CURSOR1));
CPoint pt(point);
ClientToScreen(&pt);
CWnd* pwnd=this->WindowFromPoint(pt);
if(pwnd!=this)
{
m_lbuttondown=FALSE;
m_dragging=FALSE;
::SetCursor(::AfxGetApp()->LoadStandardCursor(IDC_ARROW));
}
else
{
HTREEITEM hitem;
if((hitem=GetTreeCtrl().HitTest(point))!=NULL)
GetTreeCtrl().SelectItem(hitem);
}
}
else
::ReleaseCapture();
CTreeView::OnMouseMove(Flags,point);
}
void navtreeview::OnLButtonUp(UINT Flags, CPoint point)//即使鼠标左键弹起,也根本执行不到这个消息
{
if(m_dragging==TRUE)
{
}
m_lbuttondown=FALSE;
m_dragging=FALSE;
::SetCursor(::AfxGetApp()->LoadStandardCursor(IDC_ARROW));
CTreeView::OnLButtonUp(Flags,point);
}
为什么没有移动鼠标也会有OnMouseMove不停的执行呢?