コンボボックスに色を付ける – プログラミング – Home

コンボボックスに色を付ける
 
通知
すべてクリア

[解決済] コンボボックスに色を付ける


YASUDA
 YASUDA
(@YASUDA)
ゲスト
結合: 16年前
投稿: 24
Topic starter  

VC++2005 MFC ダイアログベース

ダイアログBOXにドロップダウン コンボボックスが2個あり、
そのそれぞれに違った色を付けたいと思っています。
IDC_COMBO1 → 赤
IDC_COMBO1 → 緑

------------------------------------------------------------------------------
ComboBox を基本クラスとする
CColorComboBox クラスを新規作成して

WM_CTLCOLOR をオーバーライドして色を付ける事はできたのですが、
それぞれのコンボボックスに違った色を指定する方法がわかりません。
どうしたら良いでしょうか?

------------------------------------------------------------------------------
// CMainDlg.h メインダイアログのヘッダファイル
#include CColorComboBox.h
class CMainDlg : public CDialog
{
CColorComboBox m_combo1;
CColorComboBox m_combo2;
}

// CMainDlg.cpp メインダイアログ
void CMainDlg::DoDataExchange( CDataExchange* pDX )
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_COMBO1,m_combo1);
DDX_Control(pDX, IDC_COMBO2,m_combo2);
}

// CColorComboBox.cpp コンボボックスを基本クラスするクラス
#include CColorComboBox.h
HBRUSH CColorComboBox::OnCtrColor( CDC* pDC,CWnd* pWnd, UINT nCtlColor )
{
HBRUSH hBr = CCOmbobox::OnCtlColor(pDC,pWnd,nCtlColor);
pDC->SetBkColor( RGB( 255, 0, 0) ); //赤
hBr = m_RedBrush; //m_RedBrush.CleateSolidBrush(RGB( 255, 0, 0));
}


引用未解決
トピックタグ
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

OnCtlColor の nCtlColor がコントロール ID なので、これでどのコントロールの
OnCtlColor が呼ばれているのかを識別して処理を分けます。

…ん? OnCtlColor を CComboBox の派生クラスに実装してるの?
CMainDlg で処理するなら上記のようになります。

今の形で行くなら、CColorComboBox に「自分の色」を何らかの形で伝えてやればよいの
では。メンバ関数増やすとか。


返信引用
YASUDA
 YASUDA
(@YASUDA)
ゲスト
結合: 16年前
投稿: 24
Topic starter  

http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200907/09070037.txt

連投してしまいました。
上記URLにコメントさせていただきます。
まだ未解決ですが、こちらは解決にします。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました