NumSpinCtrl.cpp
资源名称:fontcurve.rar [点击查看]
上传用户:sz81710966
上传日期:2013-03-01
资源大小:409k
文件大小:3k
源码类别:
多国语言处理
开发平台:
Visual C++
- // NumSpinCtrl.cpp : implementation file
- //
- #include "stdafx.h"
- #include "NumSpinCtrl.h"
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #undef THIS_FILE
- static char THIS_FILE[] = __FILE__;
- #endif
- /////////////////////////////////////////////////////////////////////////////
- // CNumSpinCtrl
- IMPLEMENT_DYNAMIC(CNumSpinCtrl, CSpinButtonCtrl)
- CNumSpinCtrl::CNumSpinCtrl()
- {
- //ModifyStyle(0,UDS_ALIGNRIGHT);
- }
- CNumSpinCtrl::~CNumSpinCtrl()
- {
- }
- BEGIN_MESSAGE_MAP(CNumSpinCtrl, CSpinButtonCtrl)
- //{{AFX_MSG_MAP(CNumSpinCtrl)
- ON_NOTIFY_REFLECT(UDN_DELTAPOS, OnDeltapos)
- //}}AFX_MSG_MAP
- END_MESSAGE_MAP()
- /////////////////////////////////////////////////////////////////////////////
- // CNumSpinCtrl message handlers
- void CNumSpinCtrl::SetPos(NUMSTYLE val)
- {
- CSpinButtonCtrl::SetPos(MAXPOS);
- CNumEdit *m_pEdit = GetBuddy();
- if (m_pEdit)
- if (m_pEdit->IsKindOf(RUNTIME_CLASS(CNumEdit)))
- m_pEdit->SetValue(val);
- }
- NUMSTYLE CNumSpinCtrl::GetPos()
- {
- CNumEdit *m_pEdit = GetBuddy();
- if (m_pEdit)
- {
- BOOL bRet = m_pEdit ->IsKindOf(RUNTIME_CLASS(CNumEdit));
- if (bRet)
- return m_pEdit ->GetValue();
- }
- return (NUMSTYLE)0.0;
- }
- void CNumSpinCtrl::SetRange(NUMSTYLE nLower, NUMSTYLE nUpper)
- {
- CSpinButtonCtrl::SetRange(MINRANGE, MAXRANGE);
- CNumEdit *m_pEdit = GetBuddy();
- if (m_pEdit)
- if (m_pEdit ->IsKindOf(RUNTIME_CLASS(CNumEdit)))
- m_pEdit ->SetRange(nLower, nUpper);
- }
- void CNumSpinCtrl::GetRange(NUMSTYLE lower, NUMSTYLE upper) const
- {
- CNumEdit *m_pEdit = GetBuddy();
- if (m_pEdit)
- if (m_pEdit ->IsKindOf(RUNTIME_CLASS(CNumEdit)))
- m_pEdit ->GetRange(lower, upper);
- }
- CNumEdit* CNumSpinCtrl::GetBuddy() const
- {
- return (CNumEdit *)(CSpinButtonCtrl::GetBuddy());
- }
- void CNumSpinCtrl::SetBuddy(CNumEdit * pEdit)
- {
- CSpinButtonCtrl::SetBuddy(pEdit);
- if (pEdit)
- if (pEdit ->IsKindOf(RUNTIME_CLASS(CNumEdit)))
- pEdit ->SetValue((NUMSTYLE)0.0);
- }
- /*
- 描述:
- 此函数响应消息UDN_DELTAPOS,其携带的是NM_UPDOWN指针,其有三个成员
- 结构体句柄、当前值、步长;
- */
- void CNumSpinCtrl::OnDeltapos(NMHDR* pNMHDR, LRESULT* pResult)
- {
- NM_UPDOWN* pNMUpDown = (NM_UPDOWN*)pNMHDR;
- // TODO: Add your control notification handler code here
- if ((pNMUpDown->iPos <= pNMUpDown->iDelta) ||
- (pNMUpDown->iPos >= MAXRANGE - pNMUpDown->iDelta))
- pNMUpDown->iPos = MAXPOS;
- CNumEdit *m_pEdit = GetBuddy();
- if (m_pEdit)
- if (m_pEdit ->IsKindOf(RUNTIME_CLASS(CNumEdit)))
- m_pEdit->ChangeAmount(pNMUpDown->iDelta);
- *pResult = 0;
- }
- NUMSTYLE CNumSpinCtrl::GetDelta()
- {
- CNumEdit *m_pEdit = GetBuddy();
- if (m_pEdit)
- if (m_pEdit ->IsKindOf(RUNTIME_CLASS(CNumEdit)))
- return m_pEdit ->GetDelta();
- return (NUMSTYLE)0.0;
- }
- void CNumSpinCtrl::SetDelta(NUMSTYLE delta)
- {
- CNumEdit *m_pEdit = GetBuddy();
- if (m_pEdit)
- if (m_pEdit ->IsKindOf(RUNTIME_CLASS(CNumEdit)))
- m_pEdit ->SetDelta(delta);
- }