home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / dtx9303 / ms_c_7 / hotline / c_dialog.cpp < prev    next >
Encoding:
Text File  |  1993-06-04  |  1.6 KB  |  52 lines

  1. // =========================================================
  2. //                C_DIALOG.CPP
  3. // Beispiel für die Zentrierung einer Dialogbox
  4.  
  5. BOOL
  6. MyDialog::OnInitDialog()
  7. {
  8.    // Initialisierung der Basisklasse
  9.    VERIFY(CModalDialog::OnInitDialog());
  10.  
  11.    // Zeiger auf Parent Window holen
  12.    CWnd* pParent = GetParent();
  13.  
  14.    // verschiedene benötigte Objecte instanzieren
  15.    CRect rectDlg, rectParent, rectParentScreen;
  16.  
  17.    // Größe des Dialog-Windows in Bildschirmkoordinaten
  18.    // ermitteln
  19.    GetWindowRect(rectDlg);
  20.  
  21.    // Client-Koordinaten des Parent Window ermitteln
  22.    pParent->GetClientRect(rectParent);
  23.  
  24.    // Screen-Koordinaten des Parent Window ermitteln
  25.    pParent->GetWindowRect(rectParentScreen);
  26.  
  27.    // Berechnen des Offsets, den der Dialog von der
  28.    // linken oberen Ecke des Parents in Screen-
  29.    // Koordinaten haben soll
  30.    CPoint ptOffsetFromParent;
  31.    ptOffsetFromParent.x = (rectParent.Width() - rectDlg.Width()) / 2;
  32.    ptOffsetFromParent.y = (rectParent.Height() - rectDlg.Height()) / 2;
  33.  
  34.    // Offset berechnen, den der Dialog zur oberen
  35.    // linken Ecke des Parents hat
  36.    CPoint ptOffsetToParent;
  37.    ptOffsetToParent.x = rectParentScreen.left - rectDlg.left;
  38.    ptOffsetToParent.y = rectParentScreen.top - rectDlg.top;
  39.  
  40.    // benötigten Offset ermitteln
  41.    ptOffsetFromParent.Offset( ptOffsetToParent );
  42.  
  43.    // Zuvor ermitteltes Child Window um den soeben
  44.    // ermittelten Vektor verschieben
  45.    rectDlg.OffsetRect( ptOffsetFromParent );
  46.  
  47.    // Dialog zentrieren
  48.    MoveWindow( rectDlg );
  49.  
  50.   return TRUE;
  51. };
  52.