home *** CD-ROM | disk | FTP | other *** search
/ C/C++ User's Journal & Wi…eveloper's Journal Tools / C-C__Users_Journal_and_Windows_Developers_Journal_Tools_1997.iso / stingray / dlgsamp3.cpp < prev    next >
C/C++ Source or Header  |  1996-10-27  |  3KB  |  134 lines

  1. // dlgsamp3.cpp : implementation file
  2. //
  3.  
  4. // This is a part of the Objective Grid C++ Library.
  5. // Copyright (C) 1995,1996 ClassWorks, Stefan Hoenig.
  6. // All rights reserved.
  7. //
  8. // This source code is only intended as a supplement to
  9. // the Objective Grid Classes Reference and related
  10. // electronic documentation provided with the library.
  11. // See these sources for detailed information regarding
  12. // the Objective Grid product.
  13. //
  14.  
  15. #include "stdafx.h"
  16. #include "gridapp.h"
  17. #include "dlgsamp3.h"
  18.  
  19. #ifndef _GXALL_H_
  20. #include "gxwnd.h"
  21. #include "gxctrl.h"
  22. #endif
  23.  
  24. #ifdef _DEBUG
  25. #undef THIS_FILE
  26. static char BASED_CODE THIS_FILE[] = __FILE__;
  27. #endif
  28.  
  29. #define new DEBUG_NEW
  30.  
  31. /////////////////////////////////////////////////////////////////////////////
  32. // CSample3Dialog
  33. //
  34. // CSample3Dialog is based on the IDD_DLGSAMP3 dialog template.
  35. // The grid window is created though a call to the Create() member function.
  36. //
  37. // In DoDataExchange, I have added the line
  38. // DDV_GXGridWnd(pDX, &m_wndGrid);
  39. // which enables control validation in the dialog.
  40.  
  41. /////////////////////////////////////////////////////////////////////////////
  42. // CSample3Dialog dialog
  43.  
  44. CSample3Dialog::CSample3Dialog(CWnd* pParent /*=NULL*/)
  45.     : CDialog(CSample3Dialog::IDD, pParent)
  46. {
  47.     //{{AFX_DATA_INIT(CSample3Dialog)
  48.     m_nEdit = 0;
  49.     m_nVal2 = 0;
  50.     //}}AFX_DATA_INIT
  51. }
  52.  
  53. void CSample3Dialog::DoDataExchange(CDataExchange* pDX)
  54. {
  55.     CDialog::DoDataExchange(pDX);
  56.     //{{AFX_DATA_MAP(CSample3Dialog)
  57.     DDX_Text(pDX, IDC_EDIT1, m_nEdit);
  58.     DDV_MinMaxInt(pDX, m_nEdit, 0, 100);
  59.     DDX_Text(pDX, IDC_EDIT2, m_nVal2);
  60.     DDV_MinMaxInt(pDX, m_nVal2, 0, 100);
  61.     //}}AFX_DATA_MAP
  62.  
  63.     // validation routine for CGXGridWnd controls
  64.     DDV_GXGridWnd(pDX, &m_wndGrid);
  65. }
  66.  
  67. BEGIN_MESSAGE_MAP(CSample3Dialog, CDialog)
  68.     //{{AFX_MSG_MAP(CSample3Dialog)
  69.     ON_WM_NCACTIVATE()
  70.     //}}AFX_MSG_MAP
  71. END_MESSAGE_MAP()
  72.  
  73.  
  74. /////////////////////////////////////////////////////////////////////////////
  75. // CSample3Dialog message handlers
  76.  
  77. BOOL CSample3Dialog::OnInitDialog()
  78. {
  79.     CDialog::OnInitDialog();
  80.  
  81.     CWnd* pGridFrame = GetDlgItem(IDC_GRIDWND3);
  82.  
  83.     if (pGridFrame)
  84.     {
  85.        // Retrive the size of the frame and convert the co-ordinated to
  86.        // use the Dialog co-ordinates (from screen co-ordinates).
  87.        CRect rect;
  88.        pGridFrame->GetWindowRect( &rect );
  89.        ScreenToClient(&rect);
  90.  
  91.        DWORD dwFlags =
  92.            WS_TABSTOP | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_VISIBLE;
  93.  
  94. #if _MFC_VER >= 0x0400
  95.        // draw grid with sunken borders
  96.        dwFlags |= WS_EX_CLIENTEDGE;
  97. #endif
  98.  
  99.        m_wndGrid.Create(
  100.            dwFlags,
  101.            rect,
  102.            this,
  103.            21000);
  104.  
  105.         m_wndGrid.Initialize();
  106.  
  107.         m_wndGrid.SetRowCount(256);
  108.         m_wndGrid.SetColCount(52);
  109.  
  110.         // minimumn, maximum value
  111.         m_wndGrid.SetStyleRange(CGXRange().SetTable(), CGXStyle()
  112.                 .SetUserAttribute(GX_IDS_UA_VALID_MIN, _T("0"))
  113.                 .SetUserAttribute(GX_IDS_UA_VALID_MAX, _T("100"))
  114.                 .SetUserAttribute(GX_IDS_UA_VALID_MSG, _T("Please enter a value between 0 and 100!"))
  115.             );
  116.  
  117.         m_wndGrid.SetCurrentCell(1,1);
  118.  
  119.         m_wndGrid.SetFocus();
  120.  
  121.         return FALSE;
  122.     }
  123.  
  124.     return TRUE;  // return TRUE  unless you set the focus to a control
  125. }
  126.  
  127. BOOL CSample3Dialog::OnNcActivate(BOOL bActive)
  128. {
  129.     if (CGXGridCombo::GetComboBoxDropDown())
  130.         return TRUE;
  131.  
  132.     return CDialog::OnNcActivate(bActive);
  133. }
  134.