Windows API Code Packによるアプリ開発 第14回 Windows 7 タスクバー ~画面の一部だけをサムネイルする~

Windows API Code Packによるアプリ開発 [TechED2010 ポストセッション]
第14回 Windows 7 タスクバー ~画面の一部だけをサムネイルする~

[サムネイルのクリッピング ]
Windows 7のタスクバーのサムネイルには、アプリケーションの一部のみを縮小表示させる機能があります。
この図は、同じアプリケーションを2つ起動し、片方はページ全体を縮小表示させ、もう片方はページの一部分のみを表示させています。

このように、アプリケーション側で任意の部分をサムネイルとして縮小表示させることができます。
このことをクリッピングと呼びます

[ クリッピングの実装]
クリッピングの機能を実装するには、どのサムネイルに対してクリッピングを行うかを選択し、クリッピングさせる範囲を指定するだけです。
ボタンをクリックしたときにクリッピングを行うこともできますし、テキストボックスを複数使用しているアプリケーションの場合は、テキストボックスへの入力のイベントハンドラでクリッピングを行うことにより、入力中のテキストを表示させることもできます。
実装は、以下のように行います。実装前に、第5回の[ タスクバー関連の機能を使う前に] をご参照ください。

// どのサムネイルをクリッピングするかを選択
TabbedThumbnail preview =
TaskbarManager.Instance.TabbedThumbnail.GetThumbnailPreview(tabControl1.SelectedTab);
// クリッピングさせる範囲を指定 (x座標, y座標, 幅, 高さ)
preview.ClippingRectangle = new Rectangle(35, 100, 200, 119);

[Windows API Code Packとクリッピング]
Windows API Code Packでサポートしているクリッピングは、タブ コントロールを使用するTDIアプリケーションに限られます。
TDIアプリケーションでないアプリケーションは、Windows API Code Packを使用してもクリッピングを行うことができません。
タブ コントロールに対して自前でサムネイルを用意するときは、再描画なども自前で行う必要があります。
その詳細については、第13回の記事をご参照ください。

次回は、サムネイルの機能の応用について説明します。

[ 参考資料]
TechEDでのビデオとスライド
https://msdn.microsoft.com/ja-jp/events/ff973814.aspx
内容を早く知りたい方や、デモを確認されたい方は、ビデオをご覧ください。
本連載は、Code Packのバージョン1.1を元に説明しています。
TechEDでは、当時の最新バージョンである1.01を元に説明しました。
内容はほぼ同じですが、クラス名など一部に小さな違いがあることがあります。

[Windows API Code Packのダウンロード]
https://code.msdn.microsoft.com/WindowsAPICodePack
このページの右上にある、「Current Release」と書かれた部分のすぐ下にあるリンクをクリックすると、ダウンロードページに飛びます。

[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 タスクバー ~サムネイルについて知っておくべきこと~
第10回 : Windows 7 タスクバー ~アプリケーションユーザー モデル ID (AppID)
第11回 : Windows 7 タスクバー ~タブに対応したサムネイル~
第12回 : Windows 7 タスクバー ~タブ サムネイルの実装~
第13回 : Windows 7 タスクバー ~タブ サムネイルのイベント処理~
第14回 : Windows 7 タスクバー ~画面の一部だけをサムネイルする~

番外編 : Windowsフォームアプリによる電源の状況の把握
番外編1 : アプリをクラッシュさせるには
番外編2 : シューティングゲームにタスクバーの機能を追加
サムネイルのあとは、ジャンプリストの説明を行います。

マイクロソフト
田中達彦