CDINFO 属性示例:播放 CD 音频曲目并显示相关信息
更新:2007 年 11 月
CDINFO 属性示例使用媒体控制接口 (MCI) API 检索 CD-ROM 驱动器中当前 CD 的乐曲曲目的长度。然后 CDINFO 绘制饼图以显示曲目长度。CDINFO 还说明如何使用“工具提示”(ToolTip) 公共控件来实现工具提示。该工具提示显示与饼图中的光标位置相对应的曲目长度。
说明: |
---|
其中某些示例(如此示例)尚未经过修改以反映 Visual C++ 向导、库和编译器中所做的更改,但仍演示了如何完成所需的任务。 |
安全说明: |
---|
提供该示例代码是为了阐释一个概念,并不代表着最安全的编码实践,因此不应在应用程序或网站中使用该示例代码。对于超出本示例代码的预期用途以外的使用所造成的偶然或继发性损失,Microsoft 不承担任何责任。 |
获取示例和安装示例的说明:
在 Visual Studio 的“帮助”菜单上,单击“示例”。
有关更多信息,请参见定位示例文件。
示例的最新版本和完整列表可以从 Visual Studio 2008 Samples page(Visual Studio 2008 示例页面)联机获取。
还可以在计算机的硬盘上查找示例。默认情况下,示例和自述文件将复制到 \Program Files\Visual Studio 9.0\Samples\ 下的文件夹中。对于 Visual Studio 速成版,所有示例都位于联机位置。
生成并运行示例
生成并运行此示例
打开解决方案文件 CDInfo.sln。
从“生成”菜单中单击“生成”。
示例生成后,在 Web 浏览器中打开 CDInfo.htm,并按照其说明进行操作。
属性和方法
该控件实现下面的方法:
Read 从驱动器内的当前 CD 中读取曲目长度信息,并以饼图的形式显示此信息。
Redraw 重绘当前 CD 的饼图。
Play 从 CD 上的指定曲目开始播放。该控件还旋转饼图,使正在播放的曲目位于最上面。
可用的属性如下:
Tracks CD 上曲目的数量
Length 指定曲目的长度(以秒为单位)
TotalLength CD 的总长度(以秒为单位)
属性
此示例使用下面的属性:
coclass、default、dispinterface、dual、emitidl、event_source、helpstring、id、implements_category、in、module、object、out、pointer_default、progid、propget、propput、registration_script、retval、threading、uuid、version、vi_progid
关键字
此示例使用以下关键字:
BEGIN_COM_MAP、BEGIN_CONNECTION_POINT_MAP、BEGIN_MSG_MAP、BEGIN_OBJECT_MAP、BEGIN_PROPERTY_MAP、CComCoClass、CComControl、CComObjectRoot、COM_INTERFACE_ENTRY、COM_INTERFACE_ENTRY_IMPL、CONNECTION_POINT_ENTRY、CProxyCDEvents、CreateBrushIndirect、CreateRectRgn、DECLARE_REGISTRY_RESOURCEID、DeleteDC、DeleteObject、DrawCD、Ellipse、END_COM_MAP、END_CONNECTION_POINT_MAP、END_MSG_MAP、END_OBJECT_MAP、END_PROPERTY_MAP、IConnectionPointContainerImpl、IConnectionPointImpl、IDataObjectImpl、IDispatchImpl、IOleControlImpl、IOleInPlaceActiveObjectImpl、IOleInPlaceObjectWindowlessImpl、IOleLinkImpl、IOleObjectImpl、IPerPropertyBrowsingImpl、IPersistStorageImpl、IPersistStreamInitImpl、IPropertyNotifySinkCP、IProvideClassInfo2Impl、IQuickActivateImpl、IRunnableObjectImpl、IViewObjectExImpl、LineTo、mciSendCommand、MESSAGE_HANDLER、MoveToEx、OBJECT_ENTRY、ReduceRect、RelayEvent、SelectClipRgn、SelectObject、VariantInit、ZeroMemory