Стоит Windows 8 Pro, Visual Studio 2010 Express Edition . |
Опубликован: 17.08.2010 | Доступ: свободный | Студентов: 1000 / 59 | Оценка: 4.11 / 3.89 | Длительность: 29:38:00
Тема: Программирование
Специальности: Программист, Архитектор программного обеспечения
Теги:
Самостоятельная работа 18:
Создание собственного элемента управления ActiveX
< Самостоятельная работа 17 || Самостоятельная работа 18: 1234567891011 || Самостоятельная работа 19 >
Включение свойств в элемент управления MyClock
Включение базовых свойств в элемент управления MyClock
Любой элемент управления имеет некоторый неизменный ограниченный набор свойств, которые определяют его основные характеристики. Этот набор называется базовым. Базовые свойства любого элемента управления ActiveX приведены в таблице
Для практики включим два базовых свойства в наш элемент управления: BackColor и ForeColor.
- Откройте панель Class View и раскройте узел MyClockLib
- Через контекстное меню элемента _DMyClock выполните команду Add/Add Property...
- В появившемся диалоговом окне Add Property Wizard включите радиокнопку Stock (Готовое, Базовое)
- В раскрывающемся списке выберите свойство BackColor и нажмите кнопку Finish
- Повторите те же действия для добавления в элемент управления свойства ForeColor
- Убедитесь, что в панели Class View элемент _DMyClock получил два новых свойства
-
Убедитесь, что файл MyClock.idl получил две новых строки кода
Новые строки кода в файле MyClock.idl // MyClock.idl : type library source for ActiveX Control project. // This file will be processed by the MIDL compiler tool to // produce the type library (MyClock.tlb) that will become a resource in // MyClock.ocx. #include #include [ uuid(30BE1A13-3CBE-4525-A8B6-D126D4CFD220), version(1.0), helpfile("MyClock.hlp"), helpstring("MyClock ActiveX Control module"), control ] library MyClockLib { importlib(STDOLE_TLB); // Primary dispatch interface for CMyClockCtrl [ uuid(15870940-495C-4FFD-8C1A-32B6C2C87C25), helpstring("Dispatch interface for MyClock Control")] dispinterface _DMyClock { properties: [id(DISPID_BACKCOLOR), helpstring("property BackColor")] OLE_COLOR BackColor; [id(DISPID_FORECOLOR), helpstring("property ForeColor")] OLE_COLOR ForeColor; methods: [id(DISPID_ABOUTBOX)] void AboutBox(); }; // Event dispatch interface for CMyClockCtrl [ uuid(1E47AE17-F799-44FC-9C13-9E3DD23D5540), helpstring("Event interface for MyClock Control") ] dispinterface _DMyClockEvents { properties: // Event interface has no properties methods: }; // Class information for CMyClockCtrl [ uuid(21FD49D6-3D30-40EA-AF5A-043ABDAD8074), helpstring("MyClock Control"), control ] coclass MyClock { [default] dispinterface _DMyClock; [default, source] dispinterface _DMyClockEvents; }; };
Чтобы проверить, что элемент управления имеет сейчас свойства BackColor и ForeColor, выполните следующее
- Постройте проект и запустите утилиту ActiveX Control Test Container
- Откройте сохраненную нами ранее сессию под именем TestMyClock с размещенным для тестирования элементом управления MyClock
- Выберите команду Container/Ambient Properties тестовой утилиты или нажмите кнопку с изображением лупы на панели инструментов этой утилиты рис25
Появится диалоговое окно изменения свойств, в котором можно проверить добавленные нами свойства, а также изменить значения этих и других свойств. Однако установка новых значений свойства не отражается на элементе управления, потому, что мы еще не написали код, который делает свойство функционирующим.
< Самостоятельная работа 17 || Самостоятельная работа 18: 1234567891011 || Самостоятельная работа 19 >