DOKUMENTNAME:

Implementationsbeschreibung XCTL-Steuerprogramm

erweitertes System

Hauptfunktion: Diffraktometrie/Reflektometrie

Teilfunktion: grafische Darstellung der Messergebnisse

Dokumentversion: 1.0  (8. August 2001)
Autor:      Bernhard Buss
Zustand:   fertig gestellt

Dieses Implementationsbeschreibung beschreibt die Implementation der Teilfunktion 'grafische Darstellung der Meßergebnisse' der Diffraktometrie/Reflektometrie des XCTL-Systems vom Sommer 2001.

Inhalt

Typen und Strukturen
Datei DATSVTPS.H
Datei EVRYTHNG.H
Datei M_DATA.H
Globale Variablen und Konstanten Datei M_DATA.CPP
Klassen
Klasse TBitmapSource
Klasse TPlotData
Klasse TCurveShowParam
Klasse TCurveFreeScal
Klasse TCurveFreeScalColor
Klasse TAquisition

Implementation

Wie auch der Gesamtvorgang zur Diffraktometrie / Reflektometrie fast vollständig dem Modul Develop[.exe] zugeordnet werden kann, gehört die bildnerische Darstellung der Meßergebnisse ausschließlich zu diesem Modul.

 

Typen und Strukturen

Datei DATSVTPS.H

 

TScaleType

Dieser Typ dient zur Identifizierung der Art der Intensitätsskalierung bei Meßwertdarstellungen (Kurve / Bitmap).

typedef enum

{

Logarithmic = 1, // log10 Skalierung der Intensität

Linear, // lineare Intensitätsskalierung

User // nutzerspezifische Intensitätsskalierung

} TScaleType;

TSaveFormat

Dieser Aufzählungstyp gibt einen Dateityp an, benutzt wird z. Z. nur bkFile und dtnFile.

typedef enum

{

StandardFile = 1, ShiftedStandard, Tripel, Tupel, Bitmap, ShiftedBitmap,

Tiff8, Tiff12, RAW8, RAW12, bkFile, dtnFile

} TSaveFormat;

TColorTable

Diese Struktur beinhaltet diverse Angaben zur erstellten Intensitätslegende (Farbverlauf) bei Bitmapdarstellungen.

typedef struct

{

RECT place; // Position der Intensitätslegende

float zMin, zMax; // Intensitätsminimum und -maximum

char zUnit[15]; // String "Intensity"

float ColorMap[256]; // ColorMap[0-255] jeder Farbe ein bestimmter Intensitätswert

// zugeordnet, der eine obere Schranke bildet

int nColorRange; // Anzahl gleichzeitig genutzter Farben (i.A. 256 [0-255])

} TColorTable;

TKSystem

Enthält Koordinaten des untersuchten Meßgebiets beim Areascan.

TKSystem[0] - Koordinaten ThetaMin der 1. Scankurve, OmegaMin

TKSystem[1] - Koordinaten ThetaMax der 1. Scankurve, OmegaMin

TKSystem[2] - Koordinaten ThetaMax der letzten Scankurve, OmegaMax

TKSystem[3] - Koordinaten ThetaMin der letzten Scankurve, OmegaMax

typedef struct

{

float x, y; // Koordinatenangaben

int Ord; // gibt eine Orientierung an - Sinn unklar

} TKSystem[4];

 

Datei EVRYTHNG.H

 

TKSProperties

Diese Struktur beinhaltet Eigenschaften eines in Main.ScanWindow initialisierten Koordinatensystems.

typedef struct

{

BOOL bLogarithmicY; // stets initialisiert auf FALSE

float fMinX, fMaxX, fMinY, fMaxY; // beinhalten Minima / Maxima für Abzisse / Ordinate

} TKSProperties;

HPBYTE

typedef BYTE* HPBYTE; // eigener Alias

HPFLOAT

typedef float _huge * HPFLOAT; // eigener Alias

 

Datei M_DATA.H

 

