Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Уроки по Visual C++ (MFC, платформа .NET)


Информационный Канал Subscribe.Ru

Visual C++.NET. Библиотека ATL. Уроки по программированию с сайта http://progs.biz

Рассылка №53

Visual C++.NET. Библиотека ATL. Урок 8. Что такое GUID?
Visual C++.NET. Библиотека ATL. Урок 9. Рисование на компоненте.

Полные версии уроков (с картинками) можно найти по адресам
Урок 8. Что такое GUID?
Урок 9. Рисование на компоненте.

Visual C++.NET. Библиотека ATL. Урок 8. Что такое GUID?

GUID - это Globally Unique Identifier глобальный уникальный идентификатор). Он нужен для глобальной идентификации чего-либо (например, интерфейсов). GUID представляет из себя 128-битное двоичное число, получаемое случайным образом из MAC-адреса сетевой карты (который, как известно, уникален), текущего врмени и еще чего-то там. Статистически гарантируется, что это число уникально. В мире не может статистически образоваться двух одинаковых GUID.

На прошлом занятии мы уже сталкивались с GUID:

  ...
  uuid("DCB60A0A-919F-4864-AEC6-FED1519F53A6")
  ...

Вот это число DCB60A0A-919F-4864-AEC6-FED1519F53A6 и есть как раз GUID. У вас оно может быть другое. Для удобства чтения GUID разделяется на 5 частей.

Для генерации GUID служит пункт меню Create GUID из меню Tools.

При выборе этого меню появляется окно Create GUID, в котором можно получить GUID нажав на кнопку "New GUID", который затем можно скопировать в буфер обмена, нажав на кнопку Copy.

Наверх

Visual C++.NET. Библиотека ATL. Урок 9. Рисование на компоненте

Для рисования на компоненте служит метод OnDraw класса компонета.

Мастер уже создает вам заготовку для этого метода, в которой выводится умолчальная надпись "ATL 7.0 : MyFirstATL". В этот метод передается параметр di типа ATL_DRAWINFO. Именно через этот параметр вы и получаете все необходимое для рисования - в частности, контекст устройства (напомним, что все рисование на компонентах идет на уровне API-функций). В частности, для получения контекста устрйства мы пишем что-то вроде:

HDC hdc=di.hdcDraw;

Далее полученный контекст устройства мы используем во всех API-функциях рисования:

TextOut(hdc, (rc.left + rc.right) / 2, (rc.top + rc.bottom) / 2, pszText, lstrlen(pszText));

В принципе, можно не заводить для контекста устройства отдельную переменную (что мастер и делает):

TextOut(di.hdcDraw, (rc.left + rc.right) / 2, (rc.top + rc.bottom) / 2, pszText, lstrlen(pszText));

Для рисования используются стандартые API-функции - например TextOut для вывода текста, LineTo для рисования линии, Rectangle для вывода прямоугольника, Ellipse для рисования эллипса, SelectObject для приписывания к контексту устройства кисли, пера и т. п. и множество других.

Наверх

Рассылки с сайта progs.biz

Рассылки Subscribe.Ru
Windows API

Windows SDK: уроки по созданию приложений с использованием API функций Windows и всем, что с ним связано - сообщения, обработчики, диалоговые окна и элементы на них, меню, рисование, горячие клавиши и др. API-функции можно использовать фактически в любом языке программирования, так что знание таких функций позволит обойти ограничения того или иного языка.


Copyright Алексеев Игорь, 2002

Copyright cайт progs.biz, 2002



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное