日期:2012-10-25  浏览次数:20366 次

走近VB.Net(九) AxAgent动画窗体的实现

前几天看到一些网友讨论msagent的贴子,其实在VB.Net中实现也很容易却总是没有人肯动手一试。现在我就介绍一下这个很简单的方法,希望激励更多的同道加入我们的队伍,以能相互间促进(这次最好比“洋人”早一步)。
首先添加控件(不知道谁说VB.Net不使用控件,真是越传越玄)




第二步将控件在窗体上画出来(这也是运行时不可见的,不过他会出现在窗体上,而不是象timer控件出现在下面。
源代码如下:


Imports System.ComponentModel

Imports System.Drawing

Imports System.WinForms





Public Class Form1

Inherits System.WinForms.Form



'指定要使用的动画数据,这里的merlin.acs是一个圣诞老人的造型

Dim Genie As AgentObjects.IAgentCtlCharacterEx

Const DATAPATH As String = "MERLIN.ACS"

'与VB6不同的是你不需要下载每一个都有2M多的动画数据,在控件中已内置了所有的动画文件



Public Sub New()

MyBase.New() '调用父类的new过程

Form1 = Me



'This call is required by the Win Form Designer.

InitializeComponent()

'设置窗体没有标题栏

Me.BorderStyle = FormBorderStyle.None

'设置窗体的色彩

Me.BackColor = Color.Beige

'TODO: Add any initialization after the InitializeComponent() call

Me.Height = 100 : button2.Top = 20 : button1.Top = 20 : button2.Text = "退出程序" : button1.Text = "少儿不宜"

'装载动画

axAgent1.Characters.Load("MERLIN", DATAPATH)

Genie = axAgent1.Characters("MERLIN")

Genie.LanguageID = &H409S

End Sub



'Form overrides dispose to clean up the component list.

Public Overrides Sub Dispose()

MyBase.Dispose() '调用父类的dispose过程

genie = Nothing '释放资源

components.Dispose()

End Sub









#Region " Windows Form Designer generated code "



'Required by the Windows Form Designer

Private components As System.ComponentModel.Container

Private WithEvents Button2 As System.WinForms.Button

Private WithEvents Button1 As System.WinForms.Button

Private WithEvents AxAgent1 As AxAgentObjects.AxAgent



Dim WithEvents Form1 As System.WinForms.Form



'NOTE: The following procedure is required by the Windows Form Designer

'It can be modified using the Windows Form Designer.

'Do not modify it using the code editor.

Private Sub InitializeComponent()

Dim resources As System.Resources.ResourceManager = New System.Resources.ResourceManager(GetType(Form1))



Me.components = New System.ComponentModel.Container()

Me.Button1 = New System.WinForms.Button()

Me.Button2 = New System.WinForms.Button()

Me.AxAgent1 = New AxAgentObjects.AxAgent()



AxAgent1.BeginInit()



'@design Me.TrayHeight = 0

'@design Me.TrayLargeIcon = False

'@design Me.TrayAutoArrange = True

Button1.Location = New System.Drawing.Point(32, 8)

Button1.Size = New System.Drawing.Size(80, 32)

Button1.TabIndex = 1

Button1.Text = "Button1"



Button2.Location = New System.Drawing.Point(120, 8)

Button2.Size = New System.Drawing.Size(80, 32)

Button2.TabIndex = 2

Button2.Text = "Button2"



AxAgent1.Size = New System.Drawing.Size(56, 40)

AxAgent1.OcxState = CType(resources.GetObject("AxAgent1.OcxState"), System.WinFor