Commit before breaking everything
[matches/honours.git] / research / transmission_spectroscopy / TOF / Win32++ / samples / DialogBars / src / Scrollbar.cpp
diff --git a/research/transmission_spectroscopy/TOF/Win32++/samples/DialogBars/src/Scrollbar.cpp b/research/transmission_spectroscopy/TOF/Win32++/samples/DialogBars/src/Scrollbar.cpp
new file mode 100644 (file)
index 0000000..e0b1e9d
--- /dev/null
@@ -0,0 +1,89 @@
+//////////////////////////////////////////////\r
+// CMyScrollBar.cpp\r
+\r
+#include "stdafx.h"\r
+#include "ScrollBar.h"\r
+#include "DialogApp.h"\r
+\r
+\r
+CMyScrollBar::CMyScrollBar()\r
+{\r
+       ZeroMemory(&m_si, sizeof(SCROLLINFO));\r
+}\r
+\r
+void CMyScrollBar::OnInitialUpdate()\r
+{\r
+       // Called automatically via AttachDlgItem\r
+\r
+       // Set the Scroll bar position\r
+       SetScroll(0);\r
+}\r
+\r
+LRESULT CMyScrollBar::OnMessageReflect(UINT uMsg, WPARAM wParam, LPARAM lParam)\r
+{\r
+       UNREFERENCED_PARAMETER(lParam);\r
+\r
+       switch (uMsg)\r
+       {\r
+       case WM_HSCROLL:\r
+               {\r
+                       // Get a reference to the MyDialog object\r
+                       CMyDialog& MyDialog = GetDialogApp().GetDialog();\r
+\r
+                       GetScrollInfo(&m_si);\r
+\r
+                       switch (LOWORD (wParam))\r
+                       {\r
+                       // user clicked left arrow\r
+                       case SB_LINELEFT:\r
+                               m_si.nPos -= 1;\r
+                               break;\r
+\r
+                       // user clicked right arrow\r
+                       case SB_LINERIGHT:\r
+                               m_si.nPos += 1;\r
+                               break;\r
+\r
+                       // user clicked the scroll bar shaft left of the scroll box\r
+                       case SB_PAGELEFT:\r
+                               m_si.nPos -= m_si.nPage;\r
+                               break;\r
+\r
+                       // user clicked the scroll bar shaft right of the scroll box\r
+                       case SB_PAGERIGHT:\r
+                               m_si.nPos += m_si.nPage;\r
+                               break;\r
+\r
+                       // user dragged the scroll box\r
+                       case SB_THUMBTRACK:\r
+                               m_si.nPos = m_si.nTrackPos;\r
+                               break;\r
+\r
+                       default :\r
+                               break;\r
+                       }\r
+\r
+                       MyDialog.SetScroll(m_si.nPos);                  // Set the scroll bar position\r
+                       MyDialog.SetSlider(m_si.nPos);                  // Set the slider position\r
+                       MyDialog.SetProgress(m_si.nPos);                // Set the progress bar position\r
+                       MyDialog.SetStatic(FALSE, m_si.nPos);   // Set the static text\r
+\r
+                       break;\r
+               }\r
+       }\r
+\r
+       return 0;\r
+}\r
+\r
+void CMyScrollBar::SetScroll(int nPos)\r
+{\r
+       m_si.cbSize = sizeof(SCROLLINFO);\r
+       m_si.nPos = nPos;\r
+       m_si.nPage = 10;\r
+       m_si.nMax = 100 + (m_si.nPage -1);\r
+       m_si.fMask = SIF_ALL;\r
+\r
+       // Set the scroll bar position\r
+       SetScrollInfo(&m_si, TRUE);\r
+}\r
+\r

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