掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ボタン背景の描画方法は? (ID:67179)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
ボタンをオーナードローしています。 円形のボタンを描画するためにマスク画像との演算で合成させようとしました。 HDC hMemDC; if ( (hMemDC = CreateCompatibleDC(hDC)) != NULL ){ HBITMAP hSelBmp = (HBITMAP)SendMessage( hWnd, BM_GETIMAGE, IMAGE_BITMAP, 0 ); int pos; if ( itemState & ODS_DISABLED ){ // 無効状態 pos = 3; } else if ( itemState & ODS_SELECTED ){ // 押された状態 pos = 2; } else if ( itemState & ODS_FOCUS ){ // フォーカス状態 pos = 0; } else{ // 通常の状態 pos = 1; } // マスクの描画 SelectObject( hMemDC, hMaskBitmap ); BitBlt( hMemBitmapDC, 0, 0, PUSH_XSIZE, PUSH_YSIZE, hMemDC, 0, 0, SRCAND ); // ボタンの描画 SelectObject( hMemDC, hSelBmp ); BitBlt( hDC, 0, 0, PUSH_XSIZE, PUSH_YSIZE, hMemDC, (PUSH_XSIZE * pos), 0, SRCPAINT ); // 後始末 DeleteDC( hMemDC ); } こんな感じですが円形の外周が上手く表示されません。 いろいろと試して気づきました。 最初にボタンの背景部分を描画していないようです。 そこで質問です。 ボタンの背景を描画するにはどうすれば良いでしょうか? 最初は NULL_BURSH を使いましたが出来ませんでした。 ダイアログで作っています。 このとき WM_CTLCOLORDLG メッセージを処理してウインドウ全体を 外部のビットマップ(ファイル)より描画しています。 このビットマップのボタン領域をボタンのオーナードローのときに 描画させたいのです。そうしないとマスクの描画を SRCAND しても 無意味で円形の外周が上手く表示されませんので。 どうすればボタン領域の背景(WM_CTLCOLORDLG で描画している画像)を ボタンのオーナードロー時に描画すれば良いでしょうか? お願い致します。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.