2013-02-24 65 views
0

我想让我的MDI MFCapplication最顶层的all other applications' windows在windows操作系统上运行。所以我可以在我的应用程序中制作一个one view的屏幕截图。
但功能如SetWindowPos(&CWnd::wndTopMost, 0, 0, 0, 0, SWP_SHOWWINDOW);SetFocus()(在我的view class中调用)完全不起作用。
每当another application's window在我的顶部,我做了screenshot,它会在我的顶部保存一张window的图片。使我的MDI应用程序最顶层的其他应用程序?

那么如何让my application's windows(上other applications' windows

+0

使用粗体或斜体标记(\ *或\ * \ *)代替代码(\')。 – 2013-02-24 04:04:19

回答

1

我想让我的MDI MFC应用程序在所有其他应用程序的最高层窗口中

这根本不可能。如果您的应用程序可以这样做,那么其他应用程序也可以。只有一个人可以获胜,而且没有理由说明你的申请可能比其他人更特别。

1

尝试顶部专门the view window)

SetWindowPos(&CWnd::wndTopMost, 0, 0, 0, 0, SWP_SHOWWINDOW|SWP_NOMOVE|SWP_NOSIZE); 

或:

BringWindowToTop(); 
+0

不工作,我想我应该先激活我的窗口(或“设置焦点”)。 – RubbyMath 2013-02-26 11:09:33

+0

@RubbyMath - SetWindowPos API调用起作用!但是你必须在CFrame类中调用它,因为只有应用程序主窗口可以被带到最顶层,而不是任何子视图或子窗口。 – mfc 2013-02-26 23:38:46

+1

有一个小窍门,如何在最新版本的Windows中窃取重点。请参阅此文章(http://www.codeproject.com/Articles/1724/Some-handy-dialog-box-tricks-tips-and-workarounds)(在页面上搜索术语“如何窃取焦点”) – cha 2013-02-27 00:14:29

相关问题