展开全部
挺简单的,就是在A窗口中把B窗口的hand传过来,在OnMove中触发移动事件时,B窗口不停的跟的走就行,主要的api有:getclientrect,setwindowpos
追问
我是这么想的,可是我那个窗口是在触发OnLbuttondown的时候鼠I标移动,那B窗口用什么一起移动呢
追答
说到底不管你在哪里触发事件,只要是MFC点击了窗口移动就会进OnMove里,你在OnMove不停的取当前窗口的位置,然后相对于当前窗口去setwindowpos另一个窗口,不就一直同步了么
在A窗口类中:
bool m_bBtnDn;并初使化为false
LRESULT WindowProc( UINT message, WPARAM wParam, LPARAM lParam )
{
switch(message)
{
case WM_MOVING:
{
if(m_bBtnDn)
{
CRect rtWnd;
GetClientRect(&rtWnd);
ClientToScreen(&rtWnd);
::SetWindowPos(B窗口句柄, NULL, rtWnd.right, rtWnd.top, 0, 0, SWP_SHOWWINDOW | SWP_NOSIZE);
}
else
{
m_bBtnDn = false;
}
}
break;
case WM_NCLBUTTONDOWN:
m_bBtnDn = true;
break;
default:
break;
}
return CDialog::WindowProc(message, wParam, lParam);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询