滑鼠經過時出現下拉選單,移走后選單消失,如何實作,最好有代碼示例
uj5u.com熱心網友回復:
void MyButton::OnMouseMove(UINT nFlags, CPoint point)
{
if(!m_tracking)
{
TRACKMOUSEEVENT tme;
tme.cbSize = sizeof(tme);
tme.dwFlags = TME_HOVER|TME_LEAVE;
tme.dwHoverTime =1;
tme.hwndTrack = m_hWnd;
m_tracking = _TrackMouseEvent(&tme);
}
//
#if 1
if(MK_LBUTTON==nFlags)
{
CRect rc;
GetClientRect(&rc);
MapWindowPoints(GetParent(),&rc);
MapWindowPoints(GetParent(),&point,1);
MoveWindow(point.x-m_MouseLast.x, point.y-m_MouseLast.y, rc.Width(), rc.Height());
}
#endif
}
LRESULT MyButton::OnMouseLeave(WPARAM wParam, LPARAM lParam)
{
//afxDump << "leave\n" ;
if(m_hover)
{
m_hover = false;
m_tracking = FALSE;
Invalidate();
}
return 0;
}
//
LRESULT MyButton::OnMouseHover(WPARAM wParam, LPARAM lParam)
{
//afxDump << "hover\n" ;
if(!m_hover)
{
m_hover = true;
m_tracking = FALSE;
Invalidate();
}
return 0;
}
uj5u.com熱心網友回復:
m_MouseLast,這個哪來 的uj5u.com熱心網友回復:
void MyButton::OnLButtonDown(UINT nFlags, CPoint point)
{
// transform left-top to point
CRect rc;
GetClientRect(&rc);
MapWindowPoints(GetParent(),&rc);
MapWindowPoints(GetParent(),&point,1);
m_MouseLast.x=point.x-rc.left;
m_MouseLast.y=point.y-rc.top;
// afxDump << m_MouseLast << "\n";
//
CButton::OnLButtonDown(nFlags, point);
}
uj5u.com熱心網友回復:
系結MouseOver和MouseLeave觸發事件uj5u.com熱心網友回復:
選單消失是指下拉選單識訓那種,不是真正的丟失選單if(MK_LBUTTON==nFlags)
{
CRect rc;
GetClientRect(&rc);
MapWindowPoints(GetParent(),&rc);
MapWindowPoints(GetParent(),&point,1);
MoveWindow(point.x-m_MouseLast.x, point.y-m_MouseLast.y, rc.Width(), rc.Height());
}
這段代碼把選單弄沒了
uj5u.com熱心網友回復:
滑鼠點一下,下拉選單彈出,然后滑鼠移動到其他按鈕,彈出的選單識訓,移動到那個按鈕,那個按鈕選單彈出uj5u.com熱心網友回復:
論壇的搜索功能怎么不能按vc,vb,jv板塊來搜索呢轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/126418.html
標籤:界面
上一篇:一個關于WaitForMultipleObjects() 的問題,望賜教!
下一篇:關于clistctrl