TDisplay

Die Struktur enthält stets die korrekten Werte für das nachgeladene / eingestellte Meßexperiment beim Areascan.

typedef struct

{

double dThetaWindow, dMoveRelation, dOmegaMin, dOmegaMax;

double dThetaMinFirst, dThetaMaxFirst, dThetaMinLast, dThetaMaxLast;

// gibt ThetaMin und -Max der 1. Scankurve und letzten Scankurve an

float fAngleRange, fAngleStep;

BOOL bPsd; // gibt an, ob das Experiment mit dem PSD-Detektor durchgeführt wurde

}TDisplay;

TBMContens

In der Struktur sind die zu jedem Bildpunkt der RL-Bitmap zugehörige Theta-, Omega- und Intensitätswerte gespeichert.

typedef struct

{

float omega,theta,intens; //Omega, Theta, Intensität

}TBMContens;

TScreen

Spezielle Werte des Bildschirm (Linescan-Fenster / Areascan-Fenster) werden gespeichert.

typedef struct

{

int x0, x1, dx, y0, y1, dy; // Min x, Max x , Delta x, Min y, Max y, Delta y

}TScreen;

TCoorSystem

Beinhaltet Werte für ein Koordinatensystem mit 3 Dimensionen und zusätzlich für jede Dimension die Skalierungsart.

typedef struct

{

double xMin, xMax, xSF; // Minimum, Maximum

// Auflösung Abzisse (Bildpunkte x / Delta x)

double yMin, yMax, ySF; // Minimum, Maximum

// Auflösung Ordinate (Bildpunkte y/ Delta y)

double zMin, zMax, zSF; // Minimum, Maximum

// Auflösung z bzgl. Abzisse (Bildpunkte x / Delta z)

TScaleType xST, yST, zST;

}TCoorSystem;

TOutputType

Aufzählungstyp, der die Darstellungsmöglichkeiten der Meßergebnisse wiedergibt.

typedef enum

{

ReciprokeLatticeBitmap = 1, MatrixBitmap = 2, Curve = 3

}TOutputType;

 

Globale Variablen und Konstanten Datei M_DATA.CPP

 

extern TMain Main; // Bekanntmachung des Objekts Main - ist die Hauptklasse des

// Programms und beinhaltet die Hauptschleife

extern LPDataBase lpDBase; // Verweis auf die extern liegende Kurvendatenbasis

extern float PointX[2],PointY[2]; // dient zum Aufzeichnen der Mausbewegungen

extern int nMouseAction; // verschiedene Mausereignisse sind möglich (z.B. Datenerhebung)

static float tilesx=tiles_x_achse; // Anzahl der Hilfslinien / Achsbeschriftungen Abzisse

static float tilesy=tiles_y_achse; // Anzahl der Hilfslinien / Achsbeschriftungen Ordinate

static int scrolldyposmin=Mindypos; // Minimum der möglichen Bildpunkte der Ordinate bei

// Bitmapdarstellungen

static int scrolldyposmax=Maxdypos; // Maximum der möglichen Bildpunkte der Ordinate

// bei Bitmapdarstellungen

static int scrolldxposmin=Mindxpos; // Minimum der möglichen Bildpunkte der Abzisse bei

// Bitmapdarstellungen

static int scrolldxposmax=Maxdxpos; // Maximum der möglichen Bildpunkte der Abzisse bei

// Bitmapdarstellungen

static int xBorder = XBNorm; // der Rand des Fensters zur Ordinate

static int yBorder = YBNorm; // der Rand des Fensters zur Abzisse

static int retval; // speichert verschiedene Rückgabewerte von Funktionsrufen

static POINT RLArea[41]; // speichert Punkte des Untersuchungsgebiets

static HGDIOBJ gdiobj; // GDI Objekt Handle

static HBITMAP hBitmap = NULL; // Handle auf ein Bitmap

static HCURSOR hCursor,hOldCursor; // Handle auf einen Cursor

