掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
bitmapの透過 (ID:55863)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
タイトルそのまんまで質問です。 今、自分はビットマップをメモリデバイスコンテキスト(HDC)を使っていたのを DIBに変えてみました。 HDCを使っていたときは、もう一つメモリを作っておき、マスクを描画しといて、 それを表に描画するときに透過処理をしていました。 けれど、DIBのほうはそんな方法使えないので、どうしたらいいのか困っています。 なにか良い方法は無いでしょうか?よろしくお願いします。 ついでに、HDCを使っていたときは以下のようにしていたのですが、 HDC hDC01, hDC01_mask; HBITMAP hBmp01, hBmp01_mask; WinAPI..... { WM_CREATE: hBmp01 = LoadImage(); hdc = GetDC(hWnd); hDC01 = CreateCOmpatibleDC(hdc); SelectObject(hDC01, hBmp01); DeleteDC() // Release? CreateMask(hDC01, hDC01_mask, hBmp01, &hBmp01_mask);//マスクを作る関数 //hDC01_mask と hBmp01_mask にマスクが作られる WM_PAINT: BitBlt(hdc, ..... , hDC01_mask, SRCAND); BitBlt(hdc, ......, hDC01, SRCPAINT); WM_CLOSE: DeleteDC(hDC01); DeleteObject(hBmp01); DeleteDC(hDC01_mask); Deleteobject(hBmp01_mask); } 色々なプログラムを見ていると、メモリデバイスを取得したらすぐ破棄しているのですが、 このように長期(プログラムの最初から最後まで)にわたって使っても大丈夫なのでしょうか?
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.