控件给主窗口发送消息-直接调用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);
    
                }  
        } 
}                                         

  

posted @ 2023-05-08 17:27  曦花  阅读(27)  评论(0编辑  收藏  举报