ミニタイマー(11) - サムネイル・ツールバーの実装

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

サムネイル・ツールバーをようやく実装した。

20110505.png

クリックするとタイマーの停止・開始をトグルする。

20110505-01.png

サムネイル・ツールバーのAPIは3つで、そのうちの2つを使った(ITaskbarList3::ThumbBarAddButtons メソッドと ITaskbarList3::ThumbBarUpdateButtons メソッド)。この2つのAPIはウィンドウハンドルと、THUMBBUTTON構造体の配列を引数に取る。ThumbBarAddButtons はボタンの追加で、ThumbBarUpdateButtons はボタンの更新である。必要なボタン数に応じてTHUMBBUTTON配列を用意して、ThumbBarAddButtons を呼び出して追加し、ボタンのプロパティを変更するには配列の内容を変更してThumbBarUpdateButtons を呼び出すのである。

このTHUMBBUTTON構造体配列を1つ1つのツールバーボタンをオブジェクトみたく操作できるようラッパークラスを実装しようと考えた。.Net Frameworkの実装も参考にしたが、結局薄いラッパーに落ち着いた。見た目個々のツールバー・ボタンをいじれるような感じになっているが、最終的に変更を更新するためのメソッドを呼ばねばならない(taskbar::update_thumb_buttons)。

ソースコード taskbar.h,taskbar.cpp

実装は少々ヘンテコリンな感じである。thumb_button_managerにインデックスを引数に取る操作メソッドを実装するように変えようかな。。