win2000下的CD播放器按钮

    技术2022-05-11  74

    最近失业在家,闲来无事,所以将我平时工作、学习时所积攒下来的类,做了个demo,发给大家。先给大家一个旋转按钮控件,跟CD Player一样哦~~

    示例代码:http://61.133.87.165/bbs/attachment.php?s=&postid=216360

    另外,我这里还有很多类,有我自己写的,翻译的等等。有需要的跟我联系 ytweiwei@cnuninet.com。希望大家能一同学习、进步!

    类的文档如下:(为了方便大家,可以在demo里找到这个文档)

    --------------------------------------------------------------------------------------------------------

    CRoundSliderCtrl

     

              CSliderCtrl

                  |

                   ----CRoundSliderCtrl

     

    该类为CSliderCtrl的派生类。扩充实现了圆形滑块控件的功能,并可以自定义控件内的颜色、图片、设置控件内的文字等。

     

    使用该类时的注意事项:

         1、需要将MemDc.h文件加入工程中,考虑到该类的普遍性,如果原工程中已有,请不要重复包含。

         2、添加鼠标指针资源 IDC_CURSOR

         3、该类中用到的某些函数是从Internet上得来,版权仍归其本人所有。

         4、该类在VC6下创建的,由于某些特殊性,在VC.NET下编译将出现不正常现象。

     

    使用方法:

         1、在对话框中添加滑块控件,并且改变至你想要的大小。

         2、在ClassWizard中关联与控件的控件变量(比如 m_rscMySlider)

         3、在OnInitDialog()中你可以根据需要来调用SetRange(), SetPos()等函数来设置初始化控件。

     

    当滑动控件指针时,它会发送 WM_SCROLL 消息,所以,你可以在在你的对话框中得到滑块的当前位置。比如:

     

    void CRoundSliderCtrlDemoDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)

    {

         if(pScrollBar->GetDlgCtrlID() == IDC_SLIDER)

         {

              TRACE("WM_HSCROLL by CRoundSliderCtrl received. nPos: %ld? nSBCode: %ld/n", nPos, nSBCode);

         }

        

         CDialog::OnHScroll(nSBCode, nPos, pScrollBar);

    }

     

    你还可以在派生类里重载OnFormatText函数来自定义控件内显示的文字,比如:

     

    CString CFrequenceCtrl::OnFormatText(const CString& strText)

    {

         CString strFormattedText;

         strFormattedText.Format("%.1fMHz", 87.5+GetPos()/360.0*20.6);

         return strFormattedText;

    }

     

     

    操作

    -------------------------------------------------------------------------------------------

    SetRange      设置控件的可调整范围  

    GetRange      得到控件的可调整范围

    SetKnobRadius      设置指针的大小

    GetKnobRadius      得到指针的大小

    SetDragByKnobOnly    指示是否应该仅让指针根着鼠标走

    GetDragByKnobOnly    确定是否应该仅让指针根着鼠标走

    SetZero            指定开始时指针默认的角度

    GetZero            得到开始时指针默认的角度

    SetBitmap     为控件设置位图背景

    SetKnobColor       设置指针在鼠标左键未按下时的颜色

    SetActiveKnobColor   设置指针在鼠标左键按下激活或者拖动时的颜色

    SetDialColor       设置滑块控件的背景颜色

     

    字符的操作

    ----------------------------------------------------------------------------------------------------------

    SetText            为圆形控件内设置字符

    GetText            得到当前控件内的字符串

    SetTextColor       指定显示在控件中的字符串颜色

    SetFontBold        指示控件中的字体是否为黑体

    SetFontUnderline     指示控件中的字体是否具有下划线

    SetFontItalic      指示控件中的字体是否为斜体

    SetFontSize        设置控件中字体的大小

    SetFontName        设置控件中字体的名称

    SetShowText        指示控件内部是否要显示文字

     

     

    成员函数

    ------------------------------------------------------------------------------------------------------------

    CRoundSliderCtrl::SetRange

    void SetRange( int nMin, int nMax, BOOL bRedraw )

     

      数:

         nMin    滑块范围的最小值

         nMax    滑块范围的最大值

            bRedraw 指示是否立即重绘控件

     

      明:

    调用该函数设置整个控件的可调整范围,更详细的资料请参见MSDN 中关于 CSliderCtrl::SetRange 的说明

    --------------------------------------------------------------------------------------------------------------

    CRoundSliderCtrl::GetRange

    void GetRange( int &nMin, int &nMax )

     

      数:

             nMin 获得的控件范围最小值

             nMax 获得的控件范围最大值

     

      明:

     调用函数来得到当前滑块控件的可调节 最大/最小 值

    ---------------------------------------------------------------------------------------------------------------

    CRoundSliderCtrl::SetText

    void SetText(const CString& strNewText)

     

      数:

         strNewText    CString 对象类型的字符串

     

      明:

     调用该函数来为圆形控件内设置字符。在允许控件显示字符时,如果不调用此函数,那么系统将默认在控件内部显示滑块当前的位置值

    ---------------------------------------------------------------------------------------------------------------

    CRoundSliderCtrl::GetText

    CString GetText() const

     

    返回值:

    返回当前控件内显示字体的内容

     

      明:

    调用此函数来得到当前控件内的字符串,字符是先前调用SetText设置过的,否则返回的结果无任何意义。

    --------------------------------------------------------------------------------------------------------------

    CRoundSliderCtrl::SetKnobRadius

    void SetKnobRadius(const int nNewKnobRadius)

     

      数:

         nNewKnobRadius  涉及指针大小的整型变量,该值最小不能小于5

     

      明:

    设置指针的大小

    --------------------------------------------------------------------------------------------------------------

    CRoundSliderCtrl::GetKnobRadius

    int GetKnobRadius() const

     

    返回值:

     返回当前的指针大小

     

      明:

     得到指针的大小

    --------------------------------------------------------------------------------------------------------------

    CRoundSliderCtrl::SetDragByKnobOnly

    void SetDragByKnobOnly(const bool bDragByKnobOnly)

     

      数:

         bDragByKnobOnly  如果此值为真,那么只有当鼠标指针在此控件指针之上拖动时,控件指针才进行拖动

     

      明:

    指示是否应该仅让指针根着鼠标走

    -------------------------------------------------------------------------------------------------------------

    CRoundSliderCtrl::GetDragByKnobOnly

    bool GetDragByKnobOnly() const

     

    返回值:

    如果为真,那么只有当鼠标指针在此控件指针之上拖动时,控件指针才进行拖动

     

      明:

    确定是否应该仅让指针根着鼠标走

    ----------------------------------------------------------------------------------------------------------------

    CRoundSliderCtrl::SetZero

    void SetZero(const int nZero)

     

      数:

    nZero   控件初始化的角度值,该值应该是不小于0和大于360

     

      明:

    指定开始时指针默认的角度

    ---------------------------------------------------------------------------------------------------------------

    CRoundSliderCtrl::GetZero

    int GetZero() const

     

    返回值:

    0 - 360 的控件初始角度值

     

      明:

    得到开始时指针默认的角度

    ---------------------------------------------------------------------------------------------------------------

    CRoundSliderCtrl::SetDialColor

    void SetDialColor(const COLORREF crBkgnd)

     

      数:

         crBkgnd   滑块控件背景颜色值,可以是RGB 三色中的任何一种

     

      明:

    调用此函数来设置滑块控件的背景颜色;注意:该函数只能在未调用 SetBitmap 时起作用。

    ----------------------------------------------------------------------------------------------------------------

    CRoundSliderCtrl::SetKnobColor

    void SetKnobColor(const COLORREF crBkgnd)     

     

      数:

         crBkgnd   指针在鼠标左键未按下时的颜色

     

      明:

    调用此函数可以设置指针在鼠标左键未按下时的颜色,系统默认情况下是将指针颜色置为系统COLOR_3DFACE颜色

    ---------------------------------------------------------------------------------------------------------------

    CRoundSliderCtrl::SetActiveKnobColor

    void SetActiveKnobColor( const COLORREF crBkgnd )

     

      数:

         crBkgnd   指针在鼠标左键按下激活时的颜色

     

      明:

    调用此函数可以设置指针在鼠标左键按下激活或者拖动时的颜色,系统默认情况下是将指针颜色置为系统COLOR_3DFACE颜色

    -------------------------------------------------------------------------------------------------------

    CRoundSliderCtrl::SetTextColor

    void SetTextColor(const COLORREF crText)

     

       数:

             crText     RGB颜色值

     

      明:

    指定显示在控件中的字符串颜色

    -------------------------------------------------------------------------------------------------------

    CRoundSliderCtrl::SetFontBold

    void SetFontBold(const bool bSet)

     

      数:

             bSet 布尔值,指示字体是否为黑体

     

      明:

    指示控件中的字体是否为黑体

    --------------------------------------------------------------------------------------------------------

    CRoundSliderCtrl::SetFontUnderline

    void SetFontUnderline(const bool bSet)

     

      数:

             bSet布尔值,指示字体是否具有下划线

     

      明:

    指示控件中的字体是否具有下划线

    --------------------------------------------------------------------------------------------------------

    CRoundSliderCtrl::SetFontItalic

    void SetFontItalic(const bool bSet)

     

       数:

             bSet布尔值,指示字体是否为斜体

     

       明:

    指示控件中的字体是否为斜体

    ---------------------------------------------------------------------------------------------------------

    CRoundSliderCtrl::SetFontSize

    void SetFontSize(const int nSize)

     

      数:

             nSize     字体的大小的整型变量

     

      明:

    设置控件中字体的大小

    ------------------------------------------------------------------------------------------------------

    CRoundSliderCtrl::SetFontName

    void SetFontName(const CString& strFont)

     

      数:

         strFont   关于字体信息的CSting类型的字符串变量

     

      明:

    设置控件中字体的名称

    ------------------------------------------------------------------------------------------------------

    CRoundSliderCtrl::SetShowText

    void SetShowText( const BOOL bShow /* = TRUE */)

     

      数:

             bShow     指示控件内部是否要显示当前滑动内容的文字

     

       明:

    指示控件内部是否要显示当前滑动内容的文字,默认情况下控件内部无显示内容

    ------------------------------------------------------------------------------------------------------------

    CRoundSliderCtrl::SetBitmap

    void SetBitmap( UINT uNewBitID )

     

       数:

         uNewBitID  位图资源ID

     

      明:

    调用此函数可以为控件设置位图背景,图片大小最好跟控件大小一致。

     

     

     


    最新回复(0)