Шаг 11 - Тестируем элемент на VC

Запускаем VC и MFC AppWizard. Имя приложения TestVC. На шаге 2 выбираем Single Document. На шаге 3 container и сразу Finish. Итак проект мы сформировали. Теперь нам надо добавить класс элемента. Нам нужен пункт View и ClassVizard. Переходим на вкладку Automation. Нажимаем кнопку Add Class и дальше From a type library. Теперь нам надо найти наш файл TLB. Он лежит в папке с проектом. У меня вот где.

11_1.gif (3862 b)

Выбираете его. В ответ появится окно Confirm Class с именем IATLClass жмите OK и кнопкой OK закрывайте ClassVizard.

В ClassView Вы должны увидеть, что добавился новый класс - IATLClass. Теперь в классе вида CTestVCView создадим реакцию на нажатие левой кнопки мыши. Выделяем класс. Нажимаем правой кнопой мыши и выбираем Add Windows Message Handle. Ищем сообщение WM_LBUTTONDOWN два раза шелкаем на него оно появляется в правом окне и опять два раза на нем. Вот где Вы окажетесь.

void CTestVCView::OnLButtonDown(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	
	CView::OnLButtonDown(nFlags, point);
}

Здесь мы и будем организовывать работу с нашим объектом. Это файл TestVCView.cpp. Чтобы работать с классом его описание необходимо подключить. Описание класса находится в atltest.h. Впишите подключение заголовоного файла в TestVCView.cpp.

.....
#include  "atltest.h"
//////////////////////////////////////////////
// CTestVCView
.....

Теперь создадим экземпляр класса.

void CTestVCView::OnLButtonDown(UINT nFlags, CPoint point) 
{
	IATLClass atlcl;
	CView::OnLButtonDown(nFlags, point);
}

Свяжем его с объектом:

void CTestVCView::OnLButtonDown(UINT nFlags, CPoint point) 
{
	IATLClass atlcl;
	atlcl.CreateDispatch("ATLTest.ATLClass.1");
	CView::OnLButtonDown(nFlags, point);
}

Откуда я взял ATLTest.ATLClass.1? Из реестра. Запустил RegEdit и вот здесь :-) Ведь элемент при компиляции и сборке регистрировался. И информация о нем естественно есть в реестре.

11_2.gif (3798 b)

Вызовем метод.

void CTestVCView::OnLButtonDown(UINT nFlags, CPoint point) 
{
	IATLClass atlcl;
	atlcl.CreateDispatch("ATLTest.ATLClass.1"); 
	atlcl.ATLMessage(); 
	CView::OnLButtonDown(nFlags, point);
}

Компилируйте, запускайте. По нажатию на мышку должно появиться окно сообщения, которое мы запрограммировали при создании объекта.

11_3.gif (2500 b)

Вот так все просто :-)) Создание компонент, которые могут использоваться и в VC и VB и вообще-то везде это классно. Концепция повторного использования кода в жизни !!!. Создание компонент это целое направление компьютерного бизнеса. Уже сейчас программирование похоже на сборку компонент в нужном порядке.


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