static WORD RLdx = 350; // ist die standardmäßig voreingestellte Abzissen-Bildpunkte

// Ausdehnung bei RL-Bitmap Darstellung

static WORD RLdy = 500; // ist die standardmäßig voreingestellte Ordinaten-Bildpunkte

// Ausdehnung bei RL-Bitmap Darstellung

static BOOL bIncreasePP = FALSE; // repräsentiert die "Größere Punkte"

// Einstellmöglichkeit

static double clogval; // Faktor für Berechnung einer Ordinatenbeschriftung / Farbe bei

// logarithmischen Intensitätsverlauf

static double clinval; // Faktor für Berechnung einer Abzissenbeschriftung / Farbe bei

// logarithmischen Intensitätsverlauf

static BOOL bAltCoorSystem = FALSE; // zeigt an, ob alternativen Koordinatensystem

// existiert

static float MaxIntensitaet=MaxInt, MinIntensitaet=MinInt; // gibt Max- und Minintensität

// standardmäßig vor

const char aOutputType[6][15] = {"RL-Bitmap","Raw Matrix","Curve","Number","BarGraph","Histogram"}; // Feld beinhaltet Darstellungstypen

// (nicht alle implementiert)

const char aScaleType[3][15] = {"Logarithmic","Linear","User"};

// Feld beinhaltet Intensitätsskalierungsmöglichkeiten

 

Klassen

Klasse TBitmapSource

UML-Klassendiagramm

Klassenhierarchie

von keiner Klasse abgeleitet

Friends

friend class TPlotData;

friend class TCurveShowParam;

friend class TCurveFreeScal;

friend class TCurveFreeScalColor;

Dateien

M_DATA.H, M_DATA.CPP

Funktion der Klasse

- Bitmaps aus Kurvendaten (Datenbasis) errechnen und darstellen

Beschreibung der Attribute

public:

BOOL bGrayScalePalette;

FALSE - keine Graustufendarstellung, TRUE - Graustufendarstellung in Bitmaps wird in ini-Datei mit "swPalette" gesetzt und kann im "Einstellungen für die Darstellung" Dialog beeinflußt werden

TBMContens** daten;

- Zeiger auf "Daten"feld

- hier wird zu jeder [x,y]-Pixelkoordinate der zugehörigen Theta- / Omega-Wert gespeichert (nur RL-Bitmap)

BOOL dateniscreated;

- TRUE - "Daten"feld existiert, FALSE - "Daten"feld existiert nicht

protected:

BITMAPFILEHEADER BMPFileHdr;

- Zugriff auf BITMAPFILEHEADER-Struktur

- wird zum Laden eines Bitmaps benötigt

TColorTable ColorTable;

- Zeiger auf ColorTable-Objekt

TPlotData* DataWnd;

- Zeiger auf zugehöriges TPlotData-Objekt

TCurveFreeScalColor* UserFarb;

- Zeiger auf zugehörigen TCurveFreeScalColor-Dialog

private:

HGLOBAL hDIBInfo;

- wichtig für Bitmap-Generierung

- Handle auf ein globales Speicherobjekt

HGLOBAL hDIBData;

- wichtig für Bitmap-Generierung

- Handle auf ein globales Speicherobjekt

HGLOBAL hMemPal;

- wichtig für Bitmap-Generierung

- Handle auf ein globales Speicherobjekt

HPALETTE hPalette, hOldPalette;

- wichtig für Bitmap-Generierung

- Handle auf eine Palette

HBITMAP hBitmap;

- wichtig für Bitmap-Generierung

- Handle auf ein Bitmap

float ber[8];

- Feld mit Intensitätsabstufungen im Falle von "User Skalierung"

int farbe[8];

- Feld mit Farbabstufungen im Falle von "User Skalierung"

int dxold, dyold;

- Speicherung der x-Bildpunkte, y-Bildpunkte

- zwecks Vergleich, wenn neues "Daten"feld angelegt werden muss

char Fileold[MaxString];

