在WinForms中使用ActiveX
WinFoms中如果想添加control的话只支持winform control。但是,我们有很多老控件,所以,WinForm提供了一种新方法,可以支持我们将ActiveX用在WinForm中,而且就和用winform一样。
这里我们将在一个Form中添加一个Media Player。
1. 注册ActiveX控件。
这一步并不是必须的。但是很多ActiveX控件并没有注册,所以我们需要先注册一下。
Media Player的ActiveX控件存在c:\windows\system32\msdxm.ocx。我们需要调用regsvr32命令来注册该控件。
在命令行下敲下面命令:
regsvr32 c:\windows\system32\msdxm.ocx
2. 生成ActiveX的wrapper。在我们的程序里,我们将和这些wrapper打交道。
.NET提供了ActiveX Control Importer(aximp.exe)。你从Visual Studio Command Support里可以调用该程序。
aximp c:\windows\system32\msdxm.ocx
aximp会生成两个DLL文件。一个是AxMediaPlayer.dll,另一个是MediaPlayer.dll。
你可以点击下面链接得到详细信息。
http://msdn.microsoft.com/en-us/library/8ccdh774%28VS.80%29.aspx
3. 创建你的程序。创建一个WinForm程序。新建一个Form类。插入下面代码。
private AxMediaPlayer.AxMediaPlayer m_Player;
private void InitializeComponent()
{
this.m_Player = new AxMediaPlayer.AxMediaPlayer();
//
// m_Player
//
this.m_Player.Dock = System.Windows.Forms.DockStyle.Fill;
this.m_Player.Location = new System.Drawing.Point(0, 24);
this.m_Player.Name = "m_Player";
this.m_Player.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("m_Player.OcxState")));
this.m_Player.Size = new System.Drawing.Size(563, 311);
this.m_Player.TabIndex = 0;
this.Controls.Add(this.m_Player);
}
4. 编译程序。你可以看到一个Media Player出现在Form上。接下来,你就可以调用MediaPlayer提供的方法来播放音频文件或视频文件。