MFC 中实现两个对话框 相对位置不变同时移动

1.创建2个对话框


CSendDlg send;


BOOL CTestTCPDlg::OnInitDialog()

{
	CDialog::OnInitDialog();

	SetWindowPos(&wndTop,250,250,400,200,SWP_SHOWWINDOW);
	send= new CSendDlg;
	send->Create(IDD_DIALOG_SEND);
	send->SetWindowPos(NULL,250+400,250,400,200,SWP_SHOWWINDOW);
	send->ShowWindow(SW_SHOW);
	return TRUE; 
}

2.重新OnMoving函数

void CTestTCPDlg::OnMoving(UINT fwSide, LPRECT pRect)

{
	CDialog::OnMoving(fwSide, pRect);

	int pox = pRect->left;
	int poy = pRect->top;
	send->SetWindowPos(NULL,pRect->left+400,pRect->top,400,200,SWP_SHOWWINDOW);
}

或者重写OnMove函数

void CTestTCPDlg::OnMove(int x, int y)
{
	CDialog::OnMove(x, y);
	if (send != NULL)
	{
			send->SetWindowPos(NULL,x+400-GetSystemMetrics(SM_CYFIXEDFRAME),
				y-GetSystemMetrics(SM_CYCAPTION)-GetSystemMetrics(SM_CYFIXEDFRAME),
				400,200,SWP_SHOWWINDOW);
	}
}

也就是 处理WM_MOVE WM_MOVING这两个消息.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值