16,472
社区成员
发帖
与我相关
我的任务
分享
void CTextView::OnMouseMove(UINT, CPoint point)
{
CRect rt;
GetClientRect(&rt);
CSize sizeclient, sizebar;
GetTrueClientSize(sizeclient, sizebar);
rt.right = sizeclient.cx; //获取真实的View宽度,包括水平ScrollBar
rt.bottom = sizeclient.cy; //获取真实的View高度,包括竖直ScrollBar
TRACKMOUSEEVENT tme;
tme.cbSize = sizeof(TRACKMOUSEEVENT);
tme.dwFlags = TME_HOVER | TME_LEAVE; //跟踪鼠标的行为
tme.dwHoverTime = 10;
tme.hwndTrack = m_hWnd;
if (!_TrackMouseEvent(&tme))
_cprintf("Track Error!\n");
//判断Point是否在rt的范围内,m_ScrollShow仅为一个标示该View是否显示ScrollBar的标示位
if (rt.PtInRect(point) && m_ScrollShow == FALSE){
CSize temp(400, 500);
SetScrollSizes(MM_TEXT, temp);
m_ScrollShow = TRUE;
return;
}
else if (!rt.PtInRect(point)){
_cprintf("In CTextView::OnMouseMove Hide Bar!!!!!!!!!\n");
CSize temp(0, 0);
SetScrollSizes(MM_TEXT, temp); //让ScrollBar消失,把尺寸变为0
m_ScrollShow = FALSE;
return;
}
return;
}
void CTextView::OnMouseLeave(){
CSize temp(0, 0);
SetScrollSizes(MM_TEXT, temp); //若鼠标离开CTextView,则让ScrollBar的尺寸变为0
m_ScrollShow = FALSE;
return;
}