DOBON.NET DOBON.NETプログラミング掲示板過去ログ

hDCって

  • 題名: hDCって
  • 著者: ちょっと元気w
  • 日時: 2005/11/04 21:10:45
  • ID: 13606
  • この記事の返信元:
    • (なし)
  • この記事への返信:
  • ツリーを表示
環境/言語:[2000SP4 XPSP1 VB.NET]
分類:[.NET]

元疲れたですw

えー、バカなこと聞いてたら笑って流して下さい
setdibitsで最初のパラメータがデバイスコンテキストハンドルなんですが、
これってintegerですよね
で、ピクチャボックスからgethdcして取れるhDCはintptrですよね
それともこれは違うもの?
それと2番目のパラメータのビットマップハンドルも何入れていいのやら…
お教え頂けますでしょうか
hDCはデバイスコンテキストハンドラです。

Windowsのプログラムを勉強しないとP/Invokeはちょっとむちゃかな。(^^;;
  • 題名: Re[2]: hDCって
  • 著者: ちょっと元気…
  • 日時: 2005/11/05 22:12:17
  • ID: 13612
  • この記事の返信元:
  • この記事への返信:
  • ツリーを表示
あちこちサンプル見てもintegerだったりintptrだったり…
調べる程訳わかんなくなってきた
hDCはヌルでもいいとか
つーか未だにビットマップとイメージとグラフィックとデバイスコンテキストの
違いが分からない…
まあ待ってても回答無いようだから
解決済み!
  • 題名: Re[3]: hDCって
  • 著者: おおた
  • 日時: 2005/11/06 7:23:59
  • ID: 13616
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
■No13612に返信(ちょっと元気…さんの記事)
> あちこちサンプル見てもintegerだったりintptrだったり…
> 調べる程訳わかんなくなってきた

リファレンスでは、デバイスコンテキストのハンドルの型は、HDC ですよね。
HDC は void * と同じです。ポインタと同じ精度の型が必要ですから、マネー
ジ型としては IntPtr でしょうね。

どういうサンプルを見たのか分かりませんが、そのサンプルコードが前提にし
ている処理系では、「integer」とポインタが同じ精度なんでしょう。あるい
は、単にそのサンプルが不正確なのかもしれませんけどね。

> hDCはヌルでもいいとか

Win32 API の SetDIBits 関数の話ですよね。リファレンスには、fuColorUse
パラメータの内容によっては hdc パラメータは無視される、といった内容が書
かれていますから、null 参照を渡してもいい場合もあるんでしょう。

> つーか未だにビットマップとイメージとグラフィックとデバイスコンテキストの
> 違いが分からない…

喩えると、ビットマップは、絵が描かれるキャンバスの一つです。グラフィッ
クスやデバイスコンテキストは、自分の前にあるキャンバスやその状態、絵の
描き方などを知っている画家です。

イメージは、ラスタイメージとベクトルイメージを統一して扱うための抽象で、
ビットマップは、ラスタイメージの一つです。グラフィックスとデバイスコン
テキストは、共に対象のデバイスやその属性を保持するオブジェクトですが、
グラフィックスは GDI+ のオブジェクトですし、デバイスコンテキストは GDI
のオブジェクトです。

> まあ待ってても回答無いようだから

それは、少し気が短いのでは…。

それから、この掲示板では、名前をころころ変えるスタイルは、あまり歓迎さ
れていないと思いますよ。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板