home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / VISUAL_B / FERRAMEN / VBXSTD12 / SPINDEMO.CP_ / SPINDEMO.CPP
Encoding:
C/C++ Source or Header  |  1994-08-23  |  4.2 KB  |  163 lines

  1. // spindemo.cpp : implementation file
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include "vbxdemo.h"
  6. #include "spindemo.h"
  7.  
  8. #ifdef _DEBUG
  9. #undef THIS_FILE
  10. static char BASED_CODE THIS_FILE[] = __FILE__;
  11. #endif
  12.  
  13.  
  14. LPSTR CustomSpinList[] = { "<Item 1>", "<Item 2>", "<Item 3>" };
  15.  
  16.  
  17. /////////////////////////////////////////////////////////////////////////////
  18. // CSpinDemo dialog
  19.  
  20.  
  21. CSpinDemo::CSpinDemo(CWnd* pParent /*=NULL*/)
  22.     : CDialog(CSpinDemo::IDD, pParent)
  23. {
  24.     //{{AFX_DATA_INIT(CSpinDemo)
  25.     m_pEditDate = NULL;
  26.     m_szCustomEdit = "";
  27.     m_pSpinDate = NULL;
  28.     m_pSpinCustom = NULL;
  29.     m_pEditCustom = NULL;
  30.     //}}AFX_DATA_INIT
  31. }
  32.  
  33. void CSpinDemo::DoDataExchange(CDataExchange* pDX)
  34. {
  35.     CDialog::DoDataExchange(pDX);
  36.     //{{AFX_DATA_MAP(CSpinDemo)
  37.     DDX_VBEdit(pDX, IDC_VBEDIT3, m_pEditDate);
  38.     DDX_VBText(pDX, IDC_VBEDIT4, 41, m_szCustomEdit);
  39.     DDX_VBSpin(pDX, IDC_VBSPIN4, m_pSpinDate);
  40.     DDX_VBSpin(pDX, IDC_VBSPIN5, m_pSpinCustom);
  41.     DDX_VBEdit(pDX, IDC_VBEDIT4, m_pEditCustom);
  42.     //}}AFX_DATA_MAP
  43. }
  44.  
  45. BEGIN_MESSAGE_MAP(CSpinDemo, CDialog)
  46.     //{{AFX_MSG_MAP(CSpinDemo)
  47.     ON_WM_DESTROY()
  48.     ON_BN_CLICKED(IDHELP, OnHelp)
  49.     ON_VBXEVENT(VBN_SCROLLUP, IDC_VBSPIN4, OnScrollupVbspin4)
  50.     ON_VBXEVENT(VBN_SCROLLDN, IDC_VBSPIN4, OnScrolldnVbspin4)
  51.     ON_VBXEVENT(VBN_SCROLLUP, IDC_VBSPIN5, OnScrollupVbspin5)
  52.     ON_VBXEVENT(VBN_SCROLLDN, IDC_VBSPIN5, OnScrolldnVbspin5)
  53.     //}}AFX_MSG_MAP
  54. END_MESSAGE_MAP()
  55.  
  56.  
  57. /////////////////////////////////////////////////////////////////////////////
  58. // CSpinDemo message handlers
  59.  
  60. void CSpinDemo::OnDestroy()
  61. {
  62.     CDialog::OnDestroy();
  63.     ::WinHelp( m_hWnd, "VBXSTD12.HLP", HELP_QUIT, NULL );        
  64. }
  65.  
  66. BOOL CSpinDemo::OnInitDialog()
  67. {
  68.     CDialog::OnInitDialog();
  69.     m_szCustomEdit = "<Item 1>";        // required because we use UpdateData...
  70. UpdateData( FALSE );    
  71. if ( !IsHlpHere() )
  72.         GetDlgItem( IDHELP )->EnableWindow( FALSE );
  73.  
  74.     return TRUE;  // return TRUE  unless you set the focus to a control
  75. }
  76.  
  77. void CSpinDemo::OnHelp()
  78. {
  79. CString FAR szWinDir, szName, szMsg;
  80.     GetSystemDirectory( szWinDir.GetBuffer(250), 248 );
  81.     szWinDir.ReleaseBuffer();
  82.     if ( szWinDir.GetLength() > 3 )
  83.         szWinDir += "\\";
  84.     szName = szWinDir;
  85.     szName += "VBXSTD12.HLP";
  86.     if ( !IsHlpHere() )
  87.         return;
  88.     ::WinHelp( m_hWnd, szName, HELP_KEY, (long)"VBSpin" );    
  89. }
  90.  
  91. void CSpinDemo::OnScrollupVbspin4(UINT, int, CWnd*, LPVOID)
  92. {
  93.     m_pSpinDate->Value() = 0;        // we use the VBEdit 'spin' properties instead...
  94.     m_pEditDate->Increment() = TRUE;   // yes, that' s all!
  95.     
  96. }
  97.  
  98. void CSpinDemo::OnScrolldnVbspin4(UINT, int, CWnd*, LPVOID)
  99. {
  100.     m_pSpinDate->Value() = 0;        // we use the VBEdit 'spin' properties instead...
  101.     m_pEditDate->Decrement() = TRUE;   // yes, that' s all!
  102.         
  103. }
  104.  
  105. void CSpinDemo::OnScrollupVbspin5(UINT, int, CWnd*, LPVOID)
  106. {
  107.     // Now, we are looking for difficulties...
  108.     // we have a look at the edit control text
  109.     if ( m_szCustomEdit == CustomSpinList[0] )
  110.         {
  111.         m_pSpinCustom->Value() += 1;
  112.         m_szCustomEdit = CustomSpinList[1];
  113.         UpdateData( FALSE );                 
  114.         m_pEditCustom->SetFocus();
  115.         m_pEditCustom->SetSel() = TRUE;
  116.         return;
  117.         }
  118.     if ( m_szCustomEdit == CustomSpinList[1] )
  119.         {
  120.         m_pSpinCustom->Value() += 1;
  121.         m_szCustomEdit = CustomSpinList[2];
  122.         UpdateData( FALSE );               
  123.         m_pEditCustom->SetFocus();
  124.         m_pEditCustom->SetSel() = TRUE;
  125.         return;
  126.         }
  127.     m_pSpinCustom->Value() = 2;    // the last one
  128.     m_szCustomEdit = CustomSpinList[2];
  129.     UpdateData( FALSE );
  130.     m_pEditCustom->SetFocus();
  131.     m_pEditCustom->SetSel() = TRUE;
  132. }
  133.  
  134. void CSpinDemo::OnScrolldnVbspin5(UINT, int, CWnd*, LPVOID)
  135. {
  136.     // Now, we are looking for difficulties...
  137.     // we have a look at the edit control text
  138.     if ( m_szCustomEdit == CustomSpinList[2] )
  139.         {
  140.         m_pSpinCustom->Value() -= 1;
  141.         m_szCustomEdit = CustomSpinList[1];
  142.         UpdateData( FALSE );
  143.         m_pEditCustom->SetFocus();
  144.         m_pEditCustom->SetSel() = TRUE;
  145.         return;
  146.         }
  147.     if ( m_szCustomEdit == CustomSpinList[1] )
  148.         {
  149.         m_pSpinCustom->Value() -= 1;
  150.         m_szCustomEdit = CustomSpinList[0];
  151.         UpdateData( FALSE );
  152.         m_pEditCustom->SetFocus();
  153.         m_pEditCustom->SetSel() = TRUE;
  154.         return;
  155.         }
  156.     m_pSpinCustom->Value() = 0;    // the last one
  157.     m_szCustomEdit = CustomSpinList[0];
  158.     UpdateData( FALSE );
  159.     m_pEditCustom->SetFocus();
  160.     m_pEditCustom->SetSel() = TRUE;
  161. }
  162.  
  163.