MFC多文档,窗体分割为了两部分,左边视图继承的CFormView

lly725 2015-04-26 11:43:24
大家好,小弟创建了一个MFC基于多文档的工程,将窗体分割为了左右两部分,左边视图继承的CFormView类,右边视图继承的CView类。现在想对左边的视图进行处理,具体想实现的功能如下:
1.左边视图显示的是对话框资源(暂且称为父对话框,已显示)
2.点击这个父对话框资源的一个button,显示出一个子对话框(子对话框的大小与父对话框是等大的,在资源里面已经创建)。现在希望子对话框显示的位置刚好覆盖父对话框,这个该怎么做呀?希望大大们指导一下,感激不尽!
目前的进度是子对话框可以弹出来,但是位置不对。

父对话框的声明
class CParentView: public CFormView;

点击父对话框的一个按钮,显示子对话框的处理代码
void CParentView::OnBnClickedButton2()
{
CChildDlg* pDlg = new CNeiGuanDlg;
CRect rect;
GetClientRect(rect);
pDlg->SetWindowPos(0, rect.left, rect.top, rect.Width(), rect.Height(), SWP_NOSIZE|SWP_SHOWWINDOW);
pDlg->ModifyStyle(0, WS_TABSTOP, 0);
}
小弟猜测是Rect的问题,不知道怎么获取和设定这个Rect,才能使得弹出的子对话框刚好覆盖父对话框的位置。请大神们给点指导吧,谢谢~~
...全文
240 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lly725 2015-04-27
  • 打赏
  • 举报
回复
引用 3 楼 lx624909677 的回复:
就是GetWindowRect不是获得到窗口相对于屏幕的坐标了吗,然后用MoveWindow来移动下试试
非常感谢大神的帮助,此问题已经解决~
lx624909677 2015-04-26
  • 打赏
  • 举报
回复
位置不对就说明你计算的坐标有问题呀,先获得父对话框的先对与整个屏幕的位置,然后移动子对话框的时候看下移动的实际坐标是否和之前获得的位置是相同的
lx624909677 2015-04-26
  • 打赏
  • 举报
回复
就是GetWindowRect不是获得到窗口相对于屏幕的坐标了吗,然后用MoveWindow来移动下试试
lly725 2015-04-26
  • 打赏
  • 举报
回复
点击button后的处理代码
引用 1 楼 lx624909677 的回复:
位置不对就说明你计算的坐标有问题呀,先获得父对话框的先对与整个屏幕的位置,然后移动子对话框的时候看下移动的实际坐标是否和之前获得的位置是相同的
谢谢提示,修改后的button点击处理函数 void CParentView::OnBnClickedButton2() { CChildDlg* pDlg = new CChildDlg; CRect rect; GetWindowRect(&rect); ScreenToClient(&rect); pDlg->SetWindowPos(0, rect.left, rect.top, rect.Width(), rect.Height(), SWP_NOSIZE|SWP_SHOWWINDOW); pDlg->ModifyStyle(0, WS_TABSTOP, 0); } 父窗口和子窗口的位置还是不能完全重合。 ‘’先获得父对话框的先对与整个屏幕的位置“:GetWindowRect这个函数用的对吗? ”移动子对话框的时候看下移动的实际坐标是否和之前获得的位置是相同的”这句话没有看明白~~,后面调用SetWindowPos的时候,与前面取得的这个rect的坐标都是一致的,rect是个局部变量

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