2009-05-11 15 views
0

編集:誰でもこれをwin32で試してみたら、DrawThemeBackground()を使って正しい方向に行っていますか?Win32とビジュアルスタイルを使用したボタンの背景透明度

最近、ComCtl32.dllのバージョン6のマニフェストを使用してVisual Stylesを有効にしました。 Win32でのビジュアルスタイルの例:Visual Styles

ボタンは大きく見えますが、ボタン周りの背景を透明にする方法はわかりません。例の画像を参照してください:私のメインウィンドウの背景色が濃い灰色に設定されているhttp://www.freeimagehosting.net/image.php?2bdeff33ba.jpg

a.hbrBackground = GetStockObject(DKGRAY_BRUSH); 

コモンコントロールを使用して初期化されています

INITCOMMONCONTROLSEX stylesStruct; 
stylesStruct.dwSize = sizeof(stylesStruct); 
stylesStruct.dwICC = ICC_STANDARD_CLASSES; 
InitCommonControlsEx(&stylesStruct); 

そして、私はとボタンウィンドウを作成:

j = CreateWindow(L"BUTTON", L"hello", 
    WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON, 100, 100, 
    100, 100, h, 0, hInst, 0); 

ボタンは白い背景によく見えます。b境界線が他のものよりも見えるようになります。ボタン周りの境界を透明にすることは可能ですか?

+0

あなたがそれを受け入れたにもかかわらず、あなたがここで探していた答えをまだ得られなかったように聞こえます。最近質問された[似たような質問への回答](http://stackoverflow.com/questions/4483599/transparent-background-of-xp-themed-control/4551951#4551951)それがあなたが探しているものではないかどうかを見てください。 –

答えて

1

WS_EX_TRANSPARENTを試しましたか?

私はあなたがそれを使用している場合は、Visual Studioのリソースエディタで設定できると思います。

+0

ありがとう、それは助けになります(ボーダーはより薄いです)。しかし、まだボタンの周りに薄い黒い境界があります。背景色で塗りつぶす方法があるかどうか知っていますか? – tyler