父方调整大小时子方不调整大小[英] Child not Resizing when parent Resize

问题描述

我正在使用一个对话框并在其 OnInitDialog() 上,在运行时创建另一个无模式对话框,对话框运行良好,但是当父窗口调整大小时,子窗口(无模型对话框)不随父窗口移动.请有人帮助如何使子窗口(无模型对话框)与父窗口一起移动?

[编辑]代表 OP
非常感谢所有回答我的问题的人,最后我实现了所需要的.
我只是使用 ClientToScreen() 函数根据父窗口获取坐标,并且工作正常.
抓住下面的代码

void CParentDialog::OnMove(int x, int y){CDialogEx::OnMove(x, y);右转;GetClientRect(&rt);ClientToScreen(&rt);if(::IsWindow (m_pModelles->m_hWnd )){m_pModelles->SetWindowPos(NULL,rt.left+214,rt.bottom-220,(rt.right-10)-(rt.left+214,222,SWP_SHOWWINDOW|SWP_NOOWNERZORDER|SWP_NOACTIVATE);}}

推荐答案

无模式对话框不直接连接到父级,因此当父级移动或调整大小时不会发出信号.当这些事件发生时,您将需要添加一些逻辑来向其发送消息.

默认情况下,对话框不停靠在其父窗口上.如果你想实现它,你可以添加 OnSize() 和 OnMove() 处理程序到你的父窗口来发送 WM_SIZE 和 WM_MOVE 消息到子对话框.

这也可以在 调整大小 父窗口时处理子窗口的移动(这是非同寻常的行为).

本文地址:https://www.itbaoku.cn/post/1394779.html