vc++ コントロールの色を変える

[戻る]
久雄 [E-Mail] 2002/09/12(木) 18:05:35
はじめまして
 初心者です。

VC++ 6.0 MFCで開発しています。

ON_WM_CTLCOLORでコントロールのテキストの色を変えたいのですが
上手くいきません。

ON_WM_CTLCOLORで
  コンポボックスのドロップドウンで選択し表示した文字の色の変更はできるのでしょうか。
  また
  ボタンのキャプションで指定した文字の色の変更はできるのでしょうか。


 因みにボタンのとき以下のようにしています。
 コンポボックスは全くわかりません。
 宜しくお願いします。


HBRUSH axc::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
    
    // TODO: この位置で DC のアトリビュートを変更してください
    
    if( nCtlColor == CTLCOLOR_BTN  ) {
        if( pWnd == &m_Bott_Color10 ) {
            m_brBkgnd.DeleteObject();
            m_ctlText = RGB(0, 0, 0);
            m_ctlBkgnd = RGB(0, 0, 255);
            m_brBkgnd.CreateSolidBrush( m_ctlBkgnd );

            pDC->SetTextColor( m_ctlText );
            pDC->SetBkColor( m_ctlBkgnd );
            return m_brBkgnd;
        }
    }else{
        return CDialog::OnCtlColor( pDC, pWnd, nCtlColor );
    }

kazuma 2002/09/12(木) 22:47:02
> ボタンのキャプションで指定した文字の色の変更はできるのでしょうか。

オーナー描画するか、テキストを書き込んだビットマップを貼り付けてください。

> コンポボックスのドロップドウンで選択し表示した文字の色の変更はできるのでしょうか。

OnCtlColorで、
nCtlColorがCTLCOLOR_LISTBOXやCTLCOLOR_EDITのときに処理してください。
選択状態のアイテムの色を変えたい場合はオーナー描画してください。

古いスレッドには追加発言できません。