ビットマップ処理がうまくいかない

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: ビットマップ処理がうまくいかない

解決しました

by ganas » 2006年6月27日(火) 21:12

助言していただき、ありがとうございました。

以下のように修正したところ動作しました。

コード: 全て選択


Sub LoadImg(ImgPath As BytePtr,ByRef hWindow As HWND,ByRef hTargetDC As HDC,ByRef hTargetBITMAP As HBITMAP,ByRef hTargetBITMAPINFO As BITMAP)
	Dim hDC As HDC
	hDC = GetDC(hWindow)
	hTargetDC = CreateCompatibleDC(hDC)
	hTargetBITMAP = LoadImage(NULL,ImgPath,IMAGE_BITMAP,0,0,LR_LOADFROMFILE)
	GetObject(hTargetBITMAP,sizeof(BITMAP),hTargetBITMAPINFO)
	SelectObject(hTargetDC,hTargetBITMAP)
	ReleaseDC(hWindow,hDC)
End Sub

by イグトランス » 2006年6月27日(火) 17:12

どちらにしてもhTargetBITMAPは外から値渡し(ByVal)で渡す意味がありません。
関数内で変数宣言するか,或いはByRefにするかのどちらかになると思います。

by 7 » 2006年6月27日(火) 09:17

CreateCompatibleDC()関数の引数が問題なんじゃないでしょうか。
指定されたデバイスコンテキストに対してコンパチブルなメモリデバイスコンテキストを作る訳なんですけど、たぶん 0 が指定されてて現在の画面に対するコンパチブルなメモリデバイスコンテキストを作っちゃってると。

ビットマップ処理がうまくいかない

by ganas » 2006年6月27日(火) 01:35

今回、次のようなプログラムを使って、ビットマップを読み込むプログラムを作りました。
そして、実行するのですが、ソースコードに書いてある SelectObject(hTargetDC,hTargetBITMAP) の部分で[ハンドルが無効です]というエラーが発生します。

画像が正しくロードされているのは確認済みです。

なお、picMarkは、そのままBitBltなどで転送するためのものです。

ページトップ