win2000下的CD播放器按钮

王朝vc·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

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

说 明:

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航