- Speicherung des alten Filenamens

- zwecks Vergleich, wenn neues "Daten"feld angelegt werden muss

Beschreibung der Methoden

public:

TBitmapSource( TPlotData * );

- initialisieren der Attribute

virtual ~TBitmapSource();

- Speicher freigeben und Bitmap löschen

BOOL ProcessBitmapFile( HFILE );

- wird aufgerufen, wenn ein Bitmap nachgeladen werden soll - Funktion wird gestrichen

void FormatDBaseToBitmapSource( void );

- generiert den Header für ein Bitmap, setzt Koordinatensystem und Screen

- ruft Funktion GenerateRLBitmap() oder Funktion GenerateAngleSpaceBitmap()

void UpdateBitmapSource( void );

- nicht implementiert

protected:

void New( void );

- falls Bitmap schon existiert, löschen und neu initialisieren

DWORD GetImageSize( void );

- berechnet Bytes pro Zeile*Höhe des Bitmaps - Gesamtgröße im Speicher

void DrawBitmapFrame( HDC );

- ruft bei "RL_Bitmap"-Darstellung Funktion DrawMeasurementArea()

- berechnet Position der Anordnung der Farblegende

- setzt Min, MaxIntensitäten

- ruft Funktion DrawColorTable()

void SetScreen( HDC, TScreen& );

- setzt Screen-Variablen, entsprechend der Bildschirmgroesse

- setzt Units, Orientation, Scaling

void DrawColorTable( HDC, TColorTable& );

- berechnet zu Farben entsprechende Intensitäten

- gibt die Farblegende zu den Intensitäten aus

void DrawMeasurementArea( HDC );

- berechnet und zeichnet das untersuchte Meßgebiet im Koordinatensystem

- nur bei "RL-Bitmap"-Darstellung

void FillBMInfoFromPalette( LOGPALETTE* );

- füllt den Header eines Bitmaps mit Farbwerten der Palette

void DrawBitmap( HDC, int, int );

- Bitblock-Transfer vom Quell-DC zum Ziel-DC - entspricht der Darstellung eines Bitmaps

private:

HBITMAP CreateGDIObject( HDC );

- entwickelt eine "device-dependent bitmap" (DDB) von einer "device-independent bitmap" (DIB)

HGLOBAL RenderDIB( void );

- Zwischenablageoperation, wenn Kopieren vom Typ CF_DIB - DIB in die Zwischenablage

LOGPALETTE * GetPalette( void );

- ruft Funktion CreatePaletteFromDIB(), ansonsten Funktion CreateDefaultPalette()

LOGPALETTE * CreatePaletteFromDIB( void );

- generiert Palette von DIB (Device independend Bitmap)

LOGPALETTE * CreateDefaultPalette( void );

- generiert neue Palette (Graustufen oder Bunt)

void ColorDef(void);

- um Intensitätsabstufungen bei Skalierung User zu generieren, ansonsten werden Defaultwerte gesetzt

- füllt Strukturattribut ColorTable.ColorMap[cnt] mit Werten

void BereichDef(void);

- setzt Variablenfelder farbe[] und ber[], so daß ein linearer Verlauf abhängig von Min-, MaxIntensität

int GetColor( float );

- gibt zu übergebener Intensität entsprechenden Farbwert der Intensität zurück

void GenerateAngleSpaceBitmap(void);

- generiert Raw-Matrix Bitmap

void GenerateRLBitmap( void );

- generiert RL-Bitmap

 

Klasse TPlotData

UML-Klassendiagramm

Klassenhierarchie

von der Klasse TMDIWindow abgeleitet

Friends

friend class TCurveShowParam;

friend class TCurveFreeScal;

friend class TBitmapSource;

friend class TCurveFreeScalColor;

Dateien

M_DATA.H, M_DATA.CPP

Funktion der Klasse

