DoModal()对话框后在桌面上移动不移出父对话框的界面呢 DoModal()对话框后在桌面上移动不移出父对话框的界面呢就是对话框在桌面用鼠标不能移出父窗口的边界. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在子对话框中捕获窗口移动消息(WM_MOVING),并且判断是否已经移出了父窗口的区域,如果是,则设置相应的矩形就可以防止窗口移出去,可以看看MSDN void OnMoving( UINT nSide, LPRECT lpRect );在这个函数中如果你发现子窗口要移出父窗口了,就把lpRect指向的矩形设置成上次窗口所在的矩形就可以了。注意,矩形的坐标是相对于屏幕的。 代码:下面是主对话框打开子对话框按钮代码:void CTest0424Dlg::OnButton5() { // TODO: Add your control notification handler code here // 获取主对话框坐标 CRect rect; GetWindowRect( rect ); /////// CChild dlg; // 子对话框类中记住主对话框坐标 dlg.m_fatherRect = rect; dlg.DoModal();}下面是子对话框类的两个成员变量:public: CRect m_lastRect; // 子对话框上一次坐标 CRect m_fatherRect; // 保存了主对话框的坐标下面是子对话框 OnMoving 函数代码:void CChild::OnMoving(UINT nSide,LPRECT lpRect ) { CDialog::OnMoving(nSide,lpRect); // TODO: Add your message handler code here // 获取子对话框正要移动的坐标 CRect rect( lpRect ); // 关键地方 // CRect::PtInRect 函数可以为我们判断 // 关键在一个左上,一个右下点 if( m_fatherRect.PtInRect(rect.TopLeft()) && m_fatherRect.PtInRect(rect.BottomRight()) ) m_lastRect = rect; else *lpRect = m_lastRect;} sdk 下怎样动态给对话框增加滚动条? 这个方法可以做到吗?把按钮画到CImage 串口数据的处理问题 谢谢 急寻VC强人,帮我看懂一个大的系统程序,哪位高手不吝赐教啊,小女子不胜感激不胜感激啊 救命 ,画复合多边形 !!!要写一个类似于blog客户端的界面。主要有树控件和list列表关联起来,请指点一下???? 如何对控制台console程序输入输出做钩子? (给高分)Vc改如何学?? 请教有VC开发Asp的Server端组件的高手 ListView,有脾气. CToolTipCtrl 点击按钮后显示提示 Skinmagic好用吗?用它能做下拉菜单的皮肤吗?
UINT nSide,
LPRECT lpRect
);
在这个函数中如果你发现子窗口要移出父窗口了,就把lpRect指向的矩形设置成上次窗口所在的矩形就可以了。注意,矩形的坐标是相对于屏幕的。
{
// TODO: Add your control notification handler code here // 获取主对话框坐标
CRect rect;
GetWindowRect( rect );
/////// CChild dlg; // 子对话框类中记住主对话框坐标
dlg.m_fatherRect = rect; dlg.DoModal();
}
下面是子对话框类的两个成员变量:public:
CRect m_lastRect; // 子对话框上一次坐标
CRect m_fatherRect; // 保存了主对话框的坐标下面是子对话框 OnMoving 函数代码:void CChild::OnMoving(UINT nSide,LPRECT lpRect )
{
CDialog::OnMoving(nSide,lpRect);
// TODO: Add your message handler code here // 获取子对话框正要移动的坐标
CRect rect( lpRect ); // 关键地方
// CRect::PtInRect 函数可以为我们判断
// 关键在一个左上,一个右下点
if( m_fatherRect.PtInRect(rect.TopLeft()) && m_fatherRect.PtInRect(rect.BottomRight()) )
m_lastRect = rect;
else
*lpRect = m_lastRect;
}