Commit before breaking everything
[matches/honours.git] / research / transmission_spectroscopy / TOF / Win32++ / samples / DialogBars / src / Scrollbar.cpp
1 //////////////////////////////////////////////\r
2 // CMyScrollBar.cpp\r
3 \r
4 #include "stdafx.h"\r
5 #include "ScrollBar.h"\r
6 #include "DialogApp.h"\r
7 \r
8 \r
9 CMyScrollBar::CMyScrollBar()\r
10 {\r
11         ZeroMemory(&m_si, sizeof(SCROLLINFO));\r
12 }\r
13 \r
14 void CMyScrollBar::OnInitialUpdate()\r
15 {\r
16         // Called automatically via AttachDlgItem\r
17 \r
18         // Set the Scroll bar position\r
19         SetScroll(0);\r
20 }\r
21 \r
22 LRESULT CMyScrollBar::OnMessageReflect(UINT uMsg, WPARAM wParam, LPARAM lParam)\r
23 {\r
24         UNREFERENCED_PARAMETER(lParam);\r
25 \r
26         switch (uMsg)\r
27         {\r
28         case WM_HSCROLL:\r
29                 {\r
30                         // Get a reference to the MyDialog object\r
31                         CMyDialog& MyDialog = GetDialogApp().GetDialog();\r
32 \r
33                         GetScrollInfo(&m_si);\r
34 \r
35                         switch (LOWORD (wParam))\r
36                         {\r
37                         // user clicked left arrow\r
38                         case SB_LINELEFT:\r
39                                 m_si.nPos -= 1;\r
40                                 break;\r
41 \r
42                         // user clicked right arrow\r
43                         case SB_LINERIGHT:\r
44                                 m_si.nPos += 1;\r
45                                 break;\r
46 \r
47                         // user clicked the scroll bar shaft left of the scroll box\r
48                         case SB_PAGELEFT:\r
49                                 m_si.nPos -= m_si.nPage;\r
50                                 break;\r
51 \r
52                         // user clicked the scroll bar shaft right of the scroll box\r
53                         case SB_PAGERIGHT:\r
54                                 m_si.nPos += m_si.nPage;\r
55                                 break;\r
56 \r
57                         // user dragged the scroll box\r
58                         case SB_THUMBTRACK:\r
59                                 m_si.nPos = m_si.nTrackPos;\r
60                                 break;\r
61 \r
62                         default :\r
63                                 break;\r
64                         }\r
65 \r
66                         MyDialog.SetScroll(m_si.nPos);                  // Set the scroll bar position\r
67                         MyDialog.SetSlider(m_si.nPos);                  // Set the slider position\r
68                         MyDialog.SetProgress(m_si.nPos);                // Set the progress bar position\r
69                         MyDialog.SetStatic(FALSE, m_si.nPos);   // Set the static text\r
70 \r
71                         break;\r
72                 }\r
73         }\r
74 \r
75         return 0;\r
76 }\r
77 \r
78 void CMyScrollBar::SetScroll(int nPos)\r
79 {\r
80         m_si.cbSize = sizeof(SCROLLINFO);\r
81         m_si.nPos = nPos;\r
82         m_si.nPage = 10;\r
83         m_si.nMax = 100 + (m_si.nPage -1);\r
84         m_si.fMask = SIF_ALL;\r
85 \r
86         // Set the scroll bar position\r
87         SetScrollInfo(&m_si, TRUE);\r
88 }\r
89 \r

UCC git Repository :: git.ucc.asn.au