Forum: PC-Programmierung Progressbar färben


von Hans (Gast)


Angehängte Dateien:

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

von Rufus Τ. F. (rufus) Benutzerseite


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.

von Hans (Gast)


Lesenswert?

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

wie? mittels myProcessbar.SendMessage() ?

von Hans (Gast)


Lesenswert?

wie kann ich den XP Style ausschalten und z.b Processbar auf Continuos 
umstellen?

von Rufus Τ. F. (rufus) Benutzerseite


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.

von Arc N. (arc)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.