Шаг 1 - Первый элемент ActiveX

Итак, запускайте VC и создавайте новый проект. Тип проекта MFC ActiveX ControlWizard. Дайте имя проекта DMyActive1 и жмите OK. В Step1 ничего не меняйте. А в шаге 2 установите галочку напротив Available in "Insert Object" dialog. И жмите Finish. Вам покажут окно с информацией, на что Вы должны ответить OK.

У Вас сформировалось несколько классов.

CDMyActive1App
CDMyActive1Ctrl
CDMyActive1PropPage

Мудрить мы сейчас особо не будем. Нас интересует класс CDMyActive1Ctrl. Выведите список методов в окне ClassView. Там Вы увидите метод OnDraw(). Именно он и отвечает за прорисовку элемента. Двойным щелчком перейдите на его реализацию. Код должен быть таким:

///////////////////////////////////////////////////
// CDMyActive1Ctrl::OnDraw - Drawing function

void CDMyActive1Ctrl::OnDraw(
			CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)
{
	// TODO: Replace the following code with your own drawing code.
	pdc->FillRect(rcBounds, CBrush::FromHandle((HBRUSH)GetStockObject(WHITE_BRUSH)));
	pdc->Ellipse(rcBounds);
}

Сначала закрашивается белый прямоугольник, а потом выводится эллипс. Давайте будем выводить не эллипс, а текст. Поменяте код на этот:

void CDMyActive1Ctrl::OnDraw(
			CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)
{
	// TODO: Replace the following code with your own drawing code.
	pdc->FillRect(rcBounds, CBrush::FromHandle((HBRUSH)GetStockObject(WHITE_BRUSH)));
	pdc->TextOut(1,1,"My ActiveX");
}

И всё. Идите в меню Build и выбирайте пункт меню Build CDMyActive1.ocx. Будет проведено много действий, в том числе и регистрация элемента. Оставим пока все эти сложности. Главное элемент готов.

Запускайте Word или Excel. Выбирайте "вставка -> объект". В списке объектов должен появиться Ваш элемент.

1_1.gif (4654 b)

Выберите его и нажмите OK, он появится. И как раз с надписью My ActiveX. Правда с ним практически ничего нельзя делать. Но это пока нельзя. Вот как он выглядит в Word:

1_2.gif (5731 b)


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