|
カテゴリ:カテゴリ未分類
DWMのThumbnail機能は簡単でとても便利ですが、ひとつ穴ぼこがあります。 自分でも忘れそうなので、メモ替わりに記載しておきます。 DWMのThumbnailを使うには、DWMRegisterThumbnail()で転送元のウィンドウと転送先の2つのウインドウを結びつけたあと、DWMUpdateThumbnailProperties()でパラメータの設定を行います。 このとき、転送先の矩形と転送元の矩形を設定できます。転送先はクライアント座標なのであまり間違うことはないですが、問題は転送元の矩形座標です。 ここを省略すればウィンドウ全体となるので問題はあまりないのですが。。 この転送元の矩形座標は、ウィンドウ全体を対象とした場合はウィンドウ原点を(0,0)とする座標系です。(つまりリージョンの指定と同じ)、転送をクライアント領域だけにした場合はクライアント座標になるようです。 問題となるのは、DWMでフレーム拡張している場合はウィンドウ原点は表示しているウィンドウの少し内側になります。 ということは、 フレーム拡張しているウィンドウの場合、転送元の矩形の指定は のような指定をしなければならないようです。 TOP,LEFTにマイナスを指定可能なことにしばらく気がつきませんでした。。(汗。。) このようなことが発生するのは、サイズ変更枠を持たないウィンドウ(つまり固定サイズのウィンドウ)です。
お気に入りの記事を「いいね!」で応援しよう
Last updated
2009.10.22 06:46:40
コメント(0) | コメントを書く |