Progressbar färben

Gast #629353
Lesenswert?

Hallo,

hab ein problem: kann die Progressbar nicht färben. Mein code scheint in 
ordnung zu sein:
1
BOOL CTestprogrammDlg::OnInitDialog()
2
{
3
  CDialog::OnInitDialog();
4
  
5
  // Symbol für dieses Dialogfeld festlegen. Wird automatisch erledigt
6
  //  wenn das Hauptfenster der Anwendung kein Dialogfeld ist
7
  SetIcon(m_hIcon, TRUE);      // Großes Symbol verwenden
8
  SetIcon(m_hIcon, FALSE);    // Kleines Symbol verwenden
9

10
  // TODO: Hier zusätzliche Initialisierung einfügen
11
  m_ProgressRed.SetRange(0, 100);
12
  m_ProgressGreen.SetRange(0,100);
13
  m_ProgressBlue.SetRange(0,100);
14
  m_ProgressRed.SetStep(1);
15
  m_ProgressGreen.SetStep(1);
16
  m_ProgressBlue.SetStep(1);
17

18
  m_ProgressBlue.SetBkColor(RGB(0, 0, 200));
19
  m_ProgressBlue.SendMessage(PBM_SETBARCOLOR, 0 , RGB(255, 255, 255));
20

21

22

23
  
24
  return TRUE;  // Geben Sie TRUE zurück, außer ein Steuerelement 
25
}

aber es hat kein effekt.
beim ausführen ist die Progressbar wie "default" gezeichnet: siehe bild 
im angang
Angehängte Dateien:
Persönliche Seite #629418
Lesenswert?

a) Die Hintergrundfarbe wird mit PBM_SETBKCOLOR gesetzt

b) Tip: Setze den Stil PBS_SMOOTH, um eine durchgehende Anzeige zu 
bekommen.

c) Luna abschalten.

Laut Dokumentation auf
http://msdn2.microsoft.com/en-us/library/ms670350.aspx
funktioniert das nur in der "Windows-für-Erwachsene"-Betriebsart:

  This function only affects the classic mode and not any visual style.

Abhilfe schafft hier wohl nur ein Owner-Draw-Control.
Persönliche Seite #629598
Lesenswert?

Im Resource-Editor kannst Du das entsprechende Stilbit setzen.

Bei MSVC6 ist das Rechtsklick-auf-Control, "Properties", und dann den 
Karteireiter [Styles] auswählen. Da ein Häkchen vor "smooth" setzen.

Den XP-Style deaktivierst Du global, indem Du Deinem Windows Luna 
austreibst. Das ist keine Programmierangelegenheit, sondern eine 
Windows-Konfiguration. "Windows Klassisch" auswählen und den dann 
nutzlosen Dienst "Designs" deaktivieren.
#629651
Lesenswert?

> Den XP-Style deaktivierst Du global, indem Du Deinem Windows Luna
> austreibst. Das ist keine Programmierangelegenheit, sondern eine
> Windows-Konfiguration. "Windows Klassisch" auswählen und den dann
> nutzlosen Dienst "Designs" deaktivieren.

Jein, wenn im App-Manifest auf ComCtl32.dll V6 verwiesen wird, kann man 
es entweder per Hand 
(Explorer->{Programm}->Eigenschaften->Kompatibilität->Visuelle Designs 
deaktivieren)
oder über SetWindowTheme (uxtheme.dll) deaktivieren

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren