home *** CD-ROM | disk | FTP | other *** search
/ Prima Shareware 3 / DuCom_Prima-Shareware-3_cd1.bin / PROGRAMO / VB40 / VUMETER / DEMODLG.CPP < prev    next >
Encoding:
C/C++ Source or Header  |  1996-04-13  |  4.9 KB  |  223 lines

  1. // DemoDlg.cpp : implementation file
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include "Demo.h"
  6. #include "DemoDlg.h"
  7.  
  8. #ifdef _DEBUG
  9. #define new DEBUG_NEW
  10. #undef THIS_FILE
  11. static char THIS_FILE[] = __FILE__;
  12. #endif
  13.  
  14. /////////////////////////////////////////////////////////////////////////////
  15. // CDemoDlg dialog
  16.  
  17. CDemoDlg::CDemoDlg(CWnd* pParent /*=NULL*/)
  18.     : CDialog(CDemoDlg::IDD, pParent)
  19. {
  20.     //{{AFX_DATA_INIT(CDemoDlg)
  21.     m_innerbevelbtn = 0;
  22.     m_orientationbtn = 0;
  23.     m_outerbevelbtn = 1;
  24.     //}}AFX_DATA_INIT
  25.     m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
  26. }
  27.  
  28. void CDemoDlg::DoDataExchange(CDataExchange* pDX)
  29. {
  30.     CDialog::DoDataExchange(pDX);
  31.     //{{AFX_DATA_MAP(CDemoDlg)
  32.     DDX_Control(pDX, IDC_SLIDER4, m_outerbevelwidth);
  33.     DDX_Control(pDX, IDC_SLIDER3, m_innerbevelwidth);
  34.     DDX_Control(pDX, IDC_SLIDER2, m_borderwidth);
  35.     DDX_Control(pDX, IDC_SLIDER1, m_pos);
  36.     DDX_Control(pDX, IDC_SLIDER5, m_tickmarks);
  37.     DDX_Control(pDX, 1008, m_meter);
  38.     DDX_Radio(pDX, IDC_RADIO8, m_innerbevelbtn);
  39.     DDX_Radio(pDX, IDC_RADIO5, m_orientationbtn);
  40.     DDX_Radio(pDX, IDC_RADIO3, m_outerbevelbtn);
  41.     //}}AFX_DATA_MAP
  42. }
  43.  
  44. BEGIN_MESSAGE_MAP(CDemoDlg, CDialog)
  45.     //{{AFX_MSG_MAP(CDemoDlg)
  46.     ON_WM_PAINT()
  47.     ON_WM_QUERYDRAGICON()
  48.     ON_WM_HSCROLL()
  49.     ON_BN_CLICKED(IDC_RADIO8, OnRadio8)
  50.     ON_BN_CLICKED(IDC_RADIO7, OnRadio7)
  51.     ON_BN_CLICKED(IDC_RADIO6, OnRadio6)
  52.     ON_BN_CLICKED(IDC_RADIO5, OnRadio5)
  53.     ON_BN_CLICKED(IDC_RADIO4, OnRadio4)
  54.     ON_BN_CLICKED(IDC_RADIO3, OnRadio3)
  55.     ON_BN_CLICKED(IDC_RADIO2, OnRadio2)
  56.     ON_BN_CLICKED(IDC_RADIO1, OnRadio1)
  57.     //}}AFX_MSG_MAP
  58. END_MESSAGE_MAP()
  59.  
  60. /////////////////////////////////////////////////////////////////////////////
  61. // CDemoDlg message handlers
  62.  
  63. BOOL CDemoDlg::OnInitDialog()
  64. {
  65.     CDialog::OnInitDialog();
  66.  
  67.     SetIcon(m_hIcon, TRUE);            // Set big icon
  68.     SetIcon(m_hIcon, FALSE);        // Set small icon
  69.     
  70.     // TODO: Add extra initialization here
  71.     m_outerbevelwidth.SetRange(0, 10, TRUE);
  72.     m_innerbevelwidth.SetRange(0, 10, TRUE);
  73.     m_borderwidth.SetRange(0, 30, TRUE);
  74.     m_pos.SetRange(0, 100, TRUE);
  75.     m_tickmarks.SetRange(3, 40, TRUE);
  76.  
  77.     m_outerbevelwidth.SetPageSize(1);
  78.     m_innerbevelwidth.SetPageSize(1);
  79.     m_borderwidth.SetPageSize(1);
  80.     m_pos.SetPageSize(5);
  81.     m_tickmarks.SetPageSize(5);
  82.  
  83.     m_outerbevelwidth.SetPos(2);
  84.     m_innerbevelwidth.SetPos(2);
  85.     m_borderwidth.SetPos(3);
  86.     m_pos.SetPos(50);
  87.     m_tickmarks.SetPos(5);
  88.     
  89.     return TRUE;  // return TRUE  unless you set the focus to a control
  90. }
  91.  
  92. // If you add a minimize button to your dialog, you will need the code below
  93. //  to draw the icon.  For MFC applications using the document/view model,
  94. //  this is automatically done for you by the framework.
  95.  
  96. void CDemoDlg::OnPaint() 
  97. {
  98.     if (IsIconic())
  99.     {
  100.         CPaintDC dc(this); // device context for painting
  101.  
  102.         SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
  103.  
  104.         // Center icon in client rectangle
  105.         int cxIcon = GetSystemMetrics(SM_CXICON);
  106.         int cyIcon = GetSystemMetrics(SM_CYICON);
  107.         CRect rect;
  108.         GetClientRect(&rect);
  109.         int x = (rect.Width() - cxIcon + 1) / 2;
  110.         int y = (rect.Height() - cyIcon + 1) / 2;
  111.  
  112.         // Draw the icon
  113.         dc.DrawIcon(x, y, m_hIcon);
  114.     }
  115.     else
  116.     {
  117.         CDialog::OnPaint();
  118.     }
  119. }
  120.  
  121. HCURSOR CDemoDlg::OnQueryDragIcon()
  122. {
  123.     return (HCURSOR) m_hIcon;
  124. }
  125.  
  126. BEGIN_EVENTSINK_MAP(CDemoDlg, CDialog)
  127.     //{{AFX_EVENTSINK_MAP(CDemoDlg)
  128.     ON_EVENT(CDemoDlg, 1008, 1 /* Alarm */, OnAlarm, VTS_PI2)
  129.     //}}AFX_EVENTSINK_MAP
  130. END_EVENTSINK_MAP()
  131.  
  132. void CDemoDlg::OnAlarm(short FAR* Alarm) 
  133. {
  134. static BOOL bInAlarm = FALSE;
  135.  
  136.     if (!bInAlarm)
  137.     {
  138.         bInAlarm = TRUE;
  139.         if (*Alarm == 1)
  140.         {
  141.             MessageBox("Low Alarm Hit!");
  142.         }
  143.         else
  144.         {
  145.             MessageBox("High Alarm Hit!");
  146.         }
  147.  
  148.         bInAlarm = FALSE;
  149.     }
  150. }
  151.  
  152. void CDemoDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
  153. {
  154.         if (SB_ENDSCROLL == nSBCode)
  155.     {
  156.         if (&m_outerbevelwidth == (CSliderCtrl *)pScrollBar)
  157.         {
  158.             m_meter.SetOuterBevelWidth(((CSliderCtrl *)pScrollBar)->GetPos());
  159.         }
  160.         else if (&m_innerbevelwidth == (CSliderCtrl *)pScrollBar)
  161.         {
  162.             m_meter.SetInnerBevelWidth(((CSliderCtrl *)pScrollBar)->GetPos());
  163.         }
  164.         else if (&m_borderwidth == (CSliderCtrl *)pScrollBar)
  165.         {
  166.             m_meter.SetBorderWidth(((CSliderCtrl *)pScrollBar)->GetPos());
  167.         }
  168.         else if (&m_pos == (CSliderCtrl *)pScrollBar)
  169.         {
  170.             m_meter.SetPos(((CSliderCtrl *)pScrollBar)->GetPos());
  171.         }
  172.         else
  173.         {
  174.             m_meter.SetTickMarks(((CSliderCtrl *)pScrollBar)->GetPos());
  175.         }
  176.     }
  177.     
  178.     CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
  179. }
  180.  
  181. void CDemoDlg::OnRadio8() 
  182. {
  183.     UpdateData();
  184.     m_meter.SetInnerBevel(m_innerbevelbtn);
  185. }
  186.  
  187. void CDemoDlg::OnRadio7() 
  188. {
  189.     OnRadio8();
  190. }
  191.  
  192. void CDemoDlg::OnRadio6() 
  193. {
  194.     OnRadio8();    
  195. }
  196.  
  197. void CDemoDlg::OnRadio5() 
  198. {
  199.     UpdateData();
  200.     m_meter.SetOrientation(m_orientationbtn);
  201. }
  202.  
  203. void CDemoDlg::OnRadio4() 
  204. {
  205.     OnRadio5();
  206. }
  207.  
  208. void CDemoDlg::OnRadio3() 
  209. {
  210.     UpdateData();
  211.     m_meter.SetOuterBevel(m_outerbevelbtn);
  212. }
  213.  
  214. void CDemoDlg::OnRadio2() 
  215. {
  216.     OnRadio3();
  217. }
  218.  
  219. void CDemoDlg::OnRadio1() 
  220. {
  221.     OnRadio3();
  222. }
  223.