Windows API Code Packによるアプリ開発 第9回 Windows 7 タスクバー ~サムネイルについて知っておくべきこと~

Windows API Code Packによるアプリ開発 [TechED2010 ポストセッション]
第9回 Windows 7 タスクバー ~サムネイルについて知っておくべきこと~

※ 今回は、TechEDで説明していない内容を含んでいます。

Windows 7の特長の一つに、進化したタスクバーがあります。
タスクバーの機能であるサムネイル(縮小表示)について、ここでざっと説明します。

[ サムネイルに表示する内容 ]
タスクバーのサムネイルを一言で表現すると、デスクトップ上に表示されているアプリケーションの縮小版をタスクバー上に表示しているということになります。
それではここで質問です。

質問 : 電卓を起動させた場合、サムネイルで表示されている画像はどちらでしょう ?

答えは試してみれば一目瞭然ですね。
電卓のような普通のアプリケーションは、右のようにアプリケーションの枠の部分は表示されず、中身の部分だけがサムネイルとして表示されます。

それではExcelの場合はどうでしょうか?
下図は、Excelのサムネイルを撮影したものです。

どうやら、アプリケーションの枠の部分も写っているようです。
これはExcel側に秘密がありそうです。
画面のExcelは、Excel 2010を使用しています。
アプリケーション上部のタイトルバーの部分を見ると、左側にショートカットが並んでいます。
すなわち、タイトルバーの部分はWindowsのデフォルトのものを使用しているのではなく、自前で用意しているものを使用しているということが、サムネイルの画像から読み取れます。
タイトルバーの右側のアプリケーションを閉じたり最大化したりするボタンがサムネイルには表示されていないことから、これらのボタンはWindowsがデフォルトで用意しているものを使用していることが分かります。
このように、サムネイルはアプリケーション全体の縮小表示を行っているのではなく、描画できる領域の縮小表示を行っていることがわかります。

[ 表示するサムネイルの数 ]
アプリケーションを1つ起動すると、サムネイルも1つ表示されます。
電卓を2つ起動した場合は、下図のようにサムネイルも2つ表示されます。

アプリケーションを起動した場合は、自動的にアプリケーションIDというものがタスクバーによって割り当てられます。
同じアプリケーション(.exeファイル)を起動したときは、別々に起動したとしても同じアプリケーションIDが割り振られています。
タスクバー側では、アプリケーションIDが同じものを1つのアイコンにまとめて表示しています。
そして、アプリケーション1つに対して、1つのサムネイルを生成します。

Internet Explorer 8の場合はどうでしょう?
Internet Explorer 8は、TDI(タブ ドキュメント インターフェイス)と呼ばれるアプリケーションです。
下の図は、IE8を2つ立ち上げて、上に表示させているIE8ではタブを使用して2つのWebサイトを表示させています。

この例だと、サムネイルは3つ表示されています。
実は、TDIアプリケーションの場合でも、デフォルトではアプリケーション1つに対してサムネイルは1つしか作成されません。
すなわち、この例では表示されるサムネイルは2つが正しいということになります。
では、なぜ3つ表示されているのでしょうか?

TDIアプリケーションの場合は、アプリケーション側がサムネイルを用意することにより、タブの数に応じたサムネイルを作ることができます。
IE8の場合も、そのようにタブの数に応じてサムネイルを作っているのです。
サムネイルをよく見ると、アプリケーションの描画可能領域全体ではなく、Webサイトの部分のみをサムネイルとして表示しています。
そのように、表示領域を任意に変えることもできます。

Windows API Code Packでは、このようなTDIアプリケーションに対するサムネイルの生成の機能も提供しています。

次回はアプリケーションIDについて説明します。

[参考資料 ]
TechEDでのビデオとスライド
https://msdn.microsoft.com/ja-jp/events/ff973814.aspx
内容を早く知りたい方や、デモを確認されたい方は、ビデオをご覧ください。
※ 本日の内容は説明しておりません。

Windows API Code PackによるWindowsアプリ開発 [TechEDポストセッション]
第1回 : Windows API Code Packとは
第2回 : アプリケーションの再起動と修復その1
第3回 : アプリケーションの再起動と修復その2
第4回 : 電源の状況の把握
第5回 : Windows 7 タスクバー ~アイコンオーバーレイ~
第6回 : Windows 7 タスクバー ~進行状況バー ( プログレス バー )
第7回 : Windows 7 タスクバー ~サムネイル ツールバー その1
第8回 : Windows 7 タスクバー ~サムネイル ツールバー その2
第9回 : Windows 7 タスクバー ~サムネイルについて知っておくべきこと~

番外編 : Windowsフォームアプリによる電源の状況の把握
番外編1 : アプリをクラッシュさせるには
番外編2 : シューティングゲームにタスクバーの機能を追加
その後も、Windows 7のタスクバー関連の説明を行います。

マイクロソフト
田中達彦