在VC++中實現Microsoft Agent

來源:互聯網
上載者:User

用過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環境下編譯通過。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.