netail.net
自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.
最近のお知らせ (古いものはこちら)
2007-02-09 [長年日記] ▲
_ [Delphi] 最小化してタスクトレイに隠したものをきれいに復帰させる ▲
最小化(Application.OnMinimize
)時にウィンドウに ShowWindow(Application.Handle, SW_HIDE)
メッセージを送ってタスクバーから隠したものがうまく復帰できないなーと悩んでいたんですが,SetWindowPos
の NOMOVE
と NOSIZE
フラグを使って,サイズ変更せずに表示状態だけをいじることでタスクバーに復帰させてから,最小化を解除してやれば良いようです.
// ウィンドウをサイズ変更せず,タスクバーに復帰させる setWindowPos(Application.Handle, HWND_TOP, 0, 0, 0, 0, SWP_SHOWWINDOW or SWP_NOSIZE or SWP_NOMOVE); // ウィンドウの最小化を解除する Application.Restore;
こうすると,最小化から元に戻るときのアニメーション付きでちゃんと復帰してくれます.
久々に Win32 API のコードを読みまくったので疲れました.だんだん VCL を使ってる利点が少なくなってきている気がします.