User Login


Sie sind noch nicht eingeloggt!

     anmelden |  registrieren

Termine


08. - 10.12.2014: Frankfurt |
PLC2 - Video Signal Processing

08. - 12.12.2014: Freiburg |
PLC2 - Expert FPGA Schaltungstechnik

08. - 10.12.2014: Mnchen |
PLC2 - Compact ZYNQ for HW Designers

Boards


Spartan 6 FPGA SP605 Evaluation Kit (XC6SLX45T-FGG484)
    

Links


FPGA Hersteller:  Altera
Xilinx
Lattice
FPGA Schulungen:  PLC2
El Camino
Trias
Weiteres:  VHDL ORG

Literatur


Dieter Wecker

Prozessorentwurf

Jahr: 2015
ISBN-10: 3110 4029 63

Messwert farbig darstellen

Wissenswertem, Tipps und Tricks rund um die PC-Programmierung

Messwert farbig darstellen

Beitragvon bertg1987 » Mi 15. Sep 2010, 10:37

Hallo zusammen,
ich möchte gerne einen Messwert (Temperatur) in Abhänigkeit des Wertes farbig darstellen. Er soll bei Unterschreitung einer bestimmten Schwelle blau und bei Überschreitung einer bestimmten Schwelle rot werden.
Schon mal vielen Dank für die Hilfe
Viele Grüße von Bert
bertg1987
 
Beiträge: 6
Registriert: Fr 10. Sep 2010, 07:54

Re: Messwert farbig darstellen

Beitragvon Thomas » Mi 15. Sep 2010, 11:59

Hallo Bert,
ich würde es folgendermasen lösen:
  • binde den unten stehenden Quelltext in dein Programm ein (die Dateinamen müssen wie angegeben verwendet werden!),
  • erzeuge ein Control vom Typ "Static Text" für die Anzeige des Messwertes,
  • ändere die ID des Controls, sie darf nicht IDC_STATIC lauten,
  • erzeuge eine Variable für dieses Control (z.B. m_Value), Variablentyp muss CStaticColored sein,
  • jetzt kann im Programm die Textfarbe mit m_Value.SetColorText(RGB(255,0,0)); geändert werden, analog geht es für die Hintergrundfarbe oder die Textgröße.

Datei StaticColred.h
Code: Alles auswählen
#pragma once
class CStaticColored : public CStatic
{
   DECLARE_DYNAMIC(CStaticColored)
public:
   CStaticColored();
   void SetColorText(DWORD Color);
   void SetColorBk(DWORD Color);
   void SetSizeText(int Size);
private:
   DWORD   m_ColorText;
   DWORD   m_ColorBk;
   CString   m_FontName;
   int      m_FontSize;
protected:
   DECLARE_MESSAGE_MAP()
public:
   afx_msg void OnPaint();
};


Datei StaticColored.cpp
Code: Alles auswählen
#include "stdafx.h"
#include "StaticColored.h"

IMPLEMENT_DYNAMIC(CStaticColored, CStatic)

CStaticColored::CStaticColored()
{
   m_ColorText   = RGB(0,0,0);;
   m_ColorBk   = GetSysColor(COLOR_BTNFACE);
   m_FontName   = "Arial";
   m_FontSize   = 15;
}

BEGIN_MESSAGE_MAP(CStaticColored, CStatic)
   ON_WM_PAINT()
END_MESSAGE_MAP()


void CStaticColored::SetColorText(DWORD Color)
{  m_ColorText = Color; this->Invalidate(true); }
void CStaticColored::SetColorBk(DWORD Color)
{ m_ColorBk = Color; this->Invalidate(true); }
void CStaticColored::SetSizeText(int Size)
{ m_ColorText = Size; this->Invalidate(true); }

void CStaticColored::OnPaint()
{
   CPaintDC dc(this);
    RECT wnd_rect; GetClientRect(&wnd_rect);
   CBrush brush(m_ColorBk);
   dc.FillRect(&wnd_rect, &brush);

   //   Textform festlegen
   CFont      font;
   font.CreateFont (m_FontSize, 0, 0, 0, FW_SEMIBOLD, false, false, 0, ANSI_CHARSET, OUT_DEFAULT_PRECIS,
                CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_SWISS, m_FontName);
   dc.SelectObject(&font);
   dc.SetTextColor(m_ColorText);
   dc.SetBkColor(m_ColorBk);
   CString s1; GetWindowText(s1);
   dc.DrawText(s1, s1.GetLength(), &wnd_rect, DT_LEFT|DT_BOTTOM);
   font.DeleteObject();
}


Viel Erfolg
Thomas
Thomas
 
Beiträge: 21
Registriert: Di 5. Jan 2010, 09:22

Re: Messwert farbig darstellen

Beitragvon bertg1987 » Mi 15. Sep 2010, 12:08

Danke, dass ging ja schnell. Ich probiers gleich mal aus.
Viele Grüße
Bert
bertg1987
 
Beiträge: 6
Registriert: Fr 10. Sep 2010, 07:54

Re: Messwert farbig darstellen

Beitragvon bertg1987 » Mi 15. Sep 2010, 14:06

Klappt prima, DANKE :D
Bert
bertg1987
 
Beiträge: 6
Registriert: Fr 10. Sep 2010, 07:54


Zurück zu Tipps und Tricks

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron