• C++ Code_Slider


    主题

    1. 滑块控件属性设置

    2. 使用滑块控件设置颜色

    3. 显示Slider的数值

    4.

    5.

        

    属性

    滑块控件属性设置

    //代码设置属性

     

        

    代码::

     

    /////////////////////////////////////////////////////////////////////////////
    // CProject02Dlg dialog
    //class CProject02Dlg : public CDialog
    //{
    // Construction
    //public:
    //    CProject02Dlg(CWnd* pParent = NULL);    // standard constructor
        COLORREF m_clColor;

    // Dialog Data

    在CProject02Dlg中右键添加个Add MemberFunction

     

    void CProject02Dlg::updatePicCtrl()
    {
        CDC * pDC = m_ctrl_pic1.GetDC();
        CRect rc;
        m_ctrl_pic1.GetClientRect(rc);
        pDC -> FillRect(rc, & CBrush(m_clColor));
        m_ctrl_pic1.ReleaseDC(pDC);
    }
     
    BOOL CProject02Dlg::OnInitDialog() 部分添加slider的初始化部分代码
        // TODO: Add extra initialization here
        m_ctrl_Slider1_Red.SetRange(0,255,FALSE);
        m_ctrl_Slider2_Green.SetRange(0,255,FALSE);
        m_ctrl_Slider3_Blue.SetRange(0,255,FALSE);
     
     
    void CProject02Dlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
    {
     
        // TODO: Add your message handler code here and/or call default
        if (nSBCode == SB_THUMBTRACK)
        {
            if (pScrollBar -> m_hWnd == m_ctrl_Slider1_Red.m_hWnd)
            {
                m_nEdt1_Red = nPos;
                UpdateData(FALSE);
            }
            
            if (pScrollBar -> m_hWnd == m_ctrl_Slider2_Green.m_hWnd)
            {
                m_nEdt2_Green = nPos;
                UpdateData(FALSE);
            }
            
            if (pScrollBar -> m_hWnd == m_ctrl_Slider3_Blue.m_hWnd)
            {
                m_nEdt3_Blue = nPos;
                UpdateData(FALSE);
            }
            
            m_clColor = RGB(m_nEdt1_Red,m_nEdt2_Green,m_nEdt3_Blue);
            updatePicCtrl();
        }
        CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
    }
     
    //为每个Edit添加个EN_Change消息
    void CProject02Dlg::OnChangeEdit1()
    {
        // TODO: If this is a RICHEDIT control, the control will not
        // send this notification unless you override the CDialog::OnInitDialog()
        // function and call CRichEditCtrl().SetEventMask()
        // with the ENM_CHANGE flag ORed into the mask.
        
        // TODO: Add your control notification handler code here
        UpdateData(TRUE);
        m_ctrl_Slider1_Red.SetPos(m_nEdt1_Red);
        updatePicCtrl();    
    }
    void CProject02Dlg::OnChangeEdit2()
    {
        // TODO: If this is a RICHEDIT control, the control will not
        // send this notification unless you override the CDialog::OnInitDialog()
        // function and call CRichEditCtrl().SetEventMask()
        // with the ENM_CHANGE flag ORed into the mask.
        
        // TODO: Add your control notification handler code here
        UpdateData(TRUE);
        m_ctrl_Slider2_Green.SetPos(m_nEdt2_Green);
        updatePicCtrl();    
    }
     
    void CProject02Dlg::OnChangeEdit3()
    {
        // TODO: If this is a RICHEDIT control, the control will not
        // send this notification unless you override the CDialog::OnInitDialog()
        // function and call CRichEditCtrl().SetEventMask()
        // with the ENM_CHANGE flag ORed into the mask.
        
        // TODO: Add your control notification handler code here
        UpdateData(TRUE);
        m_ctrl_Slider3_Blue.SetPos(m_nEdt3_Blue);
        updatePicCtrl();
        
    }
        

    效果图:

     
     
     




    附件列表

    • 相关阅读:
      (转)CTP: 平昨仓与平今仓,log轻轻告诉你.......
      linux上的语音识别程序
      6个可以隐藏运行bat,浏览器等程序的方法
      Android——用PagerAdapter实现View滑动效果
      Android——关于PagerAdapter的使用方法的总结(转)
      Android——浅谈HTTP中Get与Post的区别(转)
      Android——远程存储器存储:JDK方式和Volley框架的get和post
      android——字符串string(转)
      Android——事务
      Android——监听事件总结
    • 原文地址:https://www.cnblogs.com/xe2011/p/3885726.html
    Copyright © 2020-2023  润新知