MFC怎么移动一个窗口让另一个窗口跟着移动,实现同步移动。

要详细的步骤,谢谢啦... 要详细的步骤,谢谢啦 展开
 我来答
0浮云追月0
2015-02-27 · TA获得超过266个赞
知道小有建树答主
回答量:159
采纳率:100%
帮助的人:100万
展开全部
挺简单的,就是在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);
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式