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

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


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

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

Рассылка №54

Visual C++.NET. MFC. Урок 5. Рисуем примитивы на форме.
Visual C++.NET. MFC. Урок 6. Классы контекста устройств - обзор.

Полные версии уроков (с картинками) можно найти по адресам:
Урок 5. Рисуем примитивы на форме.
Урок 6. Классы контекста устройств - обзор.

Просиз Дж. Программирование для Microsoft.NET
Просиз Дж. Программирование для Microsoft.NET
Заказать на Озоне
Рассылки сайта progs.biz через Subscribe.Ru
Уроки по C/C++
Уроки по C/C++. Конструкции языка, указатели, объектно-ориентированное программирование, работа с файлами, библиотека STL и другое.

Visual C++.NET. Урок 5. Рисуем примитивы на форме

Для рисования различных примитивов на форме служит метод OnDraw класса вида (имя этого класса имеет вид C...View). Заготовка для этого метода уже создана мастером и в нее передается параметр типа CDC*:

void CfirstView::OnDraw(CDC* /*pDC*/)
{
    ...

Раскомментируйте параметр - так как именно он нам и нужен:

void CfirstView::OnDraw(CDC* pDC)
{
    ...

Для рисования мы используем различные методы класса CDC. Вот несколько примеров:

void CfirstView::OnDraw(CDC* pDC)
{
    CfirstDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);

    // TODO: add draw code for native data here
    //Рисуем прямоугольник.
    pDC->Rectangle(10, 10, 40, 30);
    //Рисуем эллипс.
    pDC->Ellipse(80, 10, 40, 30);
    //Сдвигаем точку рисования.
    pDC->MoveTo(10, 40);
    //Рисуем горизонтальный отрезок.
    pDC->LineTo(50, 40);
    //Выводим текст.
    pDC->TextOut(10, 50, "Some Text");
}
Наверх

Visual C++.NET. Урок 6. Классы контекста устройств - обзор

Windows предоставляет различные типы контекстов устройств (устройств для рисования). Библиотека MFC, как и следовало ожидать, предоставляет классы для этих типов Windows.

Классы для контекстов устройств образуют иерархию. Во главе этой иерархии стоит класс CDC. У него есть ряд потомков - классы CPaintDC (класс для рисования в окне. Вызывает функции CWnd::BeginPaint и CWnd::EndPaint), CMetaFileDC (содержит последовательность графических команд, которые можно повторить), CClientDC (класс для рисования в окне. Вызывает функции GetDC и ReleaseDC) и класс CWindowDC (класс для рисования в окне. Вызывает функции GetWindowDC и ReleaseDC).

Схема действий этих классов приблизительно следующая - сначала создается экземпляр соответствующего класса, который привязывается к соответствующему окну. Далее вызываются методы класса для рисования. Попутно для класса контекста устройства могут меняться различные графические объекты - перья, шрифты, кисти и т. п. Все, что вы нарисуете в контексте устройства, будет с точки зрения пользователя программы нарисовано в окне (к которому привязан сответствующий экземпляр класса для рисования).

Наверх

Copyright Алексеев Игорь, 2002-2003
Copyright сайт progs.biz, 2002-2003
Распространение материалов без разрешения владельцев авторских прав запрещено.


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

В избранное