Hauptseite | Klassenhierarchie | Auflistung der Klassen | Auflistung der Dateien | Klassen-Elemente | Datei-Elemente | Zusätzliche Informationen

D_INTERN.H

gehe zur Dokumentation dieser Datei
00001 //############################################################################## 00002 // // 00003 // D_INTERN.H // 00004 // // 00005 // Subsystem: Diffraktometrie/ Reflektometrie // 00006 // allgemeine, intern genutzte Fenster // 00007 // Benutzung durch andere Subsysteme erforderlich: NEIN // 00008 // // 00009 //############################################################################## 00010 00011 #ifndef _D_INTERN_H 00012 #define _D_INTERN_H 00013 00014 #include "utils\u_utils.h" // TModalDlg 00015 #include "MOTRSTRG\M_MOTCOM.H" // _MAXLENUINT 00016 00017 //--||--\\--||--//--||--\\--||--//--||--\\--||--//--||--\\--||--//--||--\\--||-- 00018 00019 const UINT stdx= 500; 00020 const UINT stdy= 500; 00021 00023 struct TScreen 00024 { 00025 int x0, x1, dx, 00026 y0, y1, dy; 00027 }; 00028 00029 struct TDisplay 00030 { 00031 double dThetaWindow, dMoveRelation, dOmegaMin, dOmegaMax; 00032 double dThetaMinFirst, dThetaMaxFirst, dThetaMinLast, dThetaMaxLast; 00033 float fAngleRange, fAngleStep; 00034 BOOL bPsd; 00035 }; 00036 00037 const UINT _COLORS= 256; 00038 00039 class TColorTable 00040 { 00041 public: 00042 TColorTable() : ColorMap(_COLORS, 255) { 00043 place.left= place.top= place.right= place.bottom= 0; 00044 zMin= zMax= 0; 00045 strcpy(zUnit, ""); 00046 }; 00047 00048 RECT place; 00049 float zMin, zMax; 00050 char zUnit[ _MAXLENUNIT+1 ]; 00051 TFloatList ColorMap; 00052 }; 00053 00054 // Skalierung für x, y, z-Achse 00055 enum EScale 00056 { 00057 sLogarithmic= 1, sLinear, sUser 00058 }; 00059 00064 struct TCoorSystem 00065 { 00066 double xMin, xMax, xSF; 00067 double yMin, yMax, ySF; 00068 double zMin, zMax, zSF; 00069 EScale xScal, yScal, zScal; 00070 }; 00071 00073 enum EOutputType 00074 { 00075 otReciprokeLatticeBitmap= 1, otMatrixBitmap= 2, otCurve= 3 // die zugeordneten nummerischen Werte müssen so belassen werden, weil sie zum Zugriff auf die Elemente in einer ComboBox benutzt werden 00076 }; 00077 00079 #define DegToRad(val) ((val) * 0.01745329251994) 00080 #define RadToDeg(val) ((val) / 0.01745329251994) 00081 00083 #define ArToRLx(_ome, _the) ((cos((_the)-(_ome))- cos(_ome))) 00084 #define ArToRLy(_ome, _the) ((sin((_the)-(_ome))+ sin(_ome))) 00085 /* 00086 17.07.2003 geändert, weil Umrechnung so korrekt und Darstellung nicht gespiegelt... 00087 #define ArToRLx(_ome, _the) ((cos(_ome) - cos((_the) - (_ome)))) 00088 #define ArToRLy(_ome, _the) ((sin(_ome) + sin((_the) - (_ome)))) 00089 */ 00090 00091 class TPlotWindow; // forward 00092 00093 //############################################################################## 00094 // TCurveFreeScalDlg 00095 //############################################################################## 00097 00098 class TCurveFreeScalDlg : public TModalDlg 00099 { 00100 friend class TCurveFreeScalColorWindow; 00101 public: 00102 TCurveFreeScalDlg( TPlotWindow* ); 00103 00104 // Überschriebenes aus der (Fenster-)Basisklasse 00105 private: 00106 virtual BOOL Dlg_OnInit( HWND, HWND, LPARAM ); 00107 virtual void Dlg_OnCommand( HWND, int, HWND, UINT ); 00108 virtual BOOL CanClose( void ); 00109 virtual void LeaveDialog( void ); 00110 00111 // Verwaltung der Steuerelemente in den 8 Bereichen 00112 private: 00113 int GetFarbeId(UINT); 00114 int GetBereichId(UINT); 00115 00116 // ATTRIBUT(E) 00117 private: 00119 TPlotWindow *PlotWindow; // nicht im Destruktor freigeben, wird im Konstruktor übergeben und muss vom Aufrufer verwaltet werden 00120 }; 00121 00122 //############################################################################## 00123 // TCurveShowParamDlg 00124 //############################################################################## 00126 00127 class TCurveShowParamDlg : public TModalDlg 00128 { 00129 public: 00130 TCurveShowParamDlg( TPlotWindow* ); 00131 00132 // Überschriebenes aus der (Fenster-)Basisklasse 00133 private: 00134 virtual BOOL Dlg_OnInit( HWND, HWND, LPARAM ); 00135 virtual void Dlg_OnCommand( HWND, int, HWND, UINT ); 00136 virtual void Dlg_OnHScrollBar(HWND , HWND , UINT , int ); 00137 virtual BOOL CanClose( void ); 00138 virtual void LeaveDialog( void ); 00139 00140 // ATTRIBUT(E) 00141 private: 00143 TPlotWindow *PlotWindow; // nicht im Destruktor freigeben, wird im Konstruktor übergeben und muss vom Aufrufer verwaltet werden 00144 00146 int scrolldxpos, scrolldypos; 00147 00149 // TOutputType bOutputToShow; 00150 00152 HWND hWndOutputT, hWndScaleT, hWndScrolldx, hWndScrolldy; 00153 }; 00154 00155 //############################################################################## 00156 // TBitmapSource 00157 //############################################################################## 00159 00160 class TBMContens 00161 { 00162 public: 00163 TBMContens() { omega= theta= intens= 0; }; 00164 00165 float omega, theta, intens; 00166 }; 00167 00168 const RLAreaPkts= 41; 00169 00170 class TBitmapSource 00171 { 00172 friend class TPlotWindow; 00173 friend class TCurveShowParamDlg; 00174 friend class TCurveFreeScalDlg; 00175 friend class TCurveFreeScalColorWindow; 00176 00177 public: 00179 TBitmapSource( TPlotWindow* ); 00180 00182 virtual ~TBitmapSource(); 00183 00184 public: 00186 // derzeit nicht verwendet 17.05.2004 BOOL ProcessBitmapFile( HFILE ); 00187 00189 void FormatDBaseToBitmapSource( void ); 00190 00192 void UpdateBitmapSource( void ) {}; 00193 00194 // Zugriff auf m_Daten 00195 public: 00196 bool IsDatenInited() { return m_DatenInited; }; 00197 00198 //*** zudem wird in der DEBUG-Version eine TraceErr-Fehlermeldung ausgegeben 00199 // bei zu großen/ kleinen Zeilen/ Spalten wird der Wert aus der letzten Zeile/ Spalte zurückgegeben*** 00200 float GetOmega(UINT aRow, UINT aCol); 00201 float GetTheta(UINT aRow, UINT aCol); 00202 float GetIntens(UINT aRow, UINT aCol); 00203 00204 // bei zu großen/ kleinen Zeilen/ Spalten wird nichts gesetzt und false zurückgegeben*** 00205 bool SetOmega(UINT aRow, UINT aCol, float aValue); 00206 bool SetTheta(UINT aRow, UINT aCol, float aValue); 00207 bool SetIntens(UINT aRow, UINT aCol, float aValue); 00208 00209 private: 00210 void CreateDaten(UINT aRows, UINT aCols); 00211 bool CheckKoord(UINT &aRow, UINT &aCol); // korrigiert aRow und aCol bei Überschreitung und gibt false zurück; *** 00212 void FreeDaten(); 00213 00214 void New( void ); 00215 00217 void LoadBitmap( HDC ); 00218 00220 DWORD GetImageSize( void ); 00221 00226 void DrawBitmapFrame( HDC ); 00227 00230 void SetScreen( HDC, TScreen& ); 00231 00233 void DrawColorTable( HDC, TColorTable& ); 00234 00237 void DrawMeasurementArea( HDC ); 00238 00240 void FillBMInfoFromPalette( LOGPALETTE* ); 00241 00244 void DrawBitmap( HDC, int, int ); 00245 00248 HBITMAP CreateGDIObject( HDC ); 00249 00251 HGLOBAL RenderDIB( void ); 00252 00254 LOGPALETTE *GetPalette( void ); 00255 00257 LOGPALETTE *CreatePaletteFromDIB( void ); 00258 00260 LOGPALETTE *CreateDefaultPalette( void ); 00261 00264 // TOutputType GetType( void ); 00265 00269 void ColorDef(void); 00270 00273 void BereichDef(void); 00274 00276 int GetColor( float ); 00277 00279 void GenerateAngleSpaceBitmap(void); 00280 00282 void GenerateRLBitmap( void ); 00283 00284 // ATTRIBUT(E) 00285 private: 00286 // ehemalig global definiert 00287 double clogval; 00288 double clinval; 00289 HBITMAP hBitmap; 00290 POINT RLArea[RLAreaPkts]; 00291 00292 private: 00294 TPlotWindow *PlotWindow; // nicht im Destruktor freigeben, wird im Konstruktor übergeben und muss vom Aufrufer verwaltet werden 00295 00297 TCoorSystem *BMCoorSys; // nicht im Destruktor freigeben, wird von DataWnd übernommen 00298 00300 TCurveFreeScalColorWindow *UserFarb; // wird im Destruktor freigegeben 00301 00302 00306 TBMContens **m_Daten; // wird im Destruktor freigegeben 00307 00308 // Dimensionen des <m_Daten>-Feldes 00309 UINT m_DatenRows, m_DatenCols; 00310 00312 // gibt an, ob <m_Daten> schon initialisiert wurde 00313 bool m_DatenInited; 00314 00315 00318 BOOL bGrayScalePalette; 00319 00321 TColorTable ColorTable; 00322 00324 HGLOBAL hDIBInfo; 00325 00326 HGLOBAL hDIBData; 00327 00328 HGLOBAL hMemPal; 00329 00330 HPALETTE hPalette, hOldPalette; 00331 00334 00336 00338 TFloatList ber; 00339 00341 TIntList farbe; 00342 00345 char Fileold[MaxString]; 00346 }; 00347 00348 //############################################################################## 00349 // TCurveFreeScalColorWindow 00350 //############################################################################## 00351 00352 class TCurveFreeScalColorWindow : public TMDIWindow 00353 { 00354 public: 00356 TCurveFreeScalColorWindow(HINSTANCE, TPlotWindow*); 00357 00359 virtual ~TCurveFreeScalColorWindow(void); 00360 00361 // Überschriebenes aus der (Fenster-)Basisklasse 00362 private: 00363 virtual void Create(HWND hwnd); 00364 virtual BOOL SetTitle(); 00365 virtual void Paint(HDC, PAINTSTRUCT*); 00366 00367 // Sonstiges 00368 private: 00370 void DrawColorTable(HDC); 00371 00372 // ATTRIBUT(E) 00373 protected: 00375 TPlotWindow *PlotWindow; // nicht im Destruktor freigeben, wird im Konstruktor übergeben und muss vom Aufrufer verwaltet werden 00376 }; 00377 00378 #endif // _D_INTERN_H 00379 00380 //############################################################################# 00381 // LastLine 00382 //#############################################################################

Erzeugt am Sat Nov 13 12:48:05 2004 für XCTL32 von doxygen 1.3.7