Шаг 383 - Использование Агента

Для общего представления прочитайте "Шаг 161 - Что такое Microsoft Agent", "Шаг 162 - Как создают агентов", "Шаг 138 - Использование Microsoft Agent". Создаем приложение на базе диалогового окна и из галереи компонент добавляем элемент управления.

383_1.gif (10172 b)

Вас просят о создании всяких классов. Создавайте все. После этого агента нужно поместить на диалог, а заодно и создать кнопку, по которой он будет появляться.

383_2.gif (3042 b)

Классы лучше спрятать в отдельную папочку.

383_3.gif (4154 b)

Связываем кнопку с событием, а в описание класса диалога добавляем необходимые заголовочные файлы.

// AgentDlg.h : header file
//
//{{AFX_INCLUDES()
#include "agentctlex.h"
//}}AFX_INCLUDES
#include "AgentCtlCharacters.h"
#include "AgentCtlCharacterEx.h"
#include "AgentCtlRequest.h"

Теперь нам нужно объявить дополнительные классы:

class CAgentDlg : public CDialog
{
// Construction
public:
	CAgentDlg(CWnd* pParent = NULL);	// standard constructor
	CAgentCtlCharacters cAgChr;
	CAgentCtlRequest cr;
	CAgentCtlCharacterEx crEx;
// Dialog Data
//{{AFX_DATA(CAgentDlg)
	enum { IDD = IDD_AGENT_DIALOG };

Самый главный вопрос, как и что будет происходить. Смотрим рисунок:

383_4.gif (2317 b)

Мы из основного класса извлекаем класс изображения. В него зачитываем изображение и получаем новый класс. Из него же получаем класс расширенного изображения, в который передаем идентификатор. Дальше отображаем. Вот так это выглядит в коде.

void CAgentDlg::OnButton1() 
{
	LPWSTR name = L"merlin.ACS";
	VARIANT vars;
	vars.vt = VT_BSTR;
	vars.bstrVal = SysAllocString(name);	
	cAgChr=m_Agent.GetCharacters(); 
	cr=cAgChr.Load("CharID",vars);
	crEx=cAgChr.Character("CharID");
	VARIANT var;
	var.vt = VT_I2;
	var.iVal = 0;
	crEx.Show(var);
}

А вот результат нажатия на кнопку:

383_5.gif (10729 b)


Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.