それをウィンドウに描画したいのですが、上手くいきません。
コード: 全て選択
Sub MainWindow_Paint(hDC As HDC)
BackGround(hDC)
End Sub
Sub BackGround(hDC As HDC)
'描画領域の取得
Dim rc As RECT
GetClientRect(hMessageWindow, rc)
'デバイスコンテキストの準備
Dim hMemDC As HDC, hBmp As HBITMAP
hMemDC=CreateCompatibleDC(hDC)
hBmp=CreateCompatibleBitmap(hMemDC, rc.right, rc.bottom)
SelectObject(hMemDC, hBmp)
'ここでhMemDCに対し描画を行う
'ウィンドウに描画
BitBlt(hDC, 0, 0, rc_Total.right, rc_Total.bottom, hDC_buf, 0, 0, SRCCOPY)
'オブジェクトを解放
DeleteObject(hBmp)
DeleteDC(hDC_buf)
End Sub
GetDCなどで取得したウィンドウのデバイスコンテキストに
直接描画することは出来るのですが、
デバイスコンテキストを作成して描画ということができません。
おそらくビットマップオブジェクトの扱いがおかしいと思うのですが
どうすればいいのでしょうか?
また、今回のようにデバイスコンテキストとオブジェクトを作成して
解放する際の手順についても教えていただけるとありがたいです。
例えば
1.DC(デバイスコンテキスト)を作成
2.Object1を作成、DCに設定
3.Object2を作成、DCに設定
とした場合の解放手順は
・DC -> Object1 -> object2
・Object2 -> Object1 -> DC
のどちらがいいのでしょうか?