home *** CD-ROM | disk | FTP | other *** search
/ Prima Shareware 3 / DuCom_Prima-Shareware-3_cd1.bin / PROGRAMO / C / CKTBL / SAMPLES / MFCDEMO / LABELDIA.CPP < prev    next >
Encoding:
C/C++ Source or Header  |  1994-09-06  |  3.6 KB  |  137 lines

  1. // labeldia.cpp : implementation file
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include "mfcdemo.h"
  6. #include "labeldia.h"
  7. #include "demotbl.h"
  8.  
  9. #ifdef _DEBUG
  10. #undef THIS_FILE
  11. static char BASED_CODE THIS_FILE[] = __FILE__;
  12. #endif
  13.  
  14. /////////////////////////////////////////////////////////////////////////////
  15. // CLabelDialog dialog
  16.  
  17.  
  18. CLabelDialog::CLabelDialog(CWnd* pParent /*=NULL*/)
  19.     : CDialog(CLabelDialog::IDD, pParent)
  20. {
  21.     //{{AFX_DATA_INIT(CLabelDialog)
  22.     m_ColLabel3D = FALSE;
  23.     m_RowLabel3D = FALSE;
  24.     //}}AFX_DATA_INIT
  25. }
  26.  
  27. void CLabelDialog::DoDataExchange(CDataExchange* pDX)
  28. {
  29.     CDialog::DoDataExchange(pDX);
  30.     //{{AFX_DATA_MAP(CLabelDialog)
  31.     DDX_Control(pDX, IDC_LABELS_ROWS, m_RowLabels);
  32.     DDX_Control(pDX, IDC_LABELS_COLUMNS, m_ColLabels);
  33.     DDX_Check(pDX, IDC_LABELS_3DCOLS, m_ColLabel3D);
  34.     DDX_Check(pDX, IDC_LABELS_3DROWS, m_RowLabel3D);
  35.     //}}AFX_DATA_MAP
  36. }
  37.  
  38. BEGIN_MESSAGE_MAP(CLabelDialog, CDialog)
  39.     //{{AFX_MSG_MAP(CLabelDialog)
  40.     ON_BN_CLICKED(IDC_APPLY, OnApply)
  41.     //}}AFX_MSG_MAP
  42. END_MESSAGE_MAP()
  43.  
  44. /////////////////////////////////////////////////////////////////////////////
  45. // CLabelDialog  
  46.                     
  47. void CLabelDialog::InitializeFrom( CDemoTableControl * aCKTBL )
  48. {                   
  49.     long flags  = aCKTBL->GetFlags();
  50.     cktbl = aCKTBL;
  51.     
  52.        m_RowLabel3D = (flags&CKTBL_ROWLABEL_3D)!=0;      
  53.     m_ColLabel3D = (flags&CKTBL_COLLABEL_3D)!=0;      
  54.     
  55. }    
  56.  
  57. void CLabelDialog::ApplyData()
  58. {    
  59.     long mask=0,value=0;
  60.     
  61.     // TODO: Add your control notification handler code here
  62.           
  63.     cktbl->SetFlagsTo( CKTBL_ROWLABEL_3D, m_RowLabel3D );  
  64.     cktbl->SetFlagsTo( CKTBL_COLLABEL_3D, m_ColLabel3D );  
  65.               
  66.     mask |= CKTBL_ROWLABEL_MASK;
  67.     switch(m_RowLabels.GetCurSel()) {
  68.         case 0: value|=CKTBL_ROWLABEL_EMPTY; break;
  69.            case 1: value|=CKTBL_ROWLABEL_NUMERIC; break;
  70.            case 2: value|=CKTBL_ROWLABEL_ALPHA; break;  
  71.      }  
  72.      
  73.     mask |= CKTBL_COLLABEL_MASK;
  74.     switch(m_ColLabels.GetCurSel()) {
  75.         case 0: value|=CKTBL_COLLABEL_EMPTY; break;
  76.            case 1: value|=CKTBL_COLLABEL_NUMERIC; break;
  77.            case 2: value|=CKTBL_COLLABEL_ALPHA; break;  
  78.      }  
  79.           
  80.        cktbl->SetFlags( (cktbl->GetFlags() & ~mask) | value);
  81.     cktbl->Invalidate();
  82. }             
  83. /////////////////////////////////////////////////////////////////////////////
  84. // CLabelDialog message handlers
  85.  
  86. void CLabelDialog::OnOK()
  87. {
  88.     // TODO: Add extra validation here
  89.     
  90.     CDialog::OnOK(); 
  91.     ApplyData();
  92. }
  93.  
  94. void CLabelDialog::OnApply()
  95. {
  96.     // TODO: Add your control notification handler code here
  97.     if(UpdateData()) ApplyData();
  98. }
  99.  
  100. BOOL CLabelDialog::OnInitDialog()
  101. {     
  102.     long flags = cktbl->GetFlags();      
  103.     int sel;
  104.     
  105.     CDialog::OnInitDialog();
  106.     
  107.     // TODO: Add extra initialization here
  108.     
  109.     m_RowLabels.Clear();
  110.     m_RowLabels.AddString( "None" );
  111.     m_RowLabels.AddString( "Numeric" );
  112.     m_RowLabels.AddString( "Alphabetic" );
  113.     
  114.     m_ColLabels.Clear();
  115.     m_ColLabels.AddString( "None" );
  116.     m_ColLabels.AddString( "Numeric" );
  117.     m_ColLabels.AddString( "Alphabetic" );
  118.     
  119.     switch( flags & CKTBL_ROWLABEL_MASK ) {
  120.         case CKTBL_ROWLABEL_EMPTY:         sel = 0; break;
  121.         case CKTBL_ROWLABEL_NUMERIC:     sel = 1; break;
  122.         case CKTBL_ROWLABEL_ALPHA:         sel = 2; break;    
  123.         default:                         sel=0;
  124.     }       
  125.     m_RowLabels.SetCurSel(sel);
  126.          
  127.     switch( flags & CKTBL_COLLABEL_MASK ) {
  128.         case CKTBL_COLLABEL_EMPTY:         sel = 0; break;
  129.         case CKTBL_COLLABEL_NUMERIC:     sel = 1; break;
  130.         case CKTBL_COLLABEL_ALPHA:         sel = 2; break;    
  131.         default:                         sel=0;
  132.     }       
  133.     m_ColLabels.SetCurSel(sel);
  134.          
  135.     return TRUE;  // return TRUE  unless you set the focus to a control
  136. }
  137.