Программирование >>  Процедурные приложения 

1 ... 137 138 139 [ 140 ] 141 142 143 ... 150



Рис. 22.5. Список классов и глобальных атрибутов элемента управления TDCtrl

Для того чтобы скомпилировать проект, выберите в меню Build команду Build илиRebuild All. После завершения этого процесса в папке DEBUG появится файл TDCTRL.OCX.

Элементы управления ActiveX представляют собой небольшие библиотеки динамической компоновки, которые можно тестировать в соответствующих контейнерах. Компания Microsoft предоставляет для этих целей специальную утилиту ActiveXControlTestContainer; запускаемую из меню Tools(рис. 22.6).




Рис. 22.6. Местонахождение инструментов ActiveX

В окне контейнера выберите в меню Edit команду InsertNewControl, и перед вами откроется диалоговое окно InsertControl, в котором будет представлен список всех зарегистрированных элементов управления . Теперь щелкните на кнопке ОК, чтобы внедрить выбранный элемент управления в окно контейнера .

Новый элемент управления представляет собой эллипс, окруженный рамкой. Никакой функциональной нагрузки он пока не несет. Чтобы данный элемент управления заработал в соответствии с нашими требованиями, в сгенерированный мастером код следует добавить некоторые программные блоки.



Но прежде чем приступить к редактированию кода, посмотрим, что именно сгенерировал мастер. Особое внимание нужно уделить тем частям программы, которые в дальнейшем будут подвергнуты модификации.

Код, сгенерированный мастером

Для большинства элементов управления ActiveX мастер ControlWizard создает четыре программных файла. В нашем проекте это файлы STDAFX.CPP, TDCTRL.CPP, TDCTRLCTL.CPP и TDCTRLPPG.CPP. Каждому из них соответствует отдельный файл заголовков.

Файл STDAFX.CPPпредназначен для включения в программу всех файлов заголовков, необходимых для работы элемента управления ActiveX. Файл TDCTRL.CPPотвечает за реализацию класса CTDCtrlApp и регистрацию DLL-модуля.

В следующих параграфах мы проанализируем назначение файлов TDCTRLCTL.CPP и

TDCTRLPPG.CPP.

Файл TDCTRLCTL.CPP

Файл TDCTRLCTL.CPPсодержит реализацию собственно класса элемента управления ActiveX. В нашем примере это класс CTDCtrlctrl. Именно данный файл больше других требует изменений со стороны программиста.

TDCtrlCtl.cpp: Реализация класса CTDCtrlCtrl элемента управления. #include stdafx.h

#include TDCtrl.h #include TDCtrlCtl.h #include TDCtrlPpg.h tifdef DEBUG

#define new DEBUG NEW

tundef THIS FILE

static char THIS FILE[] = FILE ;

#endif

IMPLEMENT DYNCREATE(CTDCtrlctrl, COleControl) /

Схема сообщений

BEGIN MESSAGE MAP(CTDCtrlctrl, COleControl) {{AFX MSG MAP(CTDCtrlctrl)

ПРИМЕЧАНИЕ: мастер классов будет добавлять и удалять здесь

макросы схемы-сообщений.

НЕ РЕДАКТИРУЙТЕ то, что здесь находится.

)}AFX MSG MAP

ON OLEVERB (AFX IDS VERB EDIT, OnEdit)

ON OLEVERB(AFX IDS VERB PROPERTIES, OnProperties) END MESSAGE MAP ()

/

Схема диспетчеризации

BEGIN DISPATCH MAP(CTDCtrlctrl, COleControl) { {AFX DISPATCH MAP (CTDCtrlctrl)

ПРИМЕЧАНИЕ: мастер классов будет добавлять и удалять здесь

макросы схемы диспетчеризации.

НЕРЕДАКТИРУЙТЕ то, что здесь находится.

}}AFX DISPATOt MAP

DISP FUNCTION ID (CTDCtrlctrl, AboutBox , DISPID ABOUTBOX,

AboutBox, VT EMPTY, VTSJTONE) END DISPATCH MAP ( )

/

Схемасобытий

BEGIN EVENT MAP (CTDCtrlctrl, COleControl) { (AFX EVENT MAP (CTDCtrlctrl)



1 ... 137 138 139 [ 140 ] 141 142 143 ... 150

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика