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

Windows API

  Все выпуски  

Windows API


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


Windows API. Уроки с сайта http://progs.biz

Рассылка № 13

Windows API. Урок 15. Функция InvalidateRect.

Полные версии уроков (с картинками) можно найти по адресам:
Урок 15. Функция InvalidateRect.

Д. Чепмен. Освой самостоятельно Visual C++.NET за 21 день.
Д. Чепмен. Освой самостоятельно Visual C++.NET за 21 день.
Заказать на Озоне

Подробнее

Рассылки сайта progs.biz через subscribe.ru
Delphi. Уроки
Delphi. Уроки. Уровень - от начинающего до профи. Каждый урок рассчитан на 15 - 20 минут. Темы - библиотека VCL, создание компонентов, FAQ, работа с базами данных (InterBase и др).

Windows API. Урок 15. Функция InvalidateRect

Функция InvalidateRect предназначена для перерисовки окна из любого места программы. Эта функция посылает в программу сообщение WM_PAINT. Именно эту API-функцию вы должны использовать для перерисовки из обработчиков для разных сообщений Windows.

Вот пример использования этой функции:

LONG WINAPI WndProc(HWND hwnd, UINT Message, WPARAM wparam, LPARAM lparam)
{
    //Статические переменные для центра рисуемого круга.
    static int x, y;
    HDC hdc;
    PAINTSTRUCT ps;
    switch (Message){
        case WM_PAINT:
            hdc = BeginPaint(hwnd, &ps);
            // Рисуем круг с центром в (x, y).
            Ellipse(hdc, x-5, y-5, x+5, y+5);
            EndPaint(hwnd, &ps);
            break;
        case WM_LBUTTONUP:
            // Запоминаем место, в котором щелкнули мышкой.
            x = LOWORD(lparam); 
            y = HIWORD(lparam);
            // Вызываем перерисовку.
            InvalidateRect(hwnd, NULL, TRUE);
            break;
        ...

В этом примере в том месте, где пользователь щелкнет мышкой, рисуется кружок. Действуем мы тут так: сначала в обработчике для WM_LBUTTONUP мы запоминаем в переменных x и y то место, в котором мы щелкнули мышкой (обратите внимание, что переменные мы объявили как статические!). Затем мы вызываем функцию InvalidateRect. Первый ее параметр определяет, что за окно будем перерисовывать, второй - что за прямоугольник в окне (значение NULL определяет, что будем перерисовывать все окно), последний параметр определяет, будем ли перед перерисовкой стирать старое содержимое окна (значение TRUE) или не будем (значение FALSE).

Наверх

PARKING.RU. Качественный ВИРТУАЛЬНЫЙ ХОСТИНГ на платформе Windows(r): поддержка .NET, многофункциональная панель управления, аренда бизнес-приложений, сертифицированные специалисты. Управляемый ВЫДЕЛЕННЫЙ ХОСТИНГ на платформе Windows(r): производительные серверы, профессиональная поддержка, аренда ПО Microsoft(r), безопасность, гарантии. http://www.parking.ru
Copyright Алексеев Игорь, 2002-2004
Copyright сайт progs.biz, 2002-2004
Распространение материалов без разрешения владельцев авторских прав запрещено.


BannerDrive.ru

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

В избранное