by 7 » 2006年6月27日(火) 09:17
CreateCompatibleDC()関数の引数が問題なんじゃないでしょうか。
指定されたデバイスコンテキストに対してコンパチブルなメモリデバイスコンテキストを作る訳なんですけど、たぶん 0 が指定されてて現在の画面に対するコンパチブルなメモリデバイスコンテキストを作っちゃってると。
[ここをクリックすると内容が表示されます] [ここをクリックすると非表示にします]コード: 全て選択
Dim hDC As HDC
Dim picMark As HDC
Dim bmMark As HBITMAP
Dim bmiMark As BITMAP
hDC=GetDC(hMainWnd)
LoadImg(hDC,"dat\bmp\system\mark.bmp",picMark,bmMark,bmiMark)
' なんらかの処理
' 片付け
ReleaseDC(hMainWnd,hDC)
DeleteDC(picMark)
'----------------------------------------------------------------------
' リソースからイメージを読み込む
'----------------------------------------------------------------------
Sub LoadImg(ByVal hDC As HDC,ByVal ImgPath As BytePtr,ByVal hTargetDC As HDC,ByVal hTargetBITMAP As HBITMAP,ByRef hTargetBITMAPINFO As BITMAP)
hTargetDC = CreateCompatibleDC(hDC)
hTargetBITMAP = LoadImage(NULL,ImgPath,IMAGE_BITMAP,0,0,LR_LOADFROMFILE)
GetObject(hTargetBITMAP,sizeof(BITMAP),hTargetBITMAPINFO)
SelectObject(hTargetDC,hTargetBITMAP)
End Sub
CreateCompatibleDC()関数の引数が問題なんじゃないでしょうか。
指定されたデバイスコンテキストに対してコンパチブルなメモリデバイスコンテキストを作る訳なんですけど、たぶん 0 が指定されてて現在の画面に対するコンパチブルなメモリデバイスコンテキストを作っちゃってると。
[hide][code]Dim hDC As HDC
Dim picMark As HDC
Dim bmMark As HBITMAP
Dim bmiMark As BITMAP
hDC=GetDC(hMainWnd)
LoadImg(hDC,"dat\bmp\system\mark.bmp",picMark,bmMark,bmiMark)
' なんらかの処理
' 片付け
ReleaseDC(hMainWnd,hDC)
DeleteDC(picMark)
'----------------------------------------------------------------------
' リソースからイメージを読み込む
'----------------------------------------------------------------------
Sub LoadImg(ByVal hDC As HDC,ByVal ImgPath As BytePtr,ByVal hTargetDC As HDC,ByVal hTargetBITMAP As HBITMAP,ByRef hTargetBITMAPINFO As BITMAP)
hTargetDC = CreateCompatibleDC(hDC)
hTargetBITMAP = LoadImage(NULL,ImgPath,IMAGE_BITMAP,0,0,LR_LOADFROMFILE)
GetObject(hTargetBITMAP,sizeof(BITMAP),hTargetBITMAPINFO)
SelectObject(hTargetDC,hTargetBITMAP)
End Sub[/code][/hide]