- ベストアンサー
チェックボックスのテキストを背景に透過させるには?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
WM_CTLCOLORDLG: WM_CTLCOLORSTATIC: などのメッセージで、 関数 SetBkMode(hDC, TRANSPARENT); // 背景を透過 及び HBRUSH hbkgnd = NULL;として、 if( !hbkgnd){ LOGBRUSH lb; lb.lbStyle = BS_SOLID ; lb.lbColor = RGB( 111, 111, 111 ); hbkgnd = CreateBrushIndirect( &lb ); } //if( !hbkgnd) return( ( LRESULT ) hbkgnd ); チェックボックスのテキスト部分を透過処理できるとおもいます。 細かいことは以下参考、 http://www17.plala.or.jp/page-zero/programming-w.html
その他の回答 (1)
VCを使ったことがないのでわからないのですが、以下のページがご参考にならないでしょうか。見当はずれかバージョン違いなどでしたら申し訳ありません。
お礼
いえいえ、とても参考になりました。 そちらのページで同じような質問を探してはいたのですが見落としていたようです。 ありがとうございます!
関連するQ&A
- チェックボックスの周囲の色が
灰色になって困っています。 なおチェックボックスは hC0=CreateWindow(TEXT("BUTTON"),TEXT("Check"),WS_CHILD|WS_VISIBLE|BS_CHECKBOX|BS_AUTOCHECKBOX,0,0,0,0,hWmain,NULL,hI,NULL); によって作りました。 スタイルを変えるなりメッセージをセンドするなりして白くできるのでしょうか?
- ベストアンサー
- C・C++・C#
- CreateWindow で作ったウィンドウが白いんですが
VC++ 6.0 で CreateWindow で作ったウィンドウが 白いんですが、これを、メッセージボックスと同じ色(鉛色?)にするにはどうしたらいんでしょうか。 あるいは、その逆、チェックボックス等に付属するテキスト文字の背景を白くできればそれでもかまいません。 (デフォルトで灰色なので) ↓ CreateWindow("BUTTON", "このテキスト背景が灰色", WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX, Window_Width, Window_Height, NULL, NULL, hWnd, NULL);
- ベストアンサー
- C・C++・C#
- ボタンの文字の大きさを変更したい
CreateWindow によるボタンを作成してみたのですが、 ボタンラベルとして貼る以下の "明朝" という文字の大きさを 変えるにはどうすればいいのでしょうか。 hButtonWnd1 = CreateWindow("BUTTON", "明朝", S_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 20, 20, 100, 30, hWnd, (HMENU)ID_MI, hInst, NULL);
- 締切済み
- 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#
- テキストボックスからフォーカス外す
editBox = CreateWindow( "EDIT", "あああ", SS_CENTER | WS_CHILD | WS_VISIBLE, 0,0,100,20, hWnd, NULL, hInstance, NULL); テキストボックスのフォーカスを外すにはどうしたら いいんですか? ESCキーでフォーカスを外そうと思ったら、 テキストボックスにフォーカスがあるせいで case WM_KEYDOWN が動作しません。 フォーカスを外すというソース自体も分かっていません。 case WM_KEYDOWN: if( wParam == VK_ESCAPE ) ? break;
- ベストアンサー
- 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#
- エディットボックス内でキー押されたときのメッセージ
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#
- 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#
- ボタンのアイコン表示
開発環境:Vista Visual Studio2012 C言語 CreateWindowで作成したボタンを、アイコン表示にしたいのですけれど上手くいきません。 どこが悪いのでしょうか? HWND CreatePushButton(HWND hwnd, int x, int y, int w, int h, LPCTSTR caption, int id) { return CreateWindow( _T("BUTTON"), caption, WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON | BS_ICON ; x, y, w, h, hwnd, (HMENU)(INT_PTR)id, G_hInst, NULL ); } LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { static HWND hButton; static HICON m_hIcon; switch (uMsg) { case WM_CREATE: //ウィンドウが作られたとき hButtonREC = CreatePushButton( hwnd, 20, 20, 80, 40, _T("テスト"), ID_BUTTON ); m_hIcon = LoadIcon( NULL , IDI_ERROR ); SendDlgItemMessage( hButtonREC, ID_BUTTON_RCE, BM_SETIMAGE, IMAGE_ICON, (LPARAM)m_hIcon); }
- ベストアンサー
- C・C++・C#
- c++ で web browser
windows 7 32 vs c++ 2010 で web browser を作成しようとして躓いています windows xp 32 vs c++ 2010 で動いた 下記コードを 7 で実行すると CreateWindow されません。 ie_hWnd = CreateWindow("AtlAxWin", "Shell.Explorer.2", WS_CHILD | WS_VISIBLE, 0, 0, 500, 500, main_hWnd, NULL, GetModuleHandle(NULL), NULL); 何をどう変えれば 7 でも動くようになりますか? よろしくお願いします。
- 締切済み
- C・C++・C#
お礼
解決いたしました。 リンクも大変参考になりました。 ありがとうございます!!