エディットボックスの背景色描画について

[戻る]
ろっく 2011/08/01(月) 17:56:41
以下の方法でWindows7で動作させたところ、
描画されませんでした。。。(XPはOKです。)

何かOSで仕様が違うのでしょうか???



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

//ヘッダファイル
CBrush    m_brEditM0;        // エディットボックスの背景色ブラシ(追加)

#define EDITBOX_COLOR_M0 RGB(0,0,255)

//コンストラクタ
m_brEditM0.CreateSolidBrush( EDITBOX_COLOR_M0 );    // 背景

//デストラクタ
m_brEditM0.DeleteObject();     // 背景



HBRUSH C*****Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
    switch(nCtlColor){    
        case CTLCOLOR_STATIC:
               if ( pWnd->GetDlgCtrlID() == IDC_EDIT_Coloer_M0 ) {
                    //pDC->SetBkMode(OPAQUE);
                    //pDC->SetBkMode(TRANSPARENT);                
                 pDC->SetBkColor( EDITBOX_COLOR_M0 );
                return (HBRUSH) m_brEditM0;
            }
    }
    return hbr;
}

瀬戸っぷ [E-Mail] 2011/08/01(月) 18:17:09
>以下の方法でWindows7で動作させたところ、
>描画されませんでした。。。(XPはOKです。)
>何かOSで仕様が違うのでしょうか???

ビジュアルスタイルではこちらの方法ではうまくいかないと思われますが…その辺りはど
うなっていますか?

# Windows7の導入はまだなので確認できませんけど。

ろっく 2011/08/02(火) 09:33:53
コメント有難うございます。

>ビジュアルスタイルではこちらの方法ではうまくいかないと思われますが…
>その辺りはどうなっていますか?

全く知らなかった情報なのですが、
エアロ等を使っているためか分かりませんが、
Windows7でのAPI、MFCの仕様が変わっているという事ですか?

ITO 2011/08/02(火) 10:12:29
> エアロ等を使っているためか分かりませんが、
> Windows7でのAPI、MFCの仕様が変わっているという事ですか?

VC2010を使っていますか?
 エアロ等に関係なく、エディットボックスの色等、細かな点はOSとVCのバージョンが
あってないとまずいですね。

ろっく 2011/08/02(火) 10:58:14
[[解決]]
コメント有難うございます。

>VC2010を使っていますか?
>エアロ等に関係なく、エディットボックスの色等、細かな点はOSとVCのバージョンが
>あってないとまずいですね。

いえ、VC2005です。

そうだったんですか。。。

てっきりMicrosoftの事なので下位互換は
それなりに対応してくれてるかと思いました。

その辺の仕様を調べてみます。

ありがとうございます。

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