« タクスバーからアイコンを消す | メイン | 非メインフォームを常に最前面ウィンドウに »

2005年12月02日

mixi Alert 開発日誌:: 続・タクスバーからアイコンを消す

    

拡張ウィンドウスタイルには、WS_EX_APPWINDOWと言うものがあり、これを指定するとウィンドウが表示されているときには、必ずトップレベルウィンドウがタスクバー上に置かれるようになる。
つまり、このスタイルが設定されているものがあると、タスクバー上にアイコンが置かれてしまう。
が、オーナーウィンドウ(アプリケーションウィンドウ)にはWS_EX_APPWINDOWは設定されていないようだ。
また、メインフォームにも設定されていない。
つまり、オーナーウィンドウが表示状態の時にタスクバーにアイコンが置かれると思われる。
そこで、オーナーウィンドウの表示状態をGetWindowPlacementで調べることにした。
まず、フォーム生成時のフォームが非表示の時はSW_SHOWNORMALだった。
フォームが表示された時もSW_SHOWNORMALだった。
あれ?
上述の推測は間違ってた。
オーナーウィンドウが表示状態でかつ他のいずれかのフォームが表示状態の時にタスクバー上にアイコンが置かれるようだ。(メインフォームが非表示の場合?)

と言うことは、オーナーウィンドウの状態とフォームの状態によって、タスクバーにアイコンが出たり出なかったりするようだ。
そこで、フォームが表示される時にオーナーウィンドウを非表示にしてみた。
タスクバー上のアイコンは消えた。
やった。
これで目的は達した。
でも、何かしら問題があるかもしれないので、いろいろと動作確認した方が良さそう。



投稿者 Takenori : 2005年12月02日 16:58




comments powered by Disqus
Total : Today : Yesterday : なかのひと