ページ 11

画像透明化クラス

Posted: 2012年11月08日(木) 20:23
by ShellExecute
透過処理が面倒なのでクラスにまとめてみました。

私自身、最近になって画像を表示させることができたくらいの初心者ですので、間違っている箇所があるかもしれません。(一応動作はしました。)

間違えている点、追加する点があればご指摘ください。

コンストラクタなし
●CreateTSPARENT
画像を透過して保持
hDC 貼り付け先(予定)のデバイスコンテキスト
bmp 元の画像
bkColor 透明化する色(RGB(○,△,□)などで指定)

●DeleteData
保持しているデータを破棄

●PrintData
保持しているデータを貼り付け
hDC 貼り付け先のデバイスコンテキスト
x 貼り付け位置(X座標)
y 貼り付け位置(Y座標)
----以下省略可----
w 貼り付け幅
h 貼り付け高さ
moto_x 元の画像読み込み開始位置(X座標)
moto_y 元の画像読み込み開始位置(Y座標)
moto_w 元の画像読み込み幅
moto_h 元の画像読み込み高さ

w,h,moto_w,moto_hは0でデフォルト
wは-1で元画像の比率でhに合わせる
hは-1で元画像の比率でwに合わせる

省略箇所は0指定と同じ

CreateTSPARENTのbmpには淡幻星様作成のWsEasyPicsクラスから取得したビットマップハンドルを格納しても動作することを確認しました。(その場合はWsEasyPicsではなく、当クラスのPrintBmpを使ってください。)

使用例↓ WsEasyPicsを使わせていただく場合は

問題発見

Posted: 2012年11月08日(木) 20:30
by ShellExecute
投稿してすぐ問題に気づきました。

使用例のMainWnd_Destroy()に

コード: 全て選択


DeleteObject(hBmp)
が必要ですよね。