MFC问题(高手进)

我在一个基于对话框的MFC工程中,以一个对话框为主窗口,现在主窗口响应消息,弹出另一个独立的对话框问:如何实现弹出的对话框相对的主窗口对话框,在主窗口对话框特定的位置显示... 我在一个基于对话框的MFC工程中,以一个对话框为主窗口,现在主窗口响应消息,弹出另一个独立的对话框
问:如何实现弹出的对话框相对的主窗口对话框,在主窗口对话框特定的位置显示?调用GetWindowRect()与GetClientRect()是不行的,因为他们返回的都是屏幕原点(0,0)的坐标。
展开
 我来答
bhsbhsbhsbhs
2010-01-27 · 超过36用户采纳过TA的回答
知道答主
回答量:196
采纳率:0%
帮助的人:114万
展开全部

按照你的说法,你是不是已经添加了一个新的对话框类,而后调用子对话框class先create后ShowWindow显示,如果是,

movewindow函数就可以啦,建议使用主窗口getwindowrect函数(getclientrect也行,不过要做些坐标系变化麻烦)获取主窗口在屏幕中位置,而后做些简单坐标处理(确定显示在什么地方),最后movewindow

注意:

getclientrect函数----获取的是客户绘图区域坐标信息

getwindowrect函数/-----获取的是窗口在screen中的坐标信息 

我给你的图片显示的是将子窗口movewindow到主窗口右下角

就是你说的--在主窗口对话框特定的位置显示

代码(前提你已经有了子对话框变量)m_aa的类型就是你自己搞出来的的子对话框类

在主对话框OnInitDialog()中添加以下代码

 m_aa.Create(IDD_DIALOG1);

 m_aa.ShowWindow(SW_SHOW);

在相应按钮单击函数中添加

 CRect rt;

 GetWindowRect(&rt);

 rt.left=(rt.left+rt.right)/2;//放倒左下角

 rt.top=(rt.top+rt.bottom)/2;//简单坐标处理

 m_aa.MoveWindow(&rt);

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式