天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 76|回复: 0

MFC_Spin Control

[复制链接]

该用户从未签到

主题

0

回帖

2912

积分

管理员

积分
2912
发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
如图所示控件由edit结合spin组成.

在对话框的.h里添加

    afx_msg void OnEnChangeEdit();
    afx_msg void OnEnKillfocusEdit();
    afx_msg void OnDeltaposSpin(NMHDR *pNMHDR, LRESULT *pResult);
   
    bool updateEdit();

private:   
    CEdit m_edit;
    double m_dEdit;
    double m_dDelta;
    CSpinButtonCtrl m_Spin;  
在对话框的cpp里添加

XXXDlg::XXXDlg(CWnd* pParent /*=NULL*/)
        : XXXChildDlg(XXXDlg::IDD, pParent)
    ,m_dEdit(2)
    ,m_dDelta(1)


void XXXDlg::DoDataExchange(CDataExchange* pDX)
{
    __super::DoDataExchange(pDX);
    DDX_Control(pDX, IDC_EDIT, m_edit);
    DDX_Text(pDX, IDC_EDIT, m_dEdit);
    DDX_Control(pDX, IDC_SPIN, m_Spin);
}

BEGIN_MESSAGE_MAP(XXXDlg, XXXChildDlg)
    ON_EN_CHANGE(IDC_EDIT, &XXXDlg::OnEnChangeEdit)
    ON_EN_KILLFOCUS(IDC_EDIT, &XXXDlg::OnEnKillfocusEdit)
    ON_NOTIFY(UDN_DELTAPOS, IDC_SPIN, &XXXDlg::OnDeltaposSpin)
END_MESSAGE_MAP()

BOOL XXXDlg::OnInitDialog()
{
    CDialogEx::OnInitDialog();

    m_dEdit = 0;
    m_edit.SetWindowText("");

    return TRUE;
}

void XXXDlg::OnEnChangeEdit()
{
    updateEdit();
}

void XXXDlg::OnEnKillfocusEdit()
{
    if(!updateEdit())
    {
        m_edit.SetSel(0, -1);
        m_edit.SetFocus();
    }
}

void XXXDlg::OnDeltaposSpin(NMHDR *pNMHDR, LRESULT *pResult)
{
    LPNMUPDOWN pNMUpDown = reinterpret_cast<LPNMUPDOWN>(pNMHDR);

    double dTemp = m_dEdit;
    if(pNMUpDown->iDelta < 0)
    {
        m_dEdit += m_dDelta;
    }
    else
    {
        m_dEdit  -= m_dDelta;
    }
    UpdateData(FALSE);

    if (!updateEdit())
    {
        m_dEdit = dTemp;
        UpdateData(FALSE);
    }

    *pResult = 0;
}

bool XXXDlg::updateEdit()
{
    if (m_dEdit <=  1.e-10)
    {
        m_edit.SetFocus();
        return false;
    }

    if(!UpdateData(TRUE))
    {
        return false;
    }

    return true;
}

 

 

 

 

MFC_Spin Control
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池|中国膜结构网_中国空间膜结构协会

GMT+8, 2024-11-1 11:40 , Processed in 0.124463 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表