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 を使ってる利点が少なくなってきている気がします.
[ツッコミを入れる]
[TrackBack URL: http://netail.net/tb.rb/20070209]