Farbe eines CDialog ändern, ohne eigene Klasse abzuleiten.



  • Ich will zu Beginn meines Programmes einen Ladebildschirm anzeigen (besteht aus einem Bild und einem Static zur Statusausgabe)
    Dieser wird im Konstruktor meines mainframes aufgerufen:

    CMainFrame::CMainFrame()
    {
    	//Hardware laden und Splash-Screen anzeigen
    	CDialog splash(IDD_SPLASH);
    	splash.Create(IDD_SPLASH,0);
    
    	splash.CenterWindow();
    	CStatic * pStatus;
    	pStatus=(CStatic*) splash.GetDlgItem(IDC_SPLASH_STAT);
    
    	pStatus->SetWindowText("Chembox wird gesucht....");
    	m_Hardware.CB.Open();
    	pStatus->SetWindowText("DMI24 wird gesucht....");
    	m_Hardware.DMI24.Open();
    	pStatus->SetWindowText("ADW16 wird gesucht....");
    	m_Hardware.ADW16.Open();
    	splash.DestroyWindow();
    
    }
    

    gibt es eine möglichkeit die hintergrundfarbe dieses dialogs zu ändern, ohne dass ich eine eigene Klasse davon ableite?
    SetDialogBkColor geht auch nicht, da ich ja das CWinApp Objekt nicht habe, und ich nur in diesem Dialog die farbe ändern will.



  • Kannst du dir nicht den DC des Dialoges holen,
    und dann SetBKColor aufrufen ?

    Devil



  • devil81 schrieb:

    Kannst du dir nicht den DC des Dialoges holen,
    und dann SetBKColor aufrufen ?

    Devil

    Was soll das bringen? Falls es gehen sollte ist es beim nächsten neuzeichnen sofort wieder weg.



  • WM_PAINT schrieb:

    Falls es gehen sollte ist es beim nächsten neuzeichnen sofort wieder weg.

    Nicht wenn man es in die OnPaint oder OnDraw schreibt...

    Gruß
    :: NoName ::



  • er will ja keine klasse davon ableiten. 🙄 🙄



  • SetDialogBkColor( RGB(255,50,120), RGB(55,20,100) );
    Bevor er angezeigt wird. Habe es aber noch nie mit einem Nichtmodalen gemacht.



  • SetDialogBkColor( RGB(255,50,120), RGB(55,20,100) );
    Bevor er angezeigt wird. Habe es aber noch nie mit einem Nichtmodalen gemacht.

    naja, so würde es gehen, aber ich hab ja das CWinApp objekt im CMainFrame konstruktor nicht!
    und wenn ich die funktion in der InitInstance aufrufe, haben ja alle dialog diese farbe, ich möchte aber nur die farbe dieses einen dialogs ändern.


Anmelden zum Antworten