开发工具:
文件大小: 872kb
下载次数: 0
上传时间: 2013-08-14
详细说明: 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.dll。这两个文件中包含了转化后的类。 包装后的控件继承自System.Windows.Forms.AxHost。 这是第一个问题,控件怎么使用呢?如果是拖控件,很简单,无论如何都能有效的使用。但是,如果手工new创建控件的实例呢?那就不一定了。 我做过种种实验,获得如下的结论: 在非可视化类中无法创建有UI的控件的实例,或者是在没有把实例加入到一个可视化的容器中时。 我实 验了下面的代码: AxWMPLib.AxWindowsMediaPlayer wmp = new AxWMPLib.AxWindowsMediaPlayer(); this.Controls.Add(wmp); wmp.URL = "约定.mp3"; wmp.Ctlcontrols.play(); 这几行代码不一定能运行。发现,如果这几行代码写在窗体的构造函数中,哪怕show出来都不能运行,只有写在Load或Load之后的事件中,并且把窗 体show出来才有运行,否则会抛出一个错误:引发类型为 “System.Windows.Forms.AxHost+InvalidActiveXStateException”的异常。网上有些人也遇到这个 问题,其实都没有谈到点子上。甚为遗憾。 是不是不show就一定不能运行呢?我拖了个播放器控件放窗体上,在InitializeComponent后面写了行play的代码,能运行。可见,这中间有蹊跷啊。我比较了上面的代码跟拖上去生成的代码,有两点不同: ...展开收缩
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.