552206 ランダム
 HOME | DIARY | PROFILE 【フォローする】 【ログイン】

OrangeMaker

OrangeMaker

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

PR

Keyword Search

▼キーワード検索

Profile

OrangeMaker

OrangeMaker

Calendar

Favorite Blog

Comments

オールフリーソフトのひろ@ Re:Kokomite Ver.1-0-1-103 リリース(06/10) Kokomiteについて教えてください。 初め…
http://buycialisky.com/@ Re:vs2011 にアップグレード(09/18) cialis split pillcialis comparison difl…
http://buycialisky.com/@ Re:BreathOfWindow Ver.1-0-116 Vectorにて公開(09/05) best price cialiscialis vs viagra pharm…
http://buycialisky.com/@ Re:RieNマルチ化(04/29) cialis preis apothekecialis online ohne…
http://buycialisky.com/@ Re:EatherOverSkypeについて(08/01) side effects of viagra and cialiscialis…

Freepage List

Headline News

2009.10.22
XML
カテゴリ:カテゴリ未分類

DWMのThumbnail機能は簡単でとても便利ですが、ひとつ穴ぼこがあります。

自分でも忘れそうなので、メモ替わりに記載しておきます。

DWMのThumbnailを使うには、DWMRegisterThumbnail()で転送元のウィンドウと転送先の2つのウインドウを結びつけたあと、DWMUpdateThumbnailProperties()でパラメータの設定を行います。

このとき、転送先の矩形と転送元の矩形を設定できます。転送先はクライアント座標なのであまり間違うことはないですが、問題は転送元の矩形座標です。

ここを省略すればウィンドウ全体となるので問題はあまりないのですが。。

この転送元の矩形座標は、ウィンドウ全体を対象とした場合はウィンドウ原点を(0,0)とする座標系です。(つまりリージョンの指定と同じ)、転送をクライアント領域だけにした場合はクライアント座標になるようです。

問題となるのは、DWMでフレーム拡張している場合はウィンドウ原点は表示しているウィンドウの少し内側になります。

ということは、

フレーム拡張しているウィンドウの場合、転送元の矩形の指定は
TOP=-TOP方向のフレーム拡張分
LEFT=-LEFT方法のフレーム拡張分
RIGHT=LEFT + DwmGetWindowAttribute(DWMWA_EXTENDED_FRAME_BOUNDS・・・)で取得したウィンドウ幅
BOTTOM=TOP+DwmGetWindowAttribute(DWMWA_EXTENDED_FRAME_BOUNDS・・・)で取得したウィンドウ高さ

のような指定をしなければならないようです。

TOP,LEFTにマイナスを指定可能なことにしばらく気がつきませんでした。。(汗。。)

このようなことが発生するのは、サイズ変更枠を持たないウィンドウ(つまり固定サイズのウィンドウ)です。

 

 

 






お気に入りの記事を「いいね!」で応援しよう

Last updated  2009.10.22 06:46:40
コメント(0) | コメントを書く



© Rakuten Group, Inc.
X