Windows Media Player 控件研究 我 的 那 个 定 时 提 醒 程 序 中 要 用 到 它 , 初 步 使 用 问 题 已 解 决
基 本 使 用 步 骤 如 下 : 一 、往控件箱中 添加此控件: wmp
dll 二、往窗体上拖控件 三、wmp
URL=XXXX;wmp
play()即可
平常应用 就这三步 就 OK了
但是, 我 想写个 播放器的 话, 就遇到 了一 些问 题
在 dotnet中 使 用 非基 于 dotnet的 控件, 需要 做一 些额外的 事, 不过这些事 vs已 经帮我 们做好了, 当我 们拖了此控件进窗体时 , vs会自动调用 AxImp
exe,用 它 根据原有的 dll或 ocx生成一 个 用 AxHost类包装的 新的 一 组程 序 集(更为精确 的描 述 见msdn),于 是 根 据 WMPLib
dll生 成 两 个文 件 :AxInterop
WMPLib
dll、Interop
WMPLib
这两个 文件中 包含了转化后的类
包装后的 控件继承自 System
Windows
AxHost
这是第一 个 问 题 , 控件怎么使 用 呢
如 果是拖控件, 很简单, 无论如 何都能有效的 使 用
但是, 如 果手工 new创建控件的 实例呢
那 就不一 定 了
我 做过种种实验, 获得如 下 的 结论: 在非可视化类中无法创建有 UI 的控件的实例,或者是在没有把实例加入到一个可视化的容器中时
我 实验了下 面的 代码: AxWMPLib
AxWindowsMediaPlayer wmp = new AxWMPLib
AxWindowsMediaPlayer(); this
Controls
Add(wmp); wmp
URL = "约定
mp3"; wmp
Ctlcon