備忘録: 非矩形ウィンドウとタスクトレイの合わせ技
表題だけの条件だと環境その他、いろいろと手法が選べたり違ってたりするのだが。
とりあえず、ここでは
- ターゲットはWindows。で、Windows APIを直叩き。
- 非矩形、と簡単に言ってるが実のところ形状は複雑で、しかも逐次変化したりする
- タスクバーには表示したくない。(タスクトレイとアプリウィンドウだけで応答する常駐もの)
という前提で。
2. はWindows2000以降ならWS_EX_LAYEREDスタイルを指定することで割と簡単に実現できるが、3.が問題。
ウィンドウをタスクバーに表示させないようにする定石であるところの
「非表示ウィンドウをひとつ作っておいて、UIはその子ウィンドウにする」
はこの場合使えない。(WS_EX_LAYEREDはトップレベルウィンドウにしか効かないので)
というわけでもう一つの定石、「WS_EX_TOOLWINDOWスタイルを指定」を使うことになるようだ。
まあ、要するに昔懐かしいデスクトップマスコットの類を今更作るにはどーしましょってことなんですが。
あとタスクトレイがらみはd:id:dojum:20070606 もちうい。