- ベストアンサー
Button(コントロール)を半透明化する方法
- ボタンの透明化方法についてご質問です。
- ボタンの作成後にSetLayeredWindowAttributes関数を使用して透明化を試みましたが、うまく50%の透明化ができませんでした。
- 調査したところ、子ウィンドウ(ボタン)には透明化を設定することができないという情報を得ました。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (1)
- machongola
- ベストアンサー率60% (434/720)
関連するQ&A
- ボタンの文字の大きさを変更したい
CreateWindow によるボタンを作成してみたのですが、 ボタンラベルとして貼る以下の "明朝" という文字の大きさを 変えるにはどうすればいいのでしょうか。 hButtonWnd1 = CreateWindow("BUTTON", "明朝", S_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 20, 20, 100, 30, hWnd, (HMENU)ID_MI, hInst, NULL);
- 締切済み
- C・C++・C#
- ListBoxコントロール
hLB1=CreateWindow ("LISTBOX","",WS_CHILD|WS_VISIBLE|LBS_STANDARD, 0,0,300,150,hwnd,(HMENU)1,cs->hInstance,NULL); hLB2=CreateWindow ("LISTBOX","",WS_CHILD|WS_VISIBLE|LBS_STANDARD, 0,160,300,150,hwnd,(HMENU)2,cs->hInstance,NULL); という風に2つのListBoxコントロールを作っているサンプルを見たのですが (HMENU)1と(HMENU)2のところをともにNULLにしたら問題なのでしょうか。
- ベストアンサー
- C・C++・C#
- CreateWindowEx のウィンドウスタイルが反映されないのですが・・・
CreateWindowEx のウィンドウスタイルが反映されないのですが・・・ VC++6.0 の SDK にて、ウィンドウを表示するプログラムを作成中なのですが、 スタイルが思うように反映されません。なぜなのでしょうか。 hList = CreateWindowEx( 0, WC_LISTVIEW, "", WS_CHILD | WS_VISIBLE |//猫でもわかる ~ によるうとデフォルトで必要らしい WS_EX_CLIENTEDGE | // 縁が沈んで見える境界線を持ちます。→ 持ちません WS_EX_ACCEPTFILES | // ドラッグ&ドロップを受けるとあるが、テキストをドロップしても×マーク WS_EX_RIGHTSCROLLBAR | // 右スクロールバーが出るはずなのに・・・ LVS_REPORT, // カラムのタイトル 0, 0, 0, 0, hWnd, (HMENU)LISTVW_HI_1, hInst, NULL);
- ベストアンサー
- C・C++・C#
- チェックボックスのテキストを背景に透過させるには?
VC++6.0です。 hCheckWnd = CreateWindow("BUTTON","checkbox", WS_CHILD | WS_VISIBLE | BS_CHECKBOX, 0,0,100,50, hWnd,NULL,hInst,NULL); で作成したチェックボックスのテキストが背景色から浮いてしまい困っています。 背景色に透過させるか色を指定して背景色と同色にするか出来ればいいのですが方法がわからずにいます。 宜しくお願いします。
- ベストアンサー
- C・C++・C#
- ダイアログボックスのボタンコントロールのフォーカスについて
ダイアログボックスのボタンコントロールのフォーカスについて 教えて下さい。 モーダルダイアログにボタン「OK」を一つ貼り付けて それを「標準のボタン」(BS_DEFPUSHBUTTON)として作成したのですが ダイアログ表示直後は下画像(1)のようになってエンターキーを押しても 反応しません。何度かカーソルキーを押すとようやく(2)のように ボタンに枠線がついてエンターで押せるようになるのですが ダイアログ表示直後に(2)のようにするにはどうするべきでしょうか? ダイアログのコールバック・プロシージャ(WM_INITDIALOG部分でボタン作成) LRESULT CALLBACK SettingWndProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp){ switch (msg){ case WM_INITDIALOG: CreateWindowEx(0x00000000,"BUTTON","OK", WS_CHILD |WS_VISIBLE| WS_TABSTOP | BS_DEFPUSHBUTTON, 16,16,80,21,hWnd,(HMENU)IDOK,GetModuleHandle(0),0); return TRUE; } return FALSE; }
- ベストアンサー
- C・C++・C#
- Windowハンドルを再利用できない
hPushBox=CreateWindow("BUTTON","a",WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,0,0,0,0,hW,HMENU(0), ((LPCREATESTRUCT)lP)->hInstance,NULL);DestroyWindow(hPushBox); hPushBox=CreateWindow("BUTTON","a",WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,0,0,0,0,hW,HMENU(0), ((LPCREATESTRUCT)lP)->hInstance,NULL);DestroyWindow(hPushBox); Window処理関数で上記のようにするとコンパイルは通るのに実行がエラーになります 1度使ったハンドルをウィンドを破棄した後使えるようにするにはどうしたらいいのでしょうか?
- ベストアンサー
- C・C++・C#
- エディットボックス内でキー押されたときのメッセージ
VC++6.0です。 メインウインドウ内のエディットボックス(一行)で、特定のキー入力を検知したいのですが、どのようにすればよいでしょうか。 mfcは使ってません。 //ウインドウプロシージャ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { switch( message ) { case WM_CREATE: //エディットボックスを作成 CreateWindowEx( WS_EX_CLIENTEDGE, "EDIT","", WS_CHILD|WS_VISIBLE|ES_AUTOHSCROLL, 0,0,2000, 20, hWnd, (HMENU)IDC_EDIT, g_hInst, NULL ); break; case WM_COMMAND: //エディットボックス内の変更はEN_CHANGEで受け取れるが、 //キーコードは送られてこない break; } }
- 締切済み
- C・C++・C#
- コントロール内の文字の背景色
hSWnd = CreateWindow("STATIC","あいう",WS_CHILD | WS_VISIBLE, 0,0,320,240,hWnd,NULL,hInst,NULL); に対して、 case WM_CTLCOLORSTATIC: hBrush = CreateSolidBrush(RGB(0, 255, 0)); return (LRESULT)hBrush; break; とすると、hSWnd は緑になるけど、hSWnd の あいう の文字の 背景色が白です。 その白の部分を赤にするソースを教えてください。
- ベストアンサー
- C・C++・C#
- 次のようにEditを作成し
hE=CreateWindow ("EDIT",NULL,WS_CHILD|WS_VISIBLE|ES_MULTILINE|ES_AUTOVSCROLL|WS_VSCROLL|WS_BORDER,0,0,0,0,hWmain,HMENU(IDE),hInst,NULL); 使っていますが SetWindowTextでhEの大容量の文字列を送ったのですが 表示させているエディット画面の下に表示画面一行目が最初から何行目にあるか表示させようと思っています どんなメッセージをそれを送れば取得できるでしょうか? 例えばListでいえば i=(int)SendMessage(hL,LB_GETTOPINDEX,0,0); のようなものを知りたいのです
- ベストアンサー
- C・C++・C#
- ツールバーについて教えてください。
ツールバーについて教えてください。 ツールバーを普通にウィンドウの上の所に表示はうまくいくのですが、 左や右側に表示するとうまくいきません。 うまくいかないとは表示されたツールバーの右側に余分なスペースみたいなものが出来ているのです。 なにが原因で起きているのかわかりません。 どなたか教えてください。 以下に関係がありそうなところを載せます。 ================================================ TBBUTTON tbb[] = { {0, IDM_BUTTON1, TBSTATE_WRAP | TBSTATE_ENABLED | TBSTATE_CHECKED, BTNS_CHECK | BTNS_GROUP}, {1, IDM_BUTTON2, TBSTATE_WRAP | TBSTATE_ENABLED, BTNS_CHECK | BTNS_GROUP}, }; ================================================ hTool = CreateWindow(TOOLBARCLASSNAME, NULL, WS_CHILD | WS_VISIBLE | CCS_LEFT | TBSTYLE_LIST, 0, 0, 0, 0, hWnd, (HMENU)ID_TOOLBAR, hInst, NULL);
- 締切済み
- C・C++・C#
お礼
回答ありがとうございます。 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を透明化させるのは無理なのかな。