CSDN博客

img ytweiwei

win2000下的CD播放器按钮

发表于2002/9/19 12:52:00  708人阅读

最近失业在家,闲来无事,所以将我平时工作、学习时所积攒下来的类,做了个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 0

相关文章推荐

img
取 消
img