netail.net
自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.
最近のお知らせ (古いものはこちら)
2005-01-29 古い日記からの変換データ [長年日記] ▲
_ [Delphi]SetWindowPos ▲
ウィンドウをアクティブにしないで前面に表示しようとしてSetWindowPos の SWP_NOACTIVATE オプションを使ってみたら,どうも SetWindowPos で表示したときにはVCL の TCustomForm.Visible プロパティが True にならず,しかも子ウィンドウ(フォーム上のコントロール)も背面にいるまま移動してこない様子.→子ウィンドウの振る舞いについては,突然ちゃんと動くようになった.謎.
で,一度不一致が起きると,Close や Hide を使ってもウィンドウを閉じられなくなってしまう.結局,ウィンドウを表示するときは SetWindowPos で全部の子ウィンドウも表示してから Visible = True にして,閉じるときは閉じるときでいちおうSetWindowPos(..., SWP_HIDEWINDOW or SWP_NOACTIVATE) としてウィンドウをアクティブにせずにそのまま消してから手動で Visible = false に設定するように実装した.