wxWidgets - 无法将框架置于顶端

时间:2014-01-03 16:26:57

标签: c++ wxwidgets

修改

这个问题不是关于将窗口连接到一切的前面,只是为了我的特定应用程序。我希望他们与之交互的框架在新框架后面。就像一个对话框,除了它不是一个对话框。我不认为这是不好的做法,召唤了一些东西(在这种情况下是通过菜单)我希望它是在我曾经召唤它的窗口前面。


我刚读过How can I ensure that a wxFrame is brought to the foreground?,但这也不起作用。

SetFocus();让窗口想要我的注意力(如果重要的话,它会在我的平台,GTK和MATE任务栏的任务栏中闪烁)

Raise();没做什么

显然,

Show();显示了它,但尽管它是新创建的状态,但没有任何反应。

奇怪地点击窗口并没有将它带到前面,直到我在父母身上做了一些事情,尽管在任务栏中显示了我正在与之交互的事情。我正在使用上面的所有3个(Show,SetFocus然后Raise)。

我看过Raise的文档(http://docs.wxwidgets.org/trunk/classwx_window.html#a54808c933f22a891c5db646f6209fa4dRaiseLower是“z顺序函数” - 这表明它应该这样做。尽管如此,我从来没有真正取得过多大的成功。每当我跑步时,如果起始帧到达前台,我真的很高兴,但考虑到我按下运行的次数,并且与编写代码所花费的时间和创建新的事实相比,构建了项目。文件夹甚至更频繁,我忍受了它。

修好它会很好!

附录

在父级上使用Lower无效。将会有64种不太明显的尝试方法,我真的想避免绊脚石。

1 个答案:

答案 0 :(得分:0)

我相信ravenspoint,这不是一个很好的用户界面技巧,但是,如果你不介意一点点闪烁...和窃取焦点,无论你在哪里打字等等,只是有点不好......

ParentWindow->Iconize(false); // restore the window if minimized
ParentWindow->SetFocus();  // focus on my window
ParentWindow->Raise();  // bring window to front
ParentWindow->Show(true); // show the window

在此之前,请考虑使用

运行的另一个关键应用程序

“输入计数器测量启动代码,影响时间为12秒:”

在打字的一半时,你的窗口决定弹出到顶部。