HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
0704
begriff -いくす-デバイスコンテキスト6解決


begriff -いくす-

リンク

2007/7/4(Wed) 16:13:31|NO.9253

スプリクトミスなのかもしれませんが
私の環境でhspのウィンドウのデバイスコンテキストを取得する時に
BMSCR構造体からの取得した値と、apiのGetDCからの値が異なってしまいます。
教えていただけたら幸いです。



この記事に返信する


b

リンク

2007/7/4(Wed) 17:03:59|NO.9257

ウィンドウデバイスコンテキストとメモリデバイスコンテキストの違い。



begriff - いくす

リンク

2007/7/4(Wed) 22:44:12|NO.9264

ウィンドウデバイスコンテキストとメモリデバイスコンテキストの違いというのは
どのようなものでしょうか、説明していただけますか?(知識不足ですいません・・・



g

リンク

2007/7/5(Thu) 23:16:31|NO.9271




begriff -いくす-

リンク

2007/7/6(Fri) 10:05:01|NO.9273

調べたのですが、よくわかりませんでした…手間をかけて申し訳ありませんでした
ところで、ウィンドウが不可視状態のときGetWindowDC・GetDCで所得し、
BitBltで別のウィンドウに描画しても正しく表示されないのです… かといってBMSCR構造体から取得したデバイスコンテキストですとオブジェクトが描画されません…
不可視状態でも正しく描画することができえるでしょうか?



pizza

リンク

2007/7/6(Fri) 20:01:20|NO.9280

ウィンドウのキャプチャをしたいなら、対象ウィンドウを
最前面にして、全体が見える位置に移動させる方法を考えた方が
良いかも知れません。

http://yokohama.cool.ne.jp/chokuto/advanced/capturescreen.html
http://yokohama.cool.ne.jp/chokuto/advanced/capturewindow.html

非表示ではなく隠れてるだけならWM_PRINTでいけるかも?

#include "user32.as" #include "gdi32.as" #define WM_PRINT 0x0317 #define WM_PRINTCLIENT 0x0318 #define SRCCOPY 0x00CC0020 #define PRF_CHECKVISIBLE 0x00000001 #define PRF_NONCLIENT 0x00000002 #define PRF_CLIENT 0x00000004 #define PRF_ERASEBKGND 0x00000008 #define PRF_CHILDREN 0x00000010 #define PRF_OWNED 0x00000020 title "screen 0" buf = "test" mesbox buf, 200, 200, 5 color 255 : boxf : color : pos 200, 0 mes "WM_PRINTのテスト" width ,,ginfo_dispx, ginfo_dispy // ディスプレイの外に oncmd gosub *lb_OnPrintClient, WM_PRINTCLIENT hwnd0 = hwnd dim rect, 4 GetWindowRect hwnd0, varptr(rect) screen 1, rect(2)-rect(0), rect(3)-Rect(1) title "screen 1" mes "2秒後screen 0にWM_PRINTを送ります" wait 200 sendmsg hwnd0, WM_PRINT, hdc, PRF_NONCLIENT|PRF_CLIENT|PRF_CHILDREN redraw stop *lb_OnPrintClient if ginfo_intid != 0 : return sel = ginfo_sel gsel 0 // wParam=描画先のHDC BitBlt wParam, 0, 0, ginfo_winx, ginfo_winy, hdc, 0, 0, SRCCOPY gsel sel return



begriff - いくす

リンク

2007/7/7(Sat) 19:10:02|NO.9381

pizza様ご教授ありがとうございます!!!
スプリクトをいじって試行錯誤してまして
不可視ではなくbufferでメモリ上にウィンドウを作成しましたら見事にできました。
ほんとにありがとうございます。



ONION software Copyright 1997-2021(c) All rights reserved.