デバイスコンテキスト

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: デバイスコンテキスト

by HOLY » 2008年3月17日(月) 12:05

konisi様、のぶあや様、ありがとうございました。
よくよく探してみると、
Sub MainWnd(hDC As Long)となっていました。
お騒がせして住みませんでした。

by のぶあや » 2008年3月15日(土) 23:08

全体的な流れなら以下のようになります。

IDEの再描画命令で書く場合 その他の箇所で書く場合 ソースはこんな感じになります。
HOLY さんが書きました:本には、
CreateCompatibleDC(hDC)
っと書いてあったので、まねしてみたら
『hDC』は無効な識別です
っとエラーが出てきます。
変数などの定義はなかったと思います。
もしあればそこは指摘してくださいです。
たぶん今回のケースは「その他の箇所で書く場合」で解決すると思います。

by konisi » 2008年3月15日(土) 22:41

ABの本は持っていないのですが、
描画対象のウインドウハンドルをhWndとするときに

コード: 全て選択

Dim hDC As HDC
hDC=GetDC(hWnd)
とすればいけると思います。
最後にReleaseDCで開放するのを忘れないで下さい。

AB4を使用しているなら
http://www.activebasic.com/forum/viewtopic.php?t=672
http://www.activebasic.com/forum/viewtopic.php?t=839
AB3なら
http://www.activebasic.com/forum/viewtopic.php?t=533
を参照してみてください。

追記
もしそのCreateCompatibleDC関数が使われてるのが元の本ではMainWnd_Paint関数内なら、
その引数にhDCが指定されていると思います。
そのhDCの値の取得・開放に関する部分をCallback.wbpから抜粋すると

コード: 全て選択

Dim ps As PAINTSTRUCT
Dim hDC As HDC
hDC=BeginPaint(hWnd,ps)
MainWnd_Paint(hDC)'MainWnd_Paint関数呼び出し
EndPaint(hWnd,ps)
となっています。GetDCで上手くいかなければこちらも試してみてください。

デバイスコンテキスト

by HOLY » 2008年3月15日(土) 18:07

お久し振りです。
超ど素人のHOLYです。

今回は、『画像』についてなのですが・・・

イメージボックスに画像を表示させようと思い、頑張ったのですが、
CreateCompatibleDC関数でつまずいてしまいました。
ABの本は持っているので、『BMPビューワを作ろう』の回を参考にしたのですが、
CreateCompatibleDCのデバイスコンテキストの作成の部分がどうしても出来ません。

本には、
CreateCompatibleDC(hDC)
っと書いてあったので、まねしてみたら
『hDC』は無効な識別です
っとエラーが出てきます。
変数などの定義はなかったと思います。
もしあればそこは指摘してくださいです。

どうすれば解決できるか教えて下さい。
また、素人の僕でも、簡単に画像を扱える方法があればそのサンプルのコードも
御願いします。

やりたいことは、
BMPリソースの中の画像を表示したいのです。

分かりにくいかもしれませんが、優しく御願いします(_ _)

ページトップ