タイトル : Re^8: GetDIbitsの使用方法について 投稿日 : 2014/03/16(Sun) 08:59 投稿者 : 還暦手習い
魔界の仮面弁士様、ご指導ありがとうございます。 >> ディスクトップ >ディスクトップ(disctop:盤上)ではなく >デスクトップ(desktop:卓上)です。 >> ウインドハンドル >ウィンドハンドル(wind-handle:風のハンドル)ではなく、 >ウィンドウハンドル(window-handle:窓のハンドル)です。 ・申し訳ありませんでした。記載ミスです。理解できております。 >ところで、取得したリソースは使用後に解放していますよね? ・記載は省略しておりましたが、DeleteDCやReleaseDCはそれなりに理解して使用 しております。 >> MSDNで調べました。 >> 結果はチンプンカンプンでした。 >どこまで分かっていて、どこからチンプンカンプンなのか分からないので、ざっ くり書くと: ・hdc デバイスコンテキストのハンドルを指定します。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ↑Frame1のデバイスコンテキストのハンドルではないのですよね。 なにのデバイスコンテキストのハンドルかがわかりません。 hgdiobj 選択対象のオブジェクトのハンドルを指定します。選択対象のオブジェクトは、 次の関数のいずれかを 使って作成しておかなければなりません。 ビットマップ CreateBitmap、CreateBitmapIndirect、CreateCompatibleBitmap、 CreateDIBitmap、CreateDIBSection (メモリデバイスコンテキストでのみビット ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ↑意味がわかりません。調べる必要有り! マップを選択できます。また、一度に1つのデバイスコンテキストでのみ選択でき ます。) ・・ひとつ調べるとまた意味不明の語句あり、自分にとってはまるで「無間地獄」 の状態になっています。 ・魔界の仮面弁士や花ちゃんのようにすべてを理解した上で、使用できれはいいので しょうが、今の自分にとっては、「良くわからないけど、やってみたら狙い通りに できた=うれしい!」ってのがさらに次ステップへ進めるモチベーションになるの です。理解より達成感が、次の階段を踏み出す大きな動機付けなのです。 >>SelectObjct は、直前に設定されていたオブジェクトを返します。 非互換のオブジェクトを渡した場合は、失敗を表すゼロが返されます。 >>>> ohbm = SelectObject(Frame1DC, hbm) >>>> Debug.Print ohbm '← 0 がPrintされる = Error? ・つまりFrame1DCは「非互換のオブジェクト」ということなんでしょうか。 ここで指定するデバイスコンテキストのハンドルは、何を使用したらいいのでしょ うか? ●それとも、そもそもFrame1に表示された画像のピクセル単位の色情報をGetDIBitsを 使って取得することは不可能なのでしょうか。 時間のかかるGetpixelでしか対応できないのでしょうか? |