0

win32アプリ(MFCなし)に所有者描画ボタンを実装しました。ボタンは通常の20x20ビットマップ(透明度のある丸いアイコン)です。問題は、ボタンが無地の背景に配置されており、ボタンが灰色の背景に見えることです(ビットマップが丸いため)。NULL_BRUSHを使用してWM_CTLCOLORBTNに応答しようとしましたが、うまくいきませんでした。ビットマップとicoファイルを使用してボタンを表示しようとしましたが、うまくいきません。この問題を解決する方法を知っている人はいますか?

これは私の問題です。設定アイコンは端が透明である必要があります(白/灰色ではありません)

ここに画像の説明を入力してください

4

3 に答える 3

2

長方形以外のコントロールを作成しようとしているようです。

SetWindowRgn呼び出して、コントロールが長方形ではないことをWindowsに通知できます。

于 2011-10-30T21:18:36.300 に答える
1

@joelの答えに加えて、一部の領域を透明にしたい場合は、いくつかの画像エディタ(RGB(0xFF、0x00、0xFF))を使用して透明にしたい領域に一意の色を入れます次にTransperantBltを使用します

于 2011-10-31T11:40:36.180 に答える
1

あなたはそれが無地の背景だと言いますが、あなたの画像は背景としてある種のオレンジイエローのグラデーションを示しています. それが本当に標準の Windows ボタンの単色である場合は、LR_LOADMAP3DCOLORS または LR_LOADTRANSPARENT を使用して LoadImage でビットマップをロードできます。グラデーションがあるため、ビットマップをマスクするには、より複雑な手法を使用する必要があります。 http://www.winprog.org/tutorial/transparency.html

于 2011-10-31T14:14:30.050 に答える