有没有办法创建一个无模式在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);
使窗口仅位于您的应用程序之上.
-亚当