GetStockObjectは、定義済みのペンやブラシ、フォントなどのGDIオブジェクトのハンドルを取得するWindowsAPI・・・。
LineToのような線を引くAPIではペン、Rectangleのような図形APIで塗りつぶしをする時にはブラシ、TextOutのような文字列描画APIではフォント、というようにそれぞれのAPIには必要な道具があり、それらをGDIオブジェクトという・・・。
色を変えたりなど、カスタマイズをする時は、既定のGDIオブジェクトの中から別のものに変更するか、新規に作成する必要がある・・・。
GetStockObjectは、指定された既定GDIオブジェクトのハンドルを返す・・・。
それを使って、色を変えたりできる・・・。
(といっても太さとかは変えられないし、色も白かグレー3種類か黒ぐらいだけど・・・。)
WM_PAINTで、
ペンのオブジェクトはHPEN型のhPen、ブラシのオブジェクトはHBRUSH型のhBrush、に入れることとする・・・。
GetStockObjectで黒いペン(BLACK_PEN)と、灰色のブラシ(GRAY_BRUSH)を取得して、それぞれhPenとhBrushに格納してる・・・。
実はGetStockObjectの戻り値は、HGDIOBJというものなので、それらをオブジェクトごとにHPENやHBRUSHなど合うものにキャストしてる・・・。
で、ここでは、
取得したハンドルをTextOutで出力しているだけ・・・。
こんな感じ・・・。
色を変えるにはこれだけではダメで、この後で扱うSelectObjectでこのハンドルを指定しないといけない・・・。
Sample/GetStockObject.cpp at master · bg1bgst333/Sample · GitHub