首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

CStatusBarEx继承CStatusBar后,重载OnMouseMove等鼠标事件,目的是模拟右下角的Gripper改变窗口大小效果,但改变不了。贴代码。

2012-03-12 
CStatusBarEx继承CStatusBar后,重载OnMouseMove等鼠标事件,目的是模拟右下角的Gripper改变窗口大小效果,但

CStatusBarEx继承CStatusBar后,重载OnMouseMove等鼠标事件,目的是模拟右下角的Gripper改变窗口大小效果,但改变不了。贴代码。
代码如下。怎样改才能像右下角的Gripper改变窗口大小效果?

void CStatusBarEx::OnMouseMove(UINT nFlags, CPoint point) 
{
CRect rect1;
GetClientRect(&rect1);

if(point.x >= rect1.right - 40 && point.x <= rect1.right - 20 && point.y >= rect1.top && point.y <= rect1.bottom)
{
m_bMouseEntered = TRUE;

SetCursor(m_hCursor);


if(m_bMousePressed)
{
CWnd* pWnd = AfxGetApp()->GetMainWnd();
if(pWnd && pWnd->GetSafeHwnd())
{
CRect rect1;
pWnd->GetWindowRect(&rect1);

rect1.right += (point.x - m_point.x);
rect1.bottom += (point.y - m_point.y);

pWnd->MoveWindow(&rect1);
pWnd->UpdateWindow();

m_point = point;

}
}
}

CStatusBar::OnMouseMove(nFlags, point);
}

void CStatusBarEx::OnLButtonDown(UINT nFlags, CPoint point) 
{
m_bMousePressed = TRUE;

if(m_bMouseEntered)
{
SetCursor(m_hCursor);
m_point = point;
}

CStatusBar::OnLButtonDown(nFlags, point);
}

void CStatusBarEx::OnLButtonUp(UINT nFlags, CPoint point) 
{
if(m_bMouseEntered)
{
SetCursor(m_hCursor);
m_point = point;
}

CStatusBar::OnLButtonUp(nFlags, point);
}


[解决办法]
http://blog.csdn.net/visualeleven/article/details/6223577

热点排行