C/C++ ( Windows API 実装で GUI ) でやっています。
Windows API 実装で GUIを組んでいますが、
コントロールの色づけができないです。
※ 一応「Windows API コントロール 色づけ」等でも検索してみました。
CCommandクラスというクラス ( ウィンドウプロシージャ内で動き、VB等のような感じです。 )
を作り、
C++
1/* YELLOW や BLACK 等は RGBで指定するのが面倒なので 2#define BLACK RGB(...) 3のように定義しています。*/ 4 5class CCommand{ 6 public: 7 LRESULT ColoringStatic( WPARAM wp, LPARAM lp ){ 8 HWND hControl; 9 10 hControl = (HWND)lp; 11 12 switch( GetDlgCtrlID( hControl ) ){ 13 case 102: 14 return this->Color( 102, YELLOW, BLACK ); 15 } 16 } 17 18 ... // その他メンバ関数 19 private: 20 LRESULT Color( int ControlID, COLORREF fontColor, COLORREF bgColor ){ 21 HBRUSH bkColorBrush; 22 SetBkMode( (HDC)GetDlgItem( this->hWnd, ControlID ), TRANSPARENT ); 23 SetTextColor( (HDC)GetDlgItem( this->hWnd, ControlID ), fontColor ); 24 bkColorBrush = CreateSolidBrush( bgColor ); 25 return (LRESULT)bkColorBrush; 26 } 27 28 HWND hWnd; // 担当するウィンドウ 29 30 ... // その他 31}; 32 33``` 34 35でやって、 36 37WM_CTLCOLORSTATICメッセージを受け取ったときに 38 39ウィンドウプロシージャ内で 40 41return Command.ColoringStatic( wp, lp ); 42 43としています。 44 45コンパイルは通り、動くことは動くのですが、 46コントロールの色が変です。 47 48本来なら、 49 50Staticコントロール部分全体の色が 黒で、文字色が黄色 51 52になるはずが、 53 54実際には 55背景色 は黒で OKですが、文字部分が "白色の画像に文字を書いた画像" をコントロールに張り付けられているような 56感じです。 57 58これを回避するにはどうすればいいでしょうか。 59 60[環境等] 61言語: C/C++ ( Windows API 実装 ) 62コンパイラ: MinGW 63 64宜しくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/10/25 02:33