Запускаем VC и MFC AppWizard. Имя приложения TestVC. На шаге 2 выбираем Single Document. На шаге 3 container и сразу Finish. Итак проект мы сформировали. Теперь нам надо добавить класс элемента. Нам нужен пункт View и ClassVizard. Переходим на вкладку Automation. Нажимаем кнопку Add Class и дальше From a type library. Теперь нам надо найти наш файл TLB. Он лежит в папке с проектом. У меня вот где.
Выбираете его. В ответ появится окно 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 и вот здесь :-) Ведь элемент при компиляции и сборке регистрировался. И информация о нем естественно есть в реестре.
Вызовем метод.
void CTestVCView::OnLButtonDown(UINT nFlags, CPoint point) { IATLClass atlcl; atlcl.CreateDispatch("ATLTest.ATLClass.1"); atlcl.ATLMessage(); CView::OnLButtonDown(nFlags, point); }
Компилируйте, запускайте. По нажатию на мышку должно появиться окно сообщения, которое мы запрограммировали при создании объекта.
Вот так все просто :-)) Создание компонент, которые могут использоваться и в VC и VB и вообще-то везде это классно. Концепция повторного использования кода в жизни !!!. Создание компонент это целое направление компьютерного бизнеса. Уже сейчас программирование похоже на сборку компонент в нужном порядке.