Messwertbalken



  • Hallo
    ich lese Messwerte über RS232 aus und möchte sie auf GUI darstellen, dazu möchte ich einen Balken verwenden, der die Länge je nach Grösse des Messwertes verändert.
    Zum Beispiel bei einem Messbereich von 0 bis 100 und einem Messwert von 75 soll der Balken 3/4 seiner Länge haben. Bei einem Messwert von 50 soll er die Hälfte seiner Länge haben.
    Ausserdem muss der Balken seine Farbe veränden können wenn ein Messwert ausserhalb des Messbereichs gelesen wird.
    Was kann ich dafür verwenden, einen Picture Control oder besser eine Progressbar?
    Ist bei der progressbar der Balken immer in einzelne Segmente aufgeteilt?
    Wo muss ich bei meinem Problem ansetzen?


  • Mod

    Setze den Stil PBS_SMOOTH, dann gibt es keine Segmente.
    Im XP-Stil kann man die Frabe nicht verändern PBM_SETBKCOLOR geht nur im Classic Style.

    Aber es gibt genug Derivate für so etwas unter www.codeproject.com!



  • Na funktioniert super, nur das Problem mit der Farbe wäre noch zu lösen.



  • Die Farbe ändern funktioniert im X-Stil ganz einfach mit

    m_pProgressBar->SendMessage(PBM_SETBKCOLOR, 0, RGB(255,255,255));
    
    m_pProgressBar->SendMessage(PBM_SETBARCOLOR, 0, RGB(255,0,0));
    


  • Jetzt würde ich gerne noch unterhalb von meiner ProgressBar einige Striche zur Skalierung anbringen, so wie man sie auch von einem Lineal kenn.
    Weiß jemand wie dasd funktioniert??

    ps: wie kann man eigentlich screenshots hier einfügen?


  • Mod

    maRKus23 schrieb:

    Die Farbe ändern funktioniert im X-Stil ganz einfach mit

    m_pProgressBar->SendMessage(PBM_SETBKCOLOR, 0, RGB(255,255,255));
    
    m_pProgressBar->SendMessage(PBM_SETBARCOLOR, 0, RGB(255,0,0));
    

    Eigentümlich! Die Doku sagt ganz klar dazu:
    This message is supported only in the Windows Classic theme.



  • Naja mag sein das die Doku das sagt, aber bei mir funktioniert es!! 😉


Anmelden zum Antworten