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
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.
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];
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
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
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
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
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
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
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
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