デスクトップウインドウの貼り付け

解決


DotL  2003-05-16 22:59:43  No: 51401  IP: [192.*.*.*]

早速ですが、デスクトップウインドウのイメージを自ウインドウに貼り付けたのですが、自分のウインドウが表示されているデスクトップのイメージとなってしまいます。ウインドウを非表示にしたり、仮想域に詰たりしてからイメージを転送すると当然何も表示されません。自ウインドウが表示されていない時の寸前のデスクトップのイメージを自ウインドウのクライアント域に貼り付けできないでしょうか。どなたかご存知でしたらお願いします。

編集 削除
NASU  2003-05-16 23:26:40  No: 51402  IP: [192.*.*.*]

PaintDesktop API

http://www8.plala.or.jp/myna/prog/winapiw.html

編集 削除
DotL  2003-05-16 23:45:47  No: 51403  IP: [192.*.*.*]

NASUさん、ありがとうございます。
PaintDesktopはすでに使用しております。また上のサンプル(PaintDesctop)を実行するとやはり、真っ黒です。Win98ではうまくいったんですが...。

編集 削除
DotL  2003-05-17 00:01:49  No: 51404  IP: [192.*.*.*]

すみません。PaintDesktopは背景だけですね。デスクトップの可視部すべてをコピーしたいので、GetDesktopWindowに変えました。でも失敗(?)します。

hDC=GetDesktopWindow(); 
ShowWindow(.....
BitBlt(hDC.....

でやるのですが、自分のウインドウが表示された後の、画像になってしまいます。

編集 削除
DotL  2003-05-17 00:04:37  No: 51405  IP: [192.*.*.*]

※BitBlt(自ウインドウのDC,...hDC,0,0,SRCCOPY);
でした。

編集 削除
DotL  2003-05-19 21:11:19  No: 51406  IP: [192.*.*.*]

メモリを利用したところ見事にできました。
ありがとうございました。

編集 削除
DotL  2003-05-19 21:14:41  No: 51407  IP: [192.*.*.*]

>hDC=GetDesktopWindow(); 
>ShowWindow(.....
>BitBlt(hDC.....

hDC=GetDC(GetDesktopWindow()); 
ShowWindow(.....
BitBlt(hDC.....

でした。すいません。

編集 削除