Hintergrund färben



  • unter vc c++ 2006 konnte ich mit dem Code

    SetDialogBkColor(RGB(136,136,136),RGB(122,10,0));
    

    den hintergrund und die schrift auf die gewünschte farbe ohne probleme ändern. mit vc 2008 funktioniert das nicht mehr. es gibt zwar keine fehlermeldung, doch der graue hintergrund bleibt. die jeweiligen foren und hilfe habe ich schon durchgestäbert, doch nichts gefunden. kann mir jemand weiterhelfen?
    danke



  • Schaut man in die MSDN was die dazu sagen wirst du sehen das da steht

    This function is obsolete.

    Also wird nicht mehr unterstützt, also überschreib ONCTLCOLOR deines Dialoges und stell dort die Farben ein und fertig.



  • Laut MSDN müssen die Methoden OnCtlColor() (und OnDestroy() ?)
    überschrieben werden. Das soll das dann so aussehen:

    // CMyDlg message handlers
    
       HBRUSH CMyDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
       {
           switch (nCtlColor) {
    
           case CTLCOLOR_STATIC:
               // Set the static text to white on blue.
               pDC->SetTextColor(RGB(255, 255, 255));
               pDC->SetBkColor(RGB(0, 0, 255));
               // Drop through to return the background brush.
    
           case CTLCOLOR_DLG:
               return (HBRUSH)(m_pBkBrush.GetSafeHandle());
    
           default:
                return CFileDialog::OnCtlColor(pDC, pWnd, nCtlColor);
           }
       }
    

    http://support.microsoft.com/?scid=kb%3Ben-us%3B115087&x=9&y=12

    Da der Hinweis schon älter ist weiss ich nicht ob sowas mit neueren Compilern und auch mit Vista läuft. Ausprobiert hab ich es auch noch nicht ..


Log in to reply