読者です 読者をやめる 読者になる 読者になる

CClientDC

MFC Sample

CClientDCは、クライアント領域のデバイスコンテキストクラス・・・。

CClientDC クラス

OnPaint内では、CPaintDCを使って描画を行った・・・。
CPaintDCのコンストラクタとデストラクタはWindowsAPIのBeginPaintとEndPaintの役割にあたる・・・。
OnPaint以外の場所で描画をしたい場合には、CClientDCを使う・・・。
CClientDCのコンストラクタとデストラクタはWindowsAPIのGetDCとReleaseDCの役割にあたる・・・。

前回、左クリックした位置座標をOnPaint内で描画したが、今回はOnLButtonDown内で描画する・・・。

オーバーライドするのは、

OnLButtonDownだけにする・・・。
で、OnLButtonDownの定義は、

CClientDCオブジェクトdcのコンストラクタでthisを渡すと、GetDCしたことと同じになる・・・。
今回はOnLButtonDownの引数でもらった座標を直接文字列にしてTextOutしている・・・。
でスコープを抜けるとdcは破棄されるので、このときReleaseDCもされる・・・。

実行すると、

f:id:BG1:20150425102139p:plain

今回はOnPaintで何もしてないので最初は表示されない・・・。
真ん中あたりでクリックすると、

f:id:BG1:20150425102226p:plain

クリックされた位置が(556, 272)と表示された・・・。

Sample/CWinApp_.h at master · bg1bgst333/Sample · GitHub
Sample/CWinApp_.cpp at master · bg1bgst333/Sample · GitHub
Sample/CFrameWnd_.h at master · bg1bgst333/Sample · GitHub
Sample/CFrameWnd_.cpp at master · bg1bgst333/Sample · GitHub