控件给主窗口发送消息-直接调用onmousemove
class CTitleButton : public CBCGPButton
{
DECLARE_DYNAMIC(CTitleButton)
public:
CTitleButton();
virtual ~CTitleButton();
protected:
DECLARE_MESSAGE_MAP()
public:
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
};
IMPLEMENT_DYNAMIC(CTitleButton, CBCGPButton)
CTitleButton::CTitleButton()
: CBCGPButton()
{
}
CTitleButton::~CTitleButton()
{
}
BEGIN_MESSAGE_MAP(CTitleButton, CBCGPButton)
ON_WM_MOUSEMOVE()
END_MESSAGE_MAP()
void CTitleButton::OnMouseMove(UINT nFlags, CPoint point)
{
CWnd* pParent = GetParent();
if (pParent)
{
pParent->SendMessage(WM_MOUSEMOVE, nFlags, MAKELPARAM(point.x, point.y));
}
CBCGPButton::OnMouseMove(nFlags, point);
}
主窗口中的OnMouseMove如下调用:
void CDlgMain::OnMouseMove(UINT nFlags, CPoint point)
{
static CPoint PrePoint = CPoint(0, 0);
if(MK_LBUTTON == nFlags)
{
if(point != PrePoint)
{
*****
CPoint ptTemp = point - PrePoint;
GetMainWnd()->GetWindowRect(&rcWindow);
******
rcWindow.OffsetRect(ptTemp.x + ioff, ptTemp.y);
GetMainWnd()->MoveWindow(&rcWindow);
}
}
}

浙公网安备 33010602011771号