|
|
1.1 ! root 1: // spin.h: C++ interface to spin control ! 2: // ! 3: // This is a part of the Microsoft Foundation Classes C++ library. ! 4: // Copyright (C) 1992 Microsoft Corporation ! 5: // All rights reserved. ! 6: // ! 7: // This source code is only intended as a supplement to the ! 8: // Microsoft Foundation Classes Reference and Microsoft ! 9: // QuickHelp documentation provided with the library. ! 10: // See these sources for detailed information regarding the ! 11: // Microsoft Foundation Classes product. ! 12: ! 13: #ifndef __AFXWIN_H__ ! 14: #include <afxwin.h> ! 15: #endif ! 16: ! 17: #include "muscroll.h" // message based API ! 18: ! 19: ///////////////////////////////////////////////////////////////////////////// ! 20: ! 21: class CSpinControl : public CWnd ! 22: { ! 23: DECLARE_DYNAMIC(CSpinControl) ! 24: ! 25: // Constructors ! 26: public: ! 27: CSpinControl(); ! 28: BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID); ! 29: ! 30: // Attributes ! 31: CWnd* GetAssociate(); ! 32: void SetAssociate(CWnd* pNew); ! 33: void GetRange(UINT& iMin, UINT& iMax); ! 34: void SetRange(UINT iMin, UINT iMax); ! 35: UINT GetCurrentPos(); ! 36: void SetCurrentPos(UINT iPos); ! 37: // there are more APIs in 'muscroll.h' not wrapped here ! 38: ! 39: // Implementation ! 40: protected: ! 41: virtual WNDPROC* GetSuperWndProcAddr(); ! 42: }; ! 43: ! 44: ///////////////////////////////////////////////////////////////////////////// ! 45: // new notification routines ! 46: ! 47: #ifdef LATER ! 48: #define MSN_ASSOCIATEGAIN 1 ! 49: #define MSN_ASSOCIATELOSS 2 ! 50: #define MSN_RANGECHANGE 3 ! 51: #endif ! 52: ! 53: ///////////////////////////////////////////////////////////////////////////// ! 54: // inlines ! 55: inline CSpinControl::CSpinControl() ! 56: { } ! 57: ! 58: inline CWnd* CSpinControl::GetAssociate() ! 59: { return CWnd::FromHandle((HWND)SendMessage(MSM_HWNDASSOCIATEGET)); } ! 60: inline void CSpinControl::SetAssociate(CWnd* pNew) ! 61: { SendMessage(MSM_HWNDASSOCIATESET, (UINT)pNew->GetSafeHwnd()); } ! 62: inline void CSpinControl::GetRange(UINT& iMin, UINT& iMax) ! 63: { DWORD dw = SendMessage(MSM_DWRANGEGET); ! 64: iMin = LOWORD(dw); iMax = HIWORD(dw); ! 65: } ! 66: inline void CSpinControl::SetRange(UINT iMin, UINT iMax) ! 67: { SendMessage(MSM_DWRANGESET, 0, MAKELONG(iMin, iMax)); } ! 68: inline UINT CSpinControl::GetCurrentPos() ! 69: { return (UINT)SendMessage(MSM_WCURRENTPOSGET); } ! 70: inline void CSpinControl::SetCurrentPos(UINT iPos) ! 71: { SendMessage(MSM_WCURRENTPOSSET, iPos); } ! 72: ! 73: /////////////////////////////////////////////////////////////////////////////
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.