- stellt die grundlegende Funktionalität eines Linescan- / Areascan-Fensters bereit zeichnet Koordinatensystem und behandelt Mauscursorfunktionalität
- wandelt eine Kurve (Datenbasis) in eine darstellbare Punktelinie im Koordinatensystem stellt die Funktionen für die Darstellung / Bearbeitung einer 2. Kurve bereit

Beschreibung der Attribute

protected:

HFONT hFont;

speichert ein Handle auf einen Font

TBitmapSource* BSource;

- Zeiger auf das zugehörige Bitmap (Raw-Matrix / RL-Bitmap)

- NULL wenn Bitmap nicht existiert

TCurve* MainCurve;

- Zeiger auf die MainCurve (i.A. aktuelle Kurve)

TCurve* SecondCurve;

- Zeiger auf die Secondcurve (durch das Fixieren der aktuellen Kurve - Laden einer 2. Kurve)

 

BOOL bSecondaryCoor;

- TRUE - 2. Koordinatensystem existiert, FALSE - 2. Koordinatensystem existiert nicht

BOOL bXY_Scaling;

- bei Darstellungsart RL-Bitmap, TRUE - XY Skalierung aktiviert, FALSE - XY Skalierung nicht aktiviert

TOutputType eOutputType;

- gibt den Ausgabetyp an (Curve, Raw Matrix Bitmap, RL_Bitmap)

float LowerBound, UpperBound;

- gibt darzustellende Min- und Maxintensität an

TCoorSystem CoorSys, AltCoorSys;

- CoorSys beinhaltet die Werte des Koordinatensystems bei Kurvendarstellungen, AltCoorSys beinhaltet die Werte des Koordinatensystems bei Bitmapdarstellungen

TScreen Screen;

- speichert Größe des Bildschirms (Fensterausschnitt)

BOOL bBitmapIsCreated;

- gibt an ob ein Bitmap zur Datenbasis existiert (Areascan)

int eLoadFormat;

- beinhaltet den geladenen Dateityp (entspricht Aufzählungstyp TSaveFormat)

TDisplay VisualDB;

- beinhaltet die korrekten Omega- und Thetawerte, um die Datenbasis beim Areascan korrekt darzustellen

private:

BOOL bEnablePaint;

- gibt an ob das Zeichnen der Datenbasis zulässig ist oder nicht

BOOL bButtonDown;

- gibt an ob die Maustaste gedrückt ist oder nicht

float xo, yo;

- Koordinatenpaar, welches angibt, wo innerhalb des Koordinatensystems mit der Maus geklickt wurde

HDC DragDC;

- Handle auf einen DC (device context - WinAPI)

Beschreibung der Methoden

public:

TPlotData( void );

- initialisieren der Attribute

virtual ~TPlotData( void );

- Speicher freigeben und Secondcurve löschen

void FormatCurveToPLine( TCurve *, LPPOINT, int & );

- füllt die Struktur lpPoints mit den Werten für eine Kurve (Datenbasis)

- lpPoints wird später zur Darstellung des Kurvenverlaufs gebraucht

void Paint( HDC, PAINTSTRUCT * );

- die Funktion wird von der Windowsnachricht EvPaint aufgerufen

- Windows teilt mit, daß der Inhalt des Fensters neu gezeichnet werden muß

virtual void lButtonDown( WPARAM, LPARAM );

- behandelt das Kommando: linke Maustaste wurde gedrückt

virtual void MouseMove( WPARAM, LPARAM );

- wenn die linke Maustaste gedrückt gehalten und dabei bewegt wird,

wird der Abstand zur Position des 1. Mausklicks berechnet

virtual void lButtonUp( WPARAM, LPARAM );

- gibt das Handle zum Zeichnen im Kindfenster zurück

- linke Maustaste als nicht gedrückt kennzeichnen

void RenderFormat( WPARAM );

- wenn Darstellungstyp ein Bitmap, dann bereite Zwischenablage vor

void RenderAllFormats( WPARAM );

- räumt Zwischenablage auf, wenn Besitzer der Zwischenablage nicht mehr vorhanden

virtual BOOL New( void );

- neues TMDIWindow generieren und wenn nötig auch gleich noch eine neue Bitmap

void PickUpData( LPARAM );

- sichert Daten in der SecondCurve

- in Datei M_MAIN.CPP im Falle von cm_MoveScanReady

void SetKSProperties( TKSProperties* );

- sichert Koordinatensystem in AltCoorsys

- in Datei M_MAIN.CPP im Falle von cm_MoveScanReady

void FreezeCurve( void );

- fixiert die aktuelle Hauptkurve

- setzt Pointer von SecondCurve auf MainCurve

void KillSecondCurve( void );

- setzt SecondCurve auf Initialwerte zurück (löschen aller Meßtripel)

- zeichnet Scan-Fenster neu

void SaveSecondCurve( void );

- speichert fixierte Kurve (SecondCurve) unter auszuwählendem Dateinamen mit Extension *.bk

void EnablePaint( void )

{

bEnablePaint = TRUE;

};

- setzt Variable bEnablePaint auf TRUE

void DisablePaint( void )

{

bEnablePaint = FALSE;

};

- setzt Variable bEnablePaint auf FALSE

protected:

void SetFileType(int);

- setzt den Dateityp auf den übergebenen Parameter, nach dem Laden von alten Daten

int GetNachkommaStelle(TCoorSystem* pCoorSys,int x,int y);

- Funktion, die die benötigte Nachkommastellengenauigkeit berechnet und die nötigen Nachkommastellen zurückliefert

void DrawCoordinateSystem( HDC );

- zeichnet das Koordinatensystem

HCURSOR GetCursor( void )

{

return LoadCursor( NULL, IDC_CROSS );

};

- lädt die Cursor-Ressource in den Speicher und vergibt ein Handle

void DoCopy( void );

- Kopieren mit Hilfe der Zwischeablage - Typen: CF_DIB, CF_PALETTE

virtual BOOL SetMeasurementArea( TKSystem & );

- fülle TKSystem mit Standardwerten

- Funktion wird überladen von Klassen Tscan und TAreaScan

virtual void SetRanges( void );

- setze neue Koordinatensystembereiche

- Funktion wird überladen von Klassen Tscan und TAreaScan

virtual double GetThetaOffset( int )

{

return 0.0;

};

- macht nichts

- Funktion wird überladen von Klasse TAreaScan

Klasse TCurveShowParam

UML-Klassendiagramm

Klassenhierarchie

von der Klasse TModalDlg abgeleitet

Friends

keine

Dateien

M_DATA.H, M_DATA.CPP

Funktion der Klasse

- stellt die Funktionalität des Dialogs "Einstellungen für die Darstellung" bereit

Beschreibung der Attribute

private:

TModalDlg* FreeScaldlg;

- Zeiger auf den Dialog User Skalierung, den man über den Button "User Skalierung" aufrufen kann

int scrolldypos;

- Größe der Ordinate bei Bitmapdarstellung

int scrolldxpos;

- Größe der Abzisse bei Bitmapdarstellung

TPlotData* PlotWindow;

- Zeiger auf das PlotWindow, um seine Eigenschaften beeinflussen zu können

TCoorSystem *CoorSys,*AltCoorSys;

- Zeiger auf die Koordinatensysteme des PlotWindows

HWND hWndOutputT, hWndScaleT,hWndScrolldy,hWndScrolldx;

- beinhalten benötigte Handle

Beschreibung der Methoden

public:

TCurveShowParam(TMDIWindow *);

- Initialisierung der Attribute

protected:

void Dlg_OnCommand( HWND, int, HWND, UINT );

- reagiert auf Nachrichten des Dialogfensters

BOOL Dlg_OnInit( HWND, HWND, LPARAM );

- initialisiert Attribute und den Dialogeinstellungen beim Öffnen des Dialogs

BOOL CanClose( void );

- liest eingestellte Werte im Dialog aus und setzt entsprechende Attribute

- bereitet den Dialog zum Schließen vor

BOOL LeaveDialog( void );

- Überladen der Funktion - eigentlich keine Funktionalität

void Dlg_OnHScrollBar(HWND ,HWND ,UINT ,int );

- behandelt Nachrichten die von der Scrollbalkenfunktionalität generiert werden

Klasse TCurveFreeScal

UML-Klassendiagramm

Klassenhierarchie

von der Klasse TModalDlg abgeleitet

Friends

friend class TCurveFreeScalColor;

Dateien

M_DATA.H, M_DATA.CPP

Funktion der Klasse

- stellt die Funktionalität des Dialogs User-Skalierung bereit

Beschreibung der Attribute

private:

int FarbeId[8];

- zum Speichern der RessourcenIDs für die Texteingabefelder zu den Farbwerten

int BereichId[8];

- zum Speichern der RessourcenIDs für die Texteingabefelder zu den Intensitätswerten

TPlotData* PlotWindow;

- Zeiger auf das PlotWindow, um seine Eigenschaften beeinflussen zu können

Beschreibung der Methoden

public:

TCurveFreeScal(TMDIWindow *);

- Initialisierung der Attribute

protected:

void Dlg_OnCommand( HWND, int, HWND, UINT );

- reagiert auf Nachrichten des Dialogfensters

BOOL Dlg_OnInit( HWND, HWND, LPARAM );

- initialisiert Attribute und den Dialogeinstellungen beim Öffnen des Dialogs

BOOL CanClose( void );

- liest eingestellte Werte im Dialog aus und setzt entsprechende Attribute

- bereitet den Dialog zum Schließen vor

BOOL LeaveDialog( void );

- Überladen der Funktion - eigentlich keine Funktionalität

Klasse TCurveFreeScalColor

UML-Klassendiagramm

Klassenhierarchie

von der Klasse TMDIWindow abgeleitet

Friends

friend class TCurveFreeScalColor;

Dateien

M_DATA.H, M_DATA.CPP

Funktion der Klasse

- stellt die Funktionalität des Fensters User Skalierung - Farbwahl bereit

Beschreibung der Attribute

protected:

TPlotData* PlotWindow;

- Zeiger auf das PlotWindow, um seine Eigenschaften beeinflussen zu können

Beschreibung der Methoden

public:

TCurveFreeScalColor(TMDIWindow*);

- Initialisierung der Attribute

~TCurveFreeScalColor(void);

- Fensterposition in der ini-Datei sichern

protected:

virtual BOOL SetTitle();

- Titel setzen

virtual void Create(HWND hwnd);

- Fenster kreieren (überladene Funktion)

void Paint(HDC,PAINTSTRUCT *);

- die Funktion wird von der Windowsnachricht EvPaint aufgerufen

- Windows teilt mit, daß der Inhalt des Fensters neu gezeichnet werden muß

void DrawColorTable(HDC);

- zeichnet die Farblegende

Klasse TAquisition

UML-Klassendiagramm

Klassenhierarchie

von der Klasse TModalDlg abgeleitet

Friends

friend class TCurveFreeScalColor;

Dateien

M_XSCAN.H, M_ARSCAN.CPP

Funktion der Klasse

- stellt die Funktionalität des Dialogs Daten Erhebung bereit

Beschreibung der Attribute

keine eigenen Attribute

Beschreibung der Methoden

public:

TAquisition(void);

- Initialisierung der Attribute

private:

void Dlg_OnCommand( HWND, int, HWND, UINT );

- reagiert auf Nachrichten des Dialogfensters

BOOL Dlg_OnInit( HWND, HWND, LPARAM );

- initialisiert Attribute und den Dialogeinstellungen beim Öffnen des Dialogs

BOOL CanClose( void );

- liest eingestellte Werte im Dialog aus und setzt entsprechende Attribute

- bereitet den Dialog zum Schließen vor

BOOL LeaveDialog( void );

- Überladen der Funktion - eigentlich keine Funktionalität