如何判斷視窗是在最小化或者最大化的狀態

2021-06-19 19:50:35 字數 1075 閱讀 4751

這個問題用下面兩個函式就可以搞定了,哈哈,很簡單的。

1、iszoomed函式:確定視窗是否是最大化的視窗。   

函式原型:bool iszoomed(hwnd hwnd);

引數: hwnd:待判斷視窗的控制代碼。   

返回值:如果視窗已最大化,則返回值為非零;如果視窗未最大化,則返回值為零。   

2、isiconic

函式:確定給定視窗是否是最小化(圖示化)的視窗。   

函式原型:bool  isiconic(hwnd hwnd);

引數: hwnd:待判斷視窗的控制代碼。   

返回值:如果視窗已圖示化,返回值為非零;如果視窗未圖示化,返回值為零。   

其中isiconic()分支**的作用是當視窗處於最小化狀態時進行圖示的繪製操作。但是實際上你

會發現,在視窗最小化一般來說是不會進行視窗的重繪,也就是不會觸發wm_paint訊息。當然,使用者可以強制進行重繪。正常情況下,在 registerclass時我們一般會為wc設定乙個圖示icon。如果註冊視窗類的時候為視窗類設定了圖示,那麼當視窗最小化的時候,系統會繪製此圖 標;如果註冊視窗類的時候我們沒有為視窗類設定圖示,那麼當視窗最小話minimized的時候,系統會發乙個wm_paint訊息通知視窗過程進行視窗 最小化的繪製操作。msdn是如上所說。不過測試了下,通過修改對話方塊的gcl_hicon,設定為0,然後在對 話框視窗最小化的時候也是不會觸發onpaint。msdn關於wm_iconerasebkgnd訊息也是在win3.1之前的版本有效,在繪製圖示之 前先擦出背景,在win3.1之後的版本被忽略。

實際上,在視窗最小化我們可以再wm_syscommand訊息中處理最小化操作,但是此時窗 口的isiconic返回的還是false,表明此時視窗的最小化狀態還沒有被設定。另外還有乙個訊息就是wm_size,在最小化視窗後會發生 wm_size訊息,在發此訊息之前視窗的最小化狀態是已經被設定了的。因此如果想要在視窗最小化做什麼操作的話,可以再wm_size中處理,然後用 isicnoic函式判斷是否是最小化。

Fedora視窗最大最小化

這是linux初用者普遍感到不習慣的地方 視窗沒有最大最小化按鍵,需要通過檢視右側活動視窗來處理不同視窗的顯示問題。較早的fedora版本貌似可以通過安裝 yum install gnome tweak tool yum install gconf editor 通過gconf editor改變 b...

取消qt視窗最大最小化

setwindowflags windowflags qt windowminmaxbuttonshint setwindowflags windowflags qt windowclosebuttonhint qt windowclosebuttonhint其實是乙個值 0x00080000 這裡...

Fedora 17 視窗最大最小化

fedora 17 視窗沒有最小化 最大化 按鈕 只有乙個關閉按鈕,用著不方便。安裝的時候按照文庫裡的一篇文章安裝了一些工具還有編碼器之類的東西,其中有乙個 gnome tweak tool,說是能夠啟用桌面還有最大最小化的按鈕,可是安裝之後不知道去 找這個工具,原來安裝好之後叫做 advanced...