過慮窗體最小化訊息

2022-08-08 23:45:22 字數 1242 閱讀 3916

很久沒寫隨筆,今天在寫乙個托盤程式的時候,要捕獲視窗最小化的訊息,在wndproc裡面沒有捕獲到,後面在twincontrol找到實現wm_syscommand的過程。重寫就可以了,其實wndproc裡面也是可以的,剛開始寫錯了。

wndproc

procedure tfrmmain.wndproc(var amsg: tmessage);

begin

if amsg.msg = wm_command then

begin

memo1.lines.add('

wm_command

');inherited;

endelse

if amsg.msg = wm_syscommand then

begin

memo1.lines.add('

wm_syscommand

');inherited;

endelse

inherited;

end;

wmcommand wmsyscommand

procedure wmcommand(var message: twmcommand); message wm_command;

procedure wmsyscommand(var amsg: twmsyscommand); message wm_syscommand;

procedure tfrmmain.wmcommand(var message: twmcommand);

begin

memo1.lines.add(format('

id:%d

',[message.itemid ]));

inherited;

end;

procedure tfrmmain.wmsyscommand(var amsg: twmsyscommand);

begin

if amsg.cmdtype and $fff0 = sc_minimize then

begin

self.hide;

shell_notifyicon(nim_add, @ftrayicondata)

endelse

inherited;

end;

wmsyscommand用來響應最大最小化以及關閉的訊息,點選主選單的時候也會響應,點選選單項的時候響應的是wmcommand,訊息裡面包括有選單的id,大概是這樣沒深入研究。

C 窗體最小化事件隱藏捕獲

最小化的時候隱藏,是很常見的功能,但是因為c 沒有最小化的事件的處理,所以不能直接使用,在網上找了找,別人都是resize和其他幾個事件處理,感覺這樣不好,所以自己找了找資料,實現 如下。窗體的deactivate事件,判斷窗體狀態是否為最小化,其他事件判斷會出現問題 private void ma...

窗體程式最小化到任務區

寫此部落格為了記錄一些足跡,方便下次檢視方便!1 如果不想讓程式在工作列中顯示,請把窗體的屬性showintaskbar設定為false 2 如果想讓程式啟動時就最小化,請設定窗體的屬性windowstate設定為minimized。minimized 最小化,normal正常啟動,maximize...

窗體 最大化 最小化 關閉按鈕

qt 設定透明按鈕 沒試驗 qpushbutton bt new qpushbutton this bt settext ok bt move 200,100 bt setflat true 就是這句能夠實現透明,視窗置頂 this setwindowflags qt windowstaysonto...