2009-12-02 60 views
1

我想用MFC創建全屏最頂層(屏幕保護程序)窗口?如何在MFC中創建這樣的全屏窗口?我試圖創建win32應用程序,我能夠創建全屏最頂層的窗口,但我想創建使用MFC,以便我可以在該窗口上放置不同的MFC控件?如何使用MFC創建全屏窗口?

請幫幫我。

謝謝, 吉姆。

回答

1

你應該能夠適應這裏的示例代碼做你想要什麼:

MSDN: Initializing a dialog box

+0

這個例子肯定適合我。但爲此我將不得不編寫WndProc方法。我可以使用基於MFC對話框的應用程序的WndProc?怎麼樣? – Jim 2009-12-03 05:49:10

+0

好吧,我明白了。 WndPRoc包裝在MFC框架中。 MFC應用程序在消息映射上工作。所以我會寫代碼到onInitDialog例程。我正確嗎? – Jim 2009-12-03 06:35:28

+0

這是正確的。在'OnInitDialog()'中做所有的初始化。 – 2009-12-03 13:30:28

1

我想去除對話框資源邊界,顯示窗口最大化(ShowWindow(SW_SHOWMAXIMIZED))應該做的工作。

至於頂部使用系統模式風格的對話框資源。

2

我用對話框應用程序來做到這一點。在對話框資源的資源編輯器屬性中,將Border = None和Title Bar = False設置爲消除所有邊框元素。在OnInitDialog,用下面的對話框調整到整個桌面:

CRect rcDesktop; 
rcDesktop.left = GetSystemMetrics(SM_XVIRTUALSCREEN); 
rcDesktop.right = rcDesktop.left + GetSystemMetrics(SM_CXVIRTUALSCREEN); 
rcDesktop.top = GetSystemMetrics(SM_YVIRTUALSCREEN); 
rcDesktop.bottom = rcDesktop.top + GetSystemMetrics(SM_CYVIRTUALSCREEN); 
MoveWindow(rcDesktop, FALSE); 

此代碼工作在多個顯示器上,不像最大化窗口。

無需擔心將窗口置於最頂層,Windows會將其顯示在沒有其他窗口的專用桌面上。

+1

完美。但是,如果我有兩臺顯示器,但我只想爲一臺顯示器設置全屏,請問該如何操作?在此先感謝 – user8264 2015-03-25 15:35:31

+0

@ user8264,您需要獲取顯示器的座標並將其用於MoveWindow。 – 2015-03-27 03:07:54

+0

@ user8264:如果您想在主顯示器上全屏顯示: RECT rcDesktop; GetWindowRect(GetDesktopWindow(),&rcDesktop); MoveWindow(hWnd,rcDesktop.left,rcDesktop.top,rcDesktop.right,rcDesktop.bottom,FALSE); – andreaciri 2017-03-10 16:09:19