hintergrund farbe bei mehreren dialogen



  • hiho

    ich weiss wie ich die hintergrund farbe bei allen dlg. verändern kann

    CInstallDlg dlg;
        m_pMainWnd = &dlg;
        SetDialogBkColor( RGB(20,60,100),RGB(0,0,0));//<------
        int nResponse = dlg.DoModal();
        if (nResponse == IDOK)
        {
            // ZU ERLEDIGEN: Fügen Sie hier Code ein, um ein Schließen des
            //  Dialogfelds über OK zu steuern
        }
    

    wie kann ich des machen das nur der parent dialog ne andere farbe hat ? und die childs so bleiben wie sie sind.

    könnte ja nen rechteck in der farbe zeichnen aba das denke ich is zu blöde muss doch was ordentliches geben

    thx



  • überschreibe einfach die OnCtlColor Nachricht!
    ala

    HBRUSH CDeinDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
    {
        HBRUSH hbr = CFormView::OnCtlColor(pDC, pWnd, nCtlColor);
    
        if (nCtlColor == CTLCOLOR_DLG) //CTLCOLOR_DLG = Dialog 
        {       
            pDC->SetTextColor(RGB(175,100,3));        // ** Textfarbe **
            pDC->SetBkMode(TRANSPARENT);
        pDC->SetBkColor(RGB(244,222,33 ));        // ** Hintergrundfarbe **
            return (HBRUSH)GetStockObject(NULL_BRUSH);
        }   
    
        return hbr;
    }
    

    Remarks

    Chris



  • jo danke hm aba nu hab ich ne nschicken tranzparenten hintergrund auf dem schleifspuren meines dialoges zu sehn sind wenn ich ihn rüber ziehe



  • jo das problem hab ich auch abe rich glaub ich hab die lösung, als brush nimmt man DC_BRUSH und dessen farbe (aussehen) muss man vorher definieren wie das geht weis ich noch net aber ich finds raus



  • kine zeit, keine lust?



  • Hi!

    versuch doch einfach einen eigenen brush in der if-abfrage zurückzugeben:

    CBrush cBrush(RGB(255,255,0));
    return (HBRUSH) cBrush;

    versuchs mal.
    Du solltes vielleicht als BkMode lieber OPAQUE anstatt TRANSPARENT setzen.

    Versuchs mal.
    viel glück!



  • super das funktioniert! zumindest kann ich die Farben ROT,BLAU,GRÜN,SCHWARZ,WEIS anzeigen, wenn ich allerdings einen anderen farbwert angebe wie z.B RGB(0,255,130) wird grau oder RGB(0,102,166) (was ein schönes Blau wäre, wird das fenster grau, warum?



  • Hallo !

    Wo kommt denn diese Zeile hin, bei InitInstance oder so ?

    SetDialogBkColor( RGB(20,60,100),RGB(0,0,0));//<------

    Und hat jemamd eine Farbtabelle für die RGB Werte ?

    Heinz

    Hurrican schrieb:

    hiho

    ich weiss wie ich die hintergrund farbe bei allen dlg. verändern kann

    CInstallDlg dlg;
        m_pMainWnd = &dlg;
        SetDialogBkColor( RGB(20,60,100),RGB(0,0,0));//<------
        int nResponse = dlg.DoModal();
        if (nResponse == IDOK)
        {
            // ZU ERLEDIGEN: Fügen Sie hier Code ein, um ein Schließen des
            //  Dialogfelds über OK zu steuern
        }
    

    wie kann ich des machen das nur der parent dialog ne andere farbe hat ? und die childs so bleiben wie sie sind.

    könnte ja nen rechteck in der farbe zeichnen aba das denke ich is zu blöde muss doch was ordentliches geben

    thx



  • Hi

    heinz1 schrieb:

    Wo kommt denn diese Zeile hin, bei InitInstance oder so ?

    Jep, bei InitInstance

    heinz1 schrieb:

    Und hat jemamd eine Farbtabelle für die RGB Werte ?

    Farbwerte bekommst du am einfachsten mit jedem noch so billigen Malprogramm.
    In Paint: Doppelklick auf eine Farbe -> Farbe definieren

    Grüße Rapha


Anmelden zum Antworten