有没有一种方法来创建的无模式的对话框中C ++ MFC箱总是停留在应用程序中的其它窗口的顶部?我想有点像在Visual Studio 2005中查找对话框 - 在那里停留在上面,但你仍然可以编辑的基础文本

(如果有什么差别,这不是MDI,它是一个基于对话框的应用)

有帮助吗?

解决方案

尼什

  

在上面让您的对话框住宿

     

你有没有见过有哪个节目   一个“永远留在最上层”选项?好   令人难以置信的是,你可以   就只有顶端的对话框住宿   的一行代码。简单地说了   下面一行在对话框类的   的OnInitDialog()函数。

SetWindowPos(&this->wndTopMost,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
     

基本上我们正在做的是使用   该SetWindowPos函数改变   我们的对话窗口的Z顺序。我们   让所有的顶部我们的对话留   其他窗口将其移动到顶部   的Z-次序。现在,即使你   激活一些其他的窗口,我们的窗口   将留在上面。不过,我劝你   确保你确切地知道你   当你这样做正在做的,因为它   可能惹恼人,如果他们不能得到   你的窗口的方式进行时,他们   要做到这一点。

当你在评论所提到的,上面的行使窗口坐根据每个应用的顶部。你需要做的。

SetWindowPos(&this->wndTop,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);

为了使坐在窗边上只有你的应用程序的顶部。

- 亚当

其他提示

接受的答案失败的Windows 7或以上。 (也许它的我) 但使无模式对话框为上,而不是孩子解决它。 现在变得定位WRT主对话框窗口,但您可以编写代码在任何地方限制。 使用无边界或顶部条使其成为一个简单的窗口。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top