ミニタイマー(9) - サムネイル・ツールバー

公開:2011-05-04 21:15
更新:2020-02-15 04:36
カテゴリ:windows,ミニタイマー,c++

今日は午前中Blog整理をして、アイコン作りを始めたが絵心がないので軽く挫折した。そういう意味でもWindows7は敷居が高いなあと感じる。アイコンはとりあえず置いておいて、サムネイル・ツールバーを調べてみた。

サムネイル・ツールバーとは何かというと、Windows 7 のタスクバーのサムネイル表示(縮小表示)に付くツールバーのことである。

20110503.png

WMPで音楽を再生しながらChromeブラウザを起動してHPを観ているとすると、音楽を止めたくなったときはわざわざWMPをアクティブにしなくてもタスクバーのWMPのアイコンにマウスカーソルを重ね、縮小表示内のツールバーの停止ボタンを押せばよい。

ちなみにiTunesもサポートしていた。さすがですな。。

2011050301.png

サムネイル・ツールバーはいわゆるツールバーなのだが、仕様(というか制約)は以下のとおりである。

UXガイドラインにもサムネイル・ツールバーのことが書かれている。

http://msdn.microsoft.com/ja-jp/library/aa511446.aspx#thumbnail

サムネイル・ツールバーのAPIはザックリ感漂う物である。THUMBBUTTON構造体の配列ですべてコントロールするので、ツールバーの中の1つのボタンの状態を変更するのも配列全体をすべて渡すのである。またボタンの状態をOSから逆に得ることはできないので、状態管理をすべてアプリ側で行わないといけない。まあそんなに大したことではないか。。出来ることも限られているし、制約も大きいしね。

話はそれるけど、気になってきたのはアイコンのリソース管理である。アイコンのハンドルをパラメータにして渡すと、そのアイコンのオーナーは誰になるのかということ。つまり破棄の責任は誰が持つのかということ。今回のサムネイル・ツールバーAPIも個々のボタンにアイコンハンドルを渡せる。アイコンハンドルなので作るのはアプリ側だけど、引き渡したアイコンを処分するのはOS側なのかアプリ側なのか。リソースとしてEXE内部で持つものはOSが管理して、自前でアイコンを生成した場合はアプリ側で管理するような考えを漠然と持っているが、それで合っているのだろうか。他のアイコンを引数に持つAPIはどうなのか。調べてみようかな。。