OpenDialog在alt + tab的模态窗口后面

达斯曼

我的应用程序有几种MDI形式,其中一种是具有详细信息的子模式形式。因此,当我从MDI表单中打开此模式表单时,单击“浏览”按钮并创建OpenFileDialog。一切正常,除非我按了ALT + TAB。当我按ALT + TAB键,然后按ALT + TAB键回到我的应用程序时,我看到OpenFileDialog(也是消息框)在我的模态窗口后面,但在MDI窗口的前面。没有StayOnTop或类似的东西。将OpenDialog带回所有窗口的唯一方法是在应用程序中添加第二个ALT + TAB。这将导致Dialog在所有其他窗口的前面弹出。

我该怎么做才能防止Dialog隐藏在我的Modal表单后面?有什么建议吗?

我使用的是delphi7,不能使用更高的版本

大卫·赫弗南(David Heffernan)

我假设该问题与窗口所有权有关。在Delphi 7中,文件对话框将隐藏的应用程序窗口作为其窗口所有者。但是窗口所有者确实需要成为活动表单的窗口。

有很多方法可以解决此问题,但最简单的方法是像这样子化TOpenDialog并覆盖它TaskModalDialog

function TMyOpenDialog.TaskModalDialog(DialogFunc: Pointer;
  var DialogData): LongBool;
var
  hwndOwner: HWND;
begin
  hwndOwner := Screen.ActiveForm.Handle;
  if hwndOwner = 0 then
    hwndOwner := Application.MainForm.Handle;
  if hwndOwner = 0 then
    hwndOwner := Application.Handle;
  TOpenFilename(DialogData).hwndOwner := hwndOwner;
  Result := inherited TaskModalDialog(DialogFunc, DialogData);
end;

我没有手头的Delphi 7对此进行测试,但是我有足够的信心相信按照这些思路(可能会有所hwndOwner选择)进行一些整理。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从ALT + TAB菜单隐藏无边界窗口

来自分类Dev

从ALT + TAB菜单隐藏无边界窗口

来自分类Dev

如何从Alt + Tab视图关闭窗口

来自分类Dev

在模态窗口后面显示的Bootstrap工具提示

来自分类Dev

模态窗口隐藏在标题后面?

来自分类Dev

自动完成显示在“模态”弹出窗口的后面

来自分类Dev

模态弹出窗口未从代码后面显示

来自分类Dev

键盘后面的模态弹出窗口

来自分类Dev

停止模态窗口滚动后面的内容

来自分类Dev

如何在Cinnamon中禁用ALT + TAB预览窗口?

来自分类Dev

如何在Cinnamon中禁用ALT + TAB预览窗口?

来自分类Dev

Windows 7 Alt + Tab透明窗口效果延迟

来自分类Dev

ALT + TAB窗口中不需要的程序

来自分类Dev

组合窗口以按Alt-Tab进行显示

来自分类Dev

Alt-Tab在最近的窗口之间不切换

来自分类Dev

如何制作程序/窗口标题的alt-tab diplay名称?

来自分类Dev

ALT+TAB 上可见的 CopyQ 窗口

来自分类Dev

在独特应用程序的窗口之间切换(非Alt + Tab或Alt +`)

来自分类Dev

是否可以将窗口alt + tab'ing配置为根据最近使用的窗口重新排序?

来自分类Dev

没有Alt-Tab或Command-Tab的快速窗口切换?

来自分类Dev

侏儒壳Alt + Tab

来自分类Dev

alt + tab和alt + escape之间的区别

来自分类Dev

如何在Ubuntu 18.04中的alt + tab切换器中分隔打开的窗口?

来自分类Dev

如何在所有监视器上显示Alt-Tab弹出窗口?

来自分类Dev

如何防止Gnome-shell的Alt + Tab对来自相似应用程序的窗口进行分组?

来自分类Dev

启用Aero Peek后,Windows 7的alt-tab窗口消失了

来自分类Dev

Alt + Tab可在仅一个屏幕的窗口之间切换

来自分类Dev

如何使Alt + Tab返回到与上次使用相同的应用程序窗口(Unity)

来自分类Dev

Alt-Tab窗口切换器可响应MATE中的鼠标单击?

Related 相关文章

  1. 1

    从ALT + TAB菜单隐藏无边界窗口

  2. 2

    从ALT + TAB菜单隐藏无边界窗口

  3. 3

    如何从Alt + Tab视图关闭窗口

  4. 4

    在模态窗口后面显示的Bootstrap工具提示

  5. 5

    模态窗口隐藏在标题后面?

  6. 6

    自动完成显示在“模态”弹出窗口的后面

  7. 7

    模态弹出窗口未从代码后面显示

  8. 8

    键盘后面的模态弹出窗口

  9. 9

    停止模态窗口滚动后面的内容

  10. 10

    如何在Cinnamon中禁用ALT + TAB预览窗口?

  11. 11

    如何在Cinnamon中禁用ALT + TAB预览窗口?

  12. 12

    Windows 7 Alt + Tab透明窗口效果延迟

  13. 13

    ALT + TAB窗口中不需要的程序

  14. 14

    组合窗口以按Alt-Tab进行显示

  15. 15

    Alt-Tab在最近的窗口之间不切换

  16. 16

    如何制作程序/窗口标题的alt-tab diplay名称?

  17. 17

    ALT+TAB 上可见的 CopyQ 窗口

  18. 18

    在独特应用程序的窗口之间切换(非Alt + Tab或Alt +`)

  19. 19

    是否可以将窗口alt + tab'ing配置为根据最近使用的窗口重新排序?

  20. 20

    没有Alt-Tab或Command-Tab的快速窗口切换?

  21. 21

    侏儒壳Alt + Tab

  22. 22

    alt + tab和alt + escape之间的区别

  23. 23

    如何在Ubuntu 18.04中的alt + tab切换器中分隔打开的窗口?

  24. 24

    如何在所有监视器上显示Alt-Tab弹出窗口?

  25. 25

    如何防止Gnome-shell的Alt + Tab对来自相似应用程序的窗口进行分组?

  26. 26

    启用Aero Peek后,Windows 7的alt-tab窗口消失了

  27. 27

    Alt + Tab可在仅一个屏幕的窗口之间切换

  28. 28

    如何使Alt + Tab返回到与上次使用相同的应用程序窗口(Unity)

  29. 29

    Alt-Tab窗口切换器可响应MATE中的鼠标单击?

热门标签

归档