|
Программирование >> Процедурные приложения
Рис. 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)
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |