用過Office97或Office2000的人會知道,Office軟件中有一個可愛的Office助手,能夠根據不同的操作作出一些有趣的提示與動畫,使用戶操作更人性化、有趣化。正象這Office助手“大眼俠”一樣,Microsoft提供了代理軟件開發技術,稱為“Microsoft Agent”,它能支持中文。有強大的交互功能與人性特點,不僅能給出有趣的提示信息,還能給出幽默的動畫效果,使用“Microsoft Agent”能讓您的程序增色不少。
“Microsoft Agent”是一套ActiveX控制,您可以到http://www.microsoft.com/msagent/default.asp下載其相關程序msagent.exe,安裝即可。Agent的動畫文件支持單結構角色文件(*.acs),也支持多結構角色文件(*.acf),本文介紹的是前者。執行效果如下:
本文程序中所演示的James角色,如果您沒有安裝,可以先到http://www.msagentring.org/chars.htm下載安裝。
實現辦法:
一、新建工程myagent:
建立基於對話框的VC++工程MyAgent;
二、在窗口中添加ActiveX組件:Microsoft Agent:
正確安裝了“Microsoft Agent”之後,系統中會新增該ActiveX控件可以使用,目前該ActiveX的最高版本是2.0,即“Microsoft Agent Control 2.0”;
三、開始使用"Microsoft Agent"
1、定義成員變量
利用ClassWizard為“Microsoft Agent”定義成員變量m_sysAgent,即:
CAgentCtlEx m_sysAgent;
2、定義其他變量
首選在窗口的頭文件中增加引用如下頭文件,即:
#include "agentctlcharacters.h"
#include "agentctlcharacterex.h"
#include "agentctlrequest.h"
再定義保護變量:
CAgentCtlCharacters m_Characters;
CAgentCtlCharacterEx m_Ex;
CAgentCtlRequest m_Request;
3、開始使用:
可在初始化窗體進行動畫文件的載入,即在CMyAgentDlg::OnInitDialog()中加入如下代碼:
COleVariant iv("0");
m_Characters=m_sysAgent.GetCharacters();
m_Request=m_Characters.Load("Jame",COleVariant("C:\\WINDOWS\\msagent\\chars\\James.acs"));
m_Ex=m_Characters.Character("Jame");
m_Ex.Show(iv);
為在窗口關閉時對動畫文件進行卸載,在關閉窗口時可加入如下代碼:
m_Characters.Unload("Jame");
4、控制動畫文件:
在程序中可以完全控制該動畫文件來完成各種動作,如顯示、隱藏、文本提示、做動作,分別通過調用Show(),Hide(),Speek()以有Play()來完成。如想上動畫表示歡迎,則可使用如下命令:
m_Ex.Play("Greet");
具體的操作可參考控件的幫助文件,或浏覽http://www.microsoft.com/msagent/default.asp。
“Jame”動畫主要提供如下動作:
Acknowledge(承認)
Alert(警告)
Announce(聲明)
Blink(眨眼)
Confused(困惑)
Congratulate(祝賀)
Decline(拒絕)
Explain(解釋)
LookDown(向下看)
LookUp(向上移動)
MoveDown(向下移動)
MoveLeft(向左移動)
MoveRight(向右移動)
Greet(問候)
Read(讀)
Write(寫)
Search(查找)
RestPose(恢復初始狀態)
Think(思考)
……
動畫文件的下載及更詳細的信息請參考:http://www.msagentring.org/chars.htm
本文只提及了Agent的一小部分功能,讀者可自行實現其他功能,不足之處請指出。
注:示例程序在WindowsXP+Visual C++ 6.0環境下編譯通過。
Email:[email protected]
本文配套源碼