• ベストアンサー

Active Basic デバイスコンテキスト

プログラム上に画像を表示しようと思い、方法を探しました。 すると、デバイスコンテキストというものを使って表示させるみたいなことが書かれていました。 とりあえず、理解しようと頑張って読み進めていったのですが、全然理解が出来ませんでした。 そもそもデバイスコンテキストとは、何をするもので、どういう風に扱えば良いのかがさっぱり分かっていません。 すみませんが、この、デバイスコンテキストの使用方法を理解していられる方がいらっしゃいましたら、すみませんが、ご教授お願いします。 なるべく詳しく教えていただきたいです。 お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

 こんにちは。  ActiveBasicについては未経験です・・・。  例えば開いたウィンドウに四角を描きたければそのウィンドウからデバイスコンテキストを取ってこないといけません。  ブラシやペンを作成しておき、取ってきたデバイスコンテキストにそれらをセットしてから描画関数を呼ぶと、絵が描けます。  取って来たデバイスコンテキストは、絵を描き終えたら、直に閉じなければいけません。ほったらかして置くとトラブルが生じます。  また、ペンやブラシをデバイスコンテキストに選択したまま、ペンやブラシを消さない様に注意しましょう。  http://oshiete1.goo.ne.jp/qa1557058.html  以下HPの真似をすれば手っ取り早く体験出来ると思います。  http://www.geocities.jp/debu0510/basic/main16.html  大体こんな感じでしょうか。 'hWndはHWND型で、描きたい対象のウィンドウハンドル Dim hBrush As HBRUSH Dim hPen As HPEN Dim hDC As HDC Dim iSave As Integer '青いブラシを作る hBrush = CreateSolidBrush(RGB(0, 0, 255)) '赤いペンを作る hPen = CreatePen(PS_SOLID, 1, RGB(255, 0, 0)) 'ウィンドウからデバイスコンテキストを取る hDC = GetDC(hWnd) 'デバイスコンテキストを記憶する iSave = SaveDC(hDC) '青いブラシの選択 SelectObject(hDC, hBrush) '赤いペンの選択 SelectObject(hDC, hPen) '赤い枠、青い中身の四角を描く Rectangle(hDC, 10, 10, 120, 120) '記憶していたデバイスコンテキストへ復元する RestoreDC(hDC, iSave) '赤いペンを消す DeleteObject(hPen) '青いブラシを消す DeleteObject(hBrush) 'デバイスコンテキストを消す ReleaseDC(hWnd, hDC)

if-so-at
質問者

お礼

なるほど・・・ ありがとうございます! 参考になりました!!

その他の回答 (1)

  • tetsumyi
  • ベストアンサー率25% (1946/7535)
回答No.1

そんなに簡単に説明できるものでもないのでネット検索やABの講座等で自分で理解して行くしかないでしょう。 たとえば、こんな所が検索ですぐに出てきます。 http://www.kab-studio.biz/Programing/Codian/MxA/08.html

関連するQ&A