2013-07-05 110 views
4

在我的應用程序中,我有時會使用:ShowWindow(MyForm.Handle, SW_SHOW)SW_SHOW和SW_SHOWNORMAL的含義

documentation爲ShowWindow函數有SW_SHOWNORMAL一節,說

「首次顯示窗口 時,應用程序應指定此標誌」。

它意味着,每形式(即我傳遞給ShowWindow)我需要保持一個布爾變種,以查看是否顯示了表單,並基於我應該用SW_SHOWSW_SHOWNORMAL

SW_SHOWNORMAL的深層含義是什麼?

+3

MSDN爲您提供鏈接後面的區別:「如果窗口最小化或最大化,」SW_SHOWNORMAL「將它恢復到原始大小和位置。」這是第一次顯示窗口的有用之處 - 您確保它不會最小化或最大化。 –

+0

@RomanR。 - 因此,在(Delphi)中,窗口(窗體)始終以設計時設置的「正常」大小(非最小化,非最大化)開始,並不重要。 – Ampere

+0

@RomanR。那不僅僅是這些。只要你想從最小化或最大化到恢復,你都可以調用'ShowWindow'傳遞'SW_SHOWNORMAL'。 –

回答

13

術語正常同義。這個術語可以追溯到舊版本的Windows,現在所有的MSDN文檔使用恢復,而不是正常或規範化。因此,SW_SHOWNORMAL設置窗口狀態恢復,並使窗口可見另一方面,SW_SHOW只是使窗口可見。

回到當天,恢復被稱爲標準化,最小化被稱爲標誌性,最大化被稱爲全屏。如果內存提供服務,則舊版術語在Windows 3.1中仍在使用,但在Windows 95和NT中已更改。

+3

當窗口被最小化爲圖標時,返回:) – edtheprogrammerguy

5

SW_SHOW通常與SW_HIDE一起使用,所以如果您出於某種原因顯示/隱藏窗口(例如基於用戶操作),您可以串聯使用它們。 SW_SHOWNORMAL最初在「舊」時期首次使用時顯示窗口。

SW_SHOWNORMAL如果你想在程序中的一些特定點,以確保沒有最小化窗口(或最大化)有時是有價值的(例如,如果窗口可能會最小化,而是要「恢復」它使用戶可以與它互動)。

+0

嗨。大衛首先回答,所以我接受了他的回答。 – Ampere

+3

@Altar在我看來,你應該接受你認爲最好的答案,而不是第一個答案。 –

+2

@大衛 - 兩個答案都很好,所以我拿到了第一個。 – Ampere