MFC问题(高手进)
问:如何实现弹出的对话框相对的主窗口对话框,在主窗口对话框特定的位置显示?调用GetWindowRect()与GetClientRect()是不行的,因为他们返回的都是屏幕原点(0,0)的坐标。 展开
按照你的说法,你是不是已经添加了一个新的对话框类,而后调用子对话框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);