• ベストアンサー

リージョンのフレームを描画する関数、FramRgn()

リージョンのフレームを描画する関数、FramRgn()について、 第三引数に、GetStockObject()は使えないんですか? 以下のエラーが出ました。 エラーコード FrameRgn(hdc,hrgn,GetStockObject(BLACK_BRUSH),2,5); 'void *' 型は 'HBRUSH__ *' 型に変換できない 3 番目のパラメータは HBRUSH__ * 型として定義されているので void * 型は渡せない 教えてください。

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

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

GetStockObjectの宣言はWinGDI.hでされています この宣言の戻り値は HGDIOBJとなっています GetStockObjectは ブラシ、ペン、フォント、パレットのいずれかのハンドルを返す関数です 特定のハンドル型を返すように宣言してしますと 他の型での利用が思わしくありません したがって 型を特定しない void型のポインタを返すことにしています GetStockObjectを使用する際には使用する場合に合わせてキャストします 今回の場合なら FrameRng( hdc, hrgn, (HBRUSH)GetStockObject( BLACK_BRUSH), 2, 5); といった具合にキャストして使いましょう ...

startover
質問者

お礼

すばやい回答どうもです! 丁寧に解り易く教えていただきありがとうございます! Thank youです!

関連するQ&A

専門家に質問してみよう