Progress Control Vordergrundfarbe ändern
-
Hallo Forum.
Ich arbeite mich gerade in VC++ 2005 ein. Hab vorher nur C/C++ programmiert.
Meine frage ist, wie kann ich die Farbe einer Progress Control ändern.Bisher habe ich nur m_membVar.SetBkColor(RGB(r,g,b)); gesehn. Aber es ist wohl für die Hintergrundfarbe. Mir gehts aber um die Vordergrundfarbe.
Danke für jeden Hinweis.
-
m_memberVar.SendMessage(PBM_SETBARCOLOR,0,(LPARAM) RGB(255,0,0));
Funktioniert nicht.
-
Was macht (LPARAM)RGB(255,0,0)?
Mach doch einfach mal
m_pProgressBar->SendMessage(PBM_SETBARCOLOR, 0, RGB(255,0,0));
-
Fehler 1 error C2819: Der Typ 'CProgressCtrl' hat keinen überladenen Elementoperator '->'geht leider nicht.
Das Beispiel habe ich von http://www.coding-help.de/fortschritt.html Hab das Beispiel auch rundergeladen, kompiliert -> alles geht, der Balken wird gefärbt.Das ist eigentlich eine Pipi-Aufgabe, aber ich bekomme richtige Probleme damit.
Kann es sein, dass ich die DEFAULT Einstellung irgendwo abschalten soll? Weil das:m_ProgressGreen.SendMessage(PBM_SETBARCOLOR, 0, RGB(0, 255, 0)); m_ProgressBlue.SendMessage(PBM_SETBARCOLOR, 0, RGB(0, 0, 255));zeigt überhaupt keine Wirkung.
Ne weitere Frage ist, wie kann ich die Chucks im Balken abschlaten, sodass es eine nicht so in Teile zerhackt ist, sondern kontinuierlich ist?
-
Diese blöde Kake kotzt mich langsam an...
hab schon alles mögliche Probiert und in MSDN recherchiert...
das brint mich auch nicht weiter:
m_ProgressGreen.SendMessage(PBM_SETBARCOLOR, 0, (LPARAM)RGB(255, 0, 0)); m_ProgressBlue.SendMessage(PBM_SETBARCOLOR, 0, (LPARAM)RGB(0, 0, 255)); m_ProgressGreen.Invalidate(FALSE); m_ProgressBlue.Invalidate(FALSE);hat denn niemand eine idee was es sein könnte??
-
Das soltle eigentlich gehen. Wo rufst du denn die Änderung der Anzeige auf?
Infos dazu: http://www.coding-help.de/fortschritt.html
-
U8 schrieb:
[cpp]
Ne weitere Frage ist, wie kann ich die Chucks im Balken abschlaten, sodass es eine nicht so in Teile zerhackt ist, sondern kontinuierlich ist?Stil ändern in XP-Stil.
-
Hallo zusammen,
danke ersmals für die Hinweise...
@maRKus23:
"Stil ändern in XP-Stil." Wie, wo?@Uruk-h4j:
dein linnk ist mir bekannt. ich habe das beispielprojekt runtergeladen kompiliert, alles ging. dann habe ich in meinem Programm 1:1 die progressbar codiert. Aber ohne Erfolg.
ich rufe die funktionen ebenfalls in einer Methode, wenn ein Button angeklickt wird. Die Progressbar wird in der OnInitDialog initialisiert:
BOOL CTestprogrammDlg::OnInitDialog() { CDialog::OnInitDialog(); // Symbol für dieses Dialogfeld festlegen. Wird automatisch erledigt // wenn das Hauptfenster der Anwendung kein Dialogfeld ist SetIcon(m_hIcon, TRUE); // Großes Symbol verwenden SetIcon(m_hIcon, FALSE); // Kleines Symbol verwenden // TODO: Hier zusätzliche Initialisierung einfügen m_PRGS_RED.SetRange(0, 100); m_ProgressGreen.SetRange(0,100); m_ProgressBlue.SetRange(0,100); m_PRGS_RED.SetStep(1); m_ProgressGreen.SetStep(1); m_ProgressBlue.SetStep(1); return TRUE; // Geben Sie TRUE zurück, außer ein Steuerelement }void CTestprogrammDlg::OnBnClickedButton3() { COLORREF color1, color2; m_ProgressGreen.Invalidate(TRUE); color1 = m_ProgressGreen.SendMessage(PBM_SETBARCOLOR, 0, (LPARAM)RGB(255, 0, 0)); m_ProgressGreen.Invalidate(FALSE); m_ProgressBlue.Invalidate(TRUE); color2 = m_ProgressBlue.SendMessage(PBM_SETBARCOLOR, 0, (LPARAM)RGB(0, 0, 255)); m_ProgressBlue.Invalidate(FALSE); //MessageBox(_T("Daten sind gelesen")); }beim debugen sehe ich, dass color1=0000FF (entspricht also RGB(0,0,255)) und color2=FF0000 (entspricht also RGB(255,0,0))
es scheint also so zusein, dass die Farben wohl gesetzt werden, aber im Dialog nicht aktualisiert werden. Hat viellicht MFC in VC++ 2005 eine Besonderheit?
-
Ich habe das gleiche Problem.
Soblad mein Programm XP-Look hat, mit einer manifest Datei, kann ich die ProgressBar nicht mehr färben. Erst ohne XP-Look funktioniert es wunderbar.
greetz