在父窗口所在的屏幕上显示子窗口

Posted

技术标签:

【中文标题】在父窗口所在的屏幕上显示子窗口【英文标题】:Display child window on the screen where the parent window is located 【发布时间】:2012-12-19 14:27:32 【问题描述】:

C++ 我有一个可以从主窗口启动的模态子窗口。该应用程序在 Citrix 服务器上运行,当用户使用双显示器时,她可以将子窗口拖到辅助显示器上,Windows 会以某种方式保存这个位置。当她移动到具有单个显示器的工作站时,她抱怨应用程序冻结,而实际上子窗口不在屏幕上,并且可以通过一些组合键将其带到主显示器。有没有办法以编程方式强制子窗口始终在父窗口所在的屏幕上打开?

【问题讨论】:

技术上,第二个窗口是一个拥有的窗口,而不是一个子窗口,尽管术语经常被混淆。子窗口只能在其父窗口的客户区内绘制。 【参考方案1】:

您可以尝试调用CWnd::CenterWindow,这会将窗口定位在主监视器的中心(通常位于父窗口上方)。

【讨论】:

谢谢,我试试看。【参考方案2】:

您应该覆盖PreCreateWindow 并修改CREATESTRUCT 中的相应条目以强制窗口进入可见区域。可以在MSDN(“在多个显示器上定位对象”)找到定位窗口的指南。

【讨论】:

以上是关于在父窗口所在的屏幕上显示子窗口的主要内容,如果未能解决你的问题,请参考以下文章

如何在WPF中单击菜单项时在父窗口下打开子窗口?

jquery,iframe,如何在父窗口监听,子窗口发生改变时,父窗口获取子窗口的值

[QT]MdiArea子窗口的管理,拦截子窗口关闭消息并在父窗口处理

使用 Qt 将 linux 子窗口保持在父窗口之上

onclick 打开子窗口并提交表单

如果通过点击JS,让新页面在父窗口打开.