dポイントプレゼントキャンペーン実施中!

//ボタン
hStaticB = CreateWindowEx(0,
"BUTTON", "",
WS_CHILD | WS_VISIBLE | WS_BORDER|WS_EX_TRANSPARENT,
0,0,CONTROLSIZE_X,CONTROLSIZE_Y,hDlg, (HMENU)ID_BUTTON, hInst, NULL);

でボタンを作った後に
SetLayeredWindowAttributes(hStaticB,0,50,LWA_ALPHA);
をするのですが 透過率50%になりません。
どうしたら半透明のボタンを作れるでしょうか?


自分で調べた結果、子Window(ここではボタン)には、透過率を
設定できない という情報を見たのですが・・。

よろしくおねがいします。
画像は、(0,0)に細長いボタンを張り付けた図でこのボタンを
半透明化させたいのです。

※添付画像が削除されました。

A 回答 (2件)

 こんばんは。



 hStaticB = CreateWindowEx(WS_EX_LAYERED, "BUTTON", "", WS_CHILD | WS_VISIBLE | WS_BORDER, 0, 0, CONTROLSIZE_X, CONTROLSIZE_Y, hDlg, (HMENU)ID_BUTTON, hInst, NULL);
 SetLayeredWindowAttributes(hStaticB, 0, 127, LWA_ALPHA);

 で出来ませんか。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
hStaticB = CreateWindowEx(WS_EX_LAYERED, "BUTTON", "", WS_CHILD | WS_VISIBLE | WS_BORDER, 0, 0, CONTROLSIZE_X, CONTROLSIZE_Y, hDlg, (HMENU)ID_BUTTON, hInst, NULL);
 SetLayeredWindowAttributes(hStaticB, 0, 127, LWA_ALPHA);
とすると、ボタン自体が作成されず?に表示されないです。

うーん やっぱり子Windowを透明化させるのは無理なのかな。

お礼日時:2009/09/05 20:55

 こんばんは。

御礼頂きました。

 先程、実際に試して見ましたが、レイヤード指定してボタンを作成した所、失敗しました。親ウィンドウ(実験台はダイアログ)にレイヤード指定した所、ダイアログが見事に半透明になったので、単品のコントロールにレイヤード指定する事は出来ない見たいです。
    • good
    • 0
この回答へのお礼

こんばんは
やはりできないみたいですね。。
C#を駆使すればできるかもしれないけれど、、
ありがとうございました!

お礼日時:2009/09/06 21:54

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!