Что такое код beginpaint


winapi — Различия между GetDC() и BeginPaint()?

У меня возникли проблемы с некоторыми из моих владельцев, которые рисовали списки на мониторах с высоким разрешением DPI в Windows 10 в диалоговом окне. Текст отрублен внизу. Мы видели проблему в Windows 7 и смогли ее исправить. Это не обязательно высокий DPI, но когда пользователь устанавливает другое масштабирование текста. Я решил проблему, поэтому я подумал (!), Используя CClientDC (обертка вокруг GetDC()) и вызывая GetTextMetrics(), чтобы определить высоту текста. Раньше наши значки всегда были выше нашего текста, поэтому это не проблема. С более крупными мониторами DPI мы видели, как некоторые клиенты сообщали о проблемах при масштабировании текста.

Теперь мы получаем новые отчеты под Windows 10. Первая проблема хорошо под Windows 7, но Windows 7 только масштабируется до 100, 125 и 150 процентов. Windows 10 (и, возможно, 8? — но без отчетов клиентов) позволяет определять масштабирование пользователя.

Итак, я несколько раз обнаружил проблему. Я знал, что такое высота шрифта, когда я вызывал GetTextMetrics() во время WM_MEASUREITEM. Я пошел и добавил код для отладки того, что GetTextMetrics() было во время моего WM_DRAWITEM. Ну, они были разные — 20 пикселей в высоту во время WM_MEASUREITEM и 25 пикселей в высоту во время WM_DRAWITEM. Очевидно, что это проблема. Я хочу, чтобы GetTextMetrics() имел одинаковые результаты в обоих местах.

Я думал, что единственная реальная разница, о которой я мог думать, заключалась в том, что во время WM_MEASUREITEM я вызываю GetDC() через конструктор CClientDC, а во время WM_DRAWITEM я использую уже построенный HDC (который, вероятно, был из возврата GetPaint() внутри GDI32.dll или другая системная DLL).

Я подумал, может быть, BeginPaint() делает что-то вроде выбора HFONT в HDC.

Итак, внутри моего WM_MEASUREITEM после получения DC я выбираю шрифт списка в HDC, а затем вызываю GetTextMetrics(). И вот, числа теперь совпадают в WM_MEASUREITEM и WM_DRAWITEM.

Однако я не знаю, смогу ли мне просто повезти. В этот момент все это догадывается.

Does BeginPaint() выбирает шрифт окна в DC, а GetDC() — нет? Использует ли обработчик по умолчанию WM_PAINT для владельца, нарисованный LISTBOX или COMBOBOX, что-то вроде выбора шрифта окна в краску DC?

Получение данных из EDIT, ввод пользователем параметров пера

По лабам задали работу с графикой — создать программу которая будет выводить заданный рисунок на экран с заданными пользователем параметрами кисти. Методички у нас по VS 6.0 с, как я понял MFC. Хочу сделать данную работу через WinApi, но каждая книга по winapi весит под тонну и в сроки мне ее не одолеть и поэтому прошу помощи!

Я зарегал окно и нарисовал нужный мне рисунок но:
1) Как получить значения из edit? Пробовал через GetWindowText, но ничего не получается. Так же не могу прояснить для себя, где именно пользоваться этой функцией или это совершенно не имеет значение?(имею ввиду различные кейсы в LRESULT CALLBACK WndProc)
2) Проблема состоит в том, что перо и edit создается в одной функции LRESULT CALLBACK WndProc и кэйсе case WM_CREATE и нужные значения не могут быть переданы в параметры функции создания пера. Не могу понять, как мне вначале создать edit и получить значения, а затем создать по этим значениям перо. Когда листал книгу в поисках этого вопроса заметил помимо функций int WINAPI WinMain и LRESULT CALLBACK WndProc функцию с названием похожей на Dialog, точно не помню. Подумал что это как то может мне помочь, но либо нет, либо я ничего не понял. Хотелось бы понять что эта за функция и как с ней работать.

Еще хотел бы уточнить, нужно ли здесь как-либо париться с фокусом окна? Если да, то прокомментируйте и это пожалуйста.

11.05.2020, 19:47

Ввод параметров для CopyFile() пользователем с консоли
Здравствуйте. Мне нужно использовать функцию CopyFile(), для копирования файла. Казалось бы.

Получение текста из Edit и ввод его в файл
Подскажите пожалуйста с помощью каких функций можно получить содержимое окна edit, и как потом.

Ввод параметров пользователем
Добрый день уважаемые форумчане, подскажите пожалуйста, есть такая проблема, суть работы состит в.

Ввод данных пользователем в Clojure
Как получать данные от пользователя? На такой код ругается: (defn sum (apply +.

Получение данных из динамически созданных edit ов
суть промблемы такая, создаю по нажатию кнопки этид поле, сколько нажму столько и создам, на поле.

А заканчивается вызовом функции EndPaint

. . . // вызов функций GDI для контекста HDC

В обеих функциях первый параметр – это дескриптор окна приложения, а второй – это указатель на структуру типа PAINTSTRUCT. В этой структуре содержится некоторая информация, которую оконная процедура может использовать для рисования в рабочей области окна.

В частности, одно из полей этой структуры представляет собой самый маленький прямоугольник, содержащий все области окна, требующие перерисовки. Ограничив свои действия по рисованию только этой прямоугольной областью, приложение может ускорить процесс перерисовки.

При обработке вызова BeginPaint, Windows:

— обновляет фон рабочей области с помощью кисти, которая указывалась при регистрации класса окна;

— делает всю рабочую область действительной (не требующей перерисовки);

— возвращает дескриптор контекста устройства (этот дескриптор необходим для вывода в рабочую область текста и графики).

Илон Маск рекомендует:  Что такое код pdf_get_value

При использовании дескриптора контекста устройства, возвращаемого функцией BeginPaint, приложение не может рисовать вне рабочей области. Функция EndPaint освобождает дескриптор устройства, после чего его нельзя использовать.

Функцию BeginPaint следует вызывать только в ответ на сообщение WM_PAINT. Каждый вызов этой функции должен сочетаться с последующим вызовом функции EndPaint.

Так как приложение практически никогда при обработке сообщения WM_PAINT не знает размеров всей своей клиентской области, то перед рисованием оно может получить эту информацию при помощи функции

BOOL GetClientRect(HWND hWnd, LPRECT rect);

Первый параметр – дескриптор окна, второй – указатель на переменную типа RECT, в эту переменную функция GetClientRect помещает информацию о размере рабочей области в пикселях.

Удаление окна, сообщение WM_DESTROY

Сообщение WM_DESTROY является еще одним важным сообщением. Оно показывает, что Windows находится в процессе ликвидации окна в ответ на полученную от пользователя команду (пользователь вызывает поступление этого сообщения, если нажмет клавишей мыши по пиктограмме “Close”, выберет пункт “Close” из системного меню или нажмет комбинацию клавиш Alt+F4). Главное окно стандартно реагирует на это сообщение, вызывая функцию

Эта функция ставит сообщение WM_QUIT в очередь сообщений приложения. Это заставляет функцию WinMain прервать цикл обработки сообщений и выйти в систему, завершив работу приложения.

ЗАДАНИЕ

Перенести исходный текст оконного приложения в среду разработки, откомпилировать, выполнить, изучить принципы его работы на основе приведенного теоретического материала. Ответить на контрольные вопросы. Письменный отчет по работе не требуется.

ПРАКТИЧЕСКАЯ ЧАСТЬ

Ниже приведен исходный текст приложения, которое создает главное окно и выводит текст в клиентской области.

// — Обязательный включаемый файл

// — Описание функции главного окна

LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);

HINSTANCE hInst; // Дескриптор экземпляра приложения

char ; // Название класса окна

char AppTitle[]=»Application Win32″; // Заголовок главного окна

int WINAPI WinMain( HINSTANCE hInstance,

// Дескриптор экземпляра приложения

HINSTANCE hPrevInstance, // В Win32 всегда равен NULL

// Указатель на командную строку. Он // позволяет

// приложению получать данные из командной строки.

// Определяет, как приложение первоначально

// отображается на дисплее: пиктограммой

// или в виде открытого окна //(nCmdShow = SW_SHOWNORMAL).

WNDCLASS wc; // Структура для информации о классе окна

HWND hWnd; // Дескриптор главного окна приложения

MSG msg; // Структура для хранения сообщения

// Сохраняем дескриптор экземпляра приложения в глобальной

// переменной, чтобы при необходимости воспользоваться им в

// — Проверяем, было ли приложение запущено ранее.

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

// найти окно верхнего

// уровня по имени класса или по заголовку окна:

// HWND FindWindow(LPCTSTR lpClassName,

// Через параметр lpClassName передается указатель на

// текстовую строку, в которую необходимо записать имя

// класса искомого окна. На базе одного и того же класса

// можно создать несколько окон. Если необходимо найти

// окно с заданным заголовком, то имя заголовка следует

// передать через параметр lpWindowName. Если же подойдет

// любое окно, то параметр lpWindowName может иметь

// Пользователь может не помнить, какие приложения уже

// запущены, а какие нет. Когда он запускает приложение,

// то ожидает, что на экране появится его главное окно.

// Поэтому, если приложение было запущено ранее,

// целесообразно активизировать и выдвинуть на передний

// план его главное окно. Это именно то, к чему приготовился

if(IsIconic(hWnd)) ShowWindow(hWnd, SW_RESTORE);

// Найдена работающая копия — работа новой копии

// — Работающая копия не найдена — функция WinMain

// приступает к инициализации. Заполнение структуры

// WNDCLASS для регистрации класса окна.

// Адрес оконной функции

wc.style=CS_HREDRAW|CS_VREDRAW; // Стиль класса

wc.hInstance=hInstance; // Экземпляр приложения

// Пиктограмма для окон

// Курсор мыши для окон

wc.lpszMenuName=NULL; // Ресурс меню окон

wc.cbClsExtra=0; // Дополнительная память

wc.cbWndExtra=0; // Дополнительная память

// Pегистрация класса окна.

// Создаем главное окно приложения.

ClassName, // Имя класса окон

AppTitle, // Заголовок окна

WS_OVERLAPPEDWINDOW, // Стиль окна

CW_USEDEFAULT, // Ширина окна

CW_USEDEFAULT, // Высота окна

NULL, // Дескриптор окна-родителя

NULL, // Дескриптор меню окна

hInst, // Дескриптор экземпляра приложения

NULL); // Дополнительная информация

// Окно не создано, выдаем предупреждение.

// Обновляем содержимое клиентской области окна.

// Запускаем цикл обработки очереди сообщений.

// Функция GetMessage получает сообщение из очереди,

// выдает false при выборке из очереди сообщения WM_QUIT

while(GetMessage(&msg, NULL, 0, 0))

// Преобразование некоторых сообщений,

// полученных с помощью клавиатуры

// Отправляем сообщение оконной процедуре

LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)

char *str=»First Windows aplication»;

// Необходимо обновить содержимое клиентской области окна.

// Получить контекст окна

// Освободить контекст окна

// Нажата левая клавиша мыши в клиентской области окна.

MessageBox(hWnd, «32-bit aplication», «Window»,

// Пользователь удалил окно.

// Если данная функция является оконной функцией

// главного окна, то следует в очередь сообщений

// приложения послать сообщение WM_QUIT

// Необработанные сообщения передаем в стандартную

// функцию обработки сообщений по умолчанию.

default: return DefWindowProc(hWnd, msg, wParam, lParam);

КОНТРОЛЬНЫЕ ВОПРОСЫ

1. Какая функция является точкой входа в Windows-программу?

2. Что такое дескриптор копии приложения? Что он идентифицирует?

3. Какие действия обычно выполняет функция WinMain?

4. Для чего необходимо регистрировать класс окна?

5. Какие характеристики класса окон можно задать при его регистрации? Какие поля структуры, описывающей класс окна, являются наиболее важными?

6. Что такое оконная процедура? Для чего она предназначена? Кто ее вызывает в процессе работы приложения?

7. Может ли приложение создавать окна, принадлежащие классам, которые приложение самостоятельно не регистрировало?

8. Что такое дескриптор окна? Для чего он необходим?

9. После создания окна, оно обязательно должно появиться на экране? Что необходимо сделать для отображения окна?

Илон Маск рекомендует:  Xml сериализация объекта delphi

10. Для чего служит цикл обработки сообщений? Откуда приложение извлекает очередное сообщение? Каким образом и кем сообщения создаются?

11. Сколько очередей сообщений существует? Для кого предназначены сообщения?

12. Каким образом цикл обработки сообщений прерывается, давая возможность приложению завершить свою работу?

13. Кто обычно посылает сообщение (и какое), которое прерывает цикл обработки сообщений?

14. Что должно сделать приложение, если оно не обрабатывает некоторое сообщение?

15. Из каких источников оконная процедура получает сообщения?

16. Какое сообщение приходит окну, если часть его рабочей области (или вся она) требует перерисовки? Что такое недействительная область?

17. В каких ситуациях рабочая область может становиться недействительной?

18. С вызова какой функции должна начинаться обработка сообщения WM_PAINT? Вызовом какой функции она должна заканчиваться? Для чего вызываются эти функции?

19. Как обычно реагирует стандартное главное окно приложения на получение сообщения о его удалении? Что при этом происходит с приложением?

20. Когда приходит сообщение об удалении окна? Что произойдет, если остальные окна приложения будут реагировать на это сообщение так же, как и главное окно?

СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ

1. Рихтер, Д. Windows для профессионалов: создание эффективных Win32-приложений (с CD-ROM)./Д. Рихтер. – М.: Русская редакция, 2000. – 752с.

2. Шилдт, Г. «MFC основы программирования». /Г. Шилдт. — Киев: BHV, 1997. – 452с.

3. Румянцев, П.В. Азбука программирования в Win32 API. / П.В. Румянцев. – М.: Радио и связь, 1999. – 242с.

4. Соломон, Г. Внутреннее устройство Microsoft Windows 2000. / Г. Соломон, М. Руссинович. – 4-е изд. – Спб.: Питер, 2001. — 752с.

5. Роббинс, Д. Отладка Windows-приложений (+ CD-ROM)./ Д. Роббинс. — Спб.: BHV, 2001. — 512с.

6. Финогенов, К. Г. Win32. Основы пpогpаммиpования/К.Г. Финогенов. – М.:Диалог — МИФИ, 2002.-416 с.

7. MSDN. http://msdn.microsoft.com

8. RSDN. http://www.rsdn.ru

Программирование под Windows. Оконное приложение с использованием WinAPI 32: методические указания к выполнению лабораторной работы № 1 для студентов дневной формы обучения специальности 230105 «Программное обеспечение ВТ и АС»

БЕЛОВ ЕВГЕНИЙ АЛЕКСАНДРОВИЧ

Научный редактор Д.И. Копелиович

Редактор издательства Л.И. Афонина

Компьютерный набор М.В. Березина

Темплан 2005г., п.185

Подписано в печать __.__.05. Формат 60х80 1/16 Бумага офсетная. Офсетная печать. Усл.печ.л. 1,51 Уч.-изд.л.1,51 Тираж 30 экз. Заказ Бесплатно____

Брянский государственный технический университет.

241035, Брянск, бульвар 50-летия Октября, 7, БГТУ. 54-90-49.

Лаборатория оперативной полиграфии БГТУ, ул. Институтская, 16.

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: Сдача сессии и защита диплома — страшная бессонница, которая потом кажется страшным сном. 8774 — | 7145 — или читать все.

188.64.174.135 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.

Отключите adBlock!
и обновите страницу (F5)

очень нужно

Различия между GetDC () и BeginPaint ()?

December 2020

164 раз

У меня возникли проблемы с некоторыми из моих владелец обращается ListBoxes на High DPI мониторы на Windows 10 в диалоговом окне. Текст сколов на дне. Мы видели эту проблему на Windows 7 и были в состоянии это исправить. Это не обязательно High DPI, но когда пользователь устанавливает другой текст масштабирования. Я решил эту проблему, так что я подумал (!), С помощью CClientDC (обертки вокруг GetDC ()) и вызов GetTextMetrics (), чтобы определить высоту текста. Раньше наши иконы всегда были выше, чем наш текст, чтобы это не было проблемой. С большими мониторами DPI мы видели некоторые клиенты проблемы отчетности, когда они масштабируются текст.

Теперь мы получаем новые отчеты под окнами 10. Первая задача отлично под Windows 7 — Windows 7, но масштабируется только до 100, 125 и 150 процентов. Windows, 10 (и, возможно, 8 — но никаких сообщений клиентов) позволяет определить пользователем масштабирование.

Итак, я разыскал эту проблему несколько . Я знал, что высота шрифта был, когда я назвал GetTextMetrics () во время WM_MEASUREITEM. Я пошел и поставил код в отлаживать, что GetTextMetrics () была во время моего WM_DRAWITEM. Ну, они были разные — 20 пикселей в высоту во время WM_MEASUREITEM и высокие во WM_DRAWITEM 25 пикселей. Очевидно, что это проблема. Я хочу GetTextMetrics (), чтобы иметь одни и те же результаты в обоих местах.

Моя мысль была о том, что единственная реальная разница я мог думать только о том, что во время WM_MEASUREITEM я звоню GetDC () с помощью CClientDC конструктора, и что во время WM_DRAWITEM я использую уже построенную HDC (который, вероятно, был с возвращением GetPaint () внутри gdi32 .dll или другая система DLL).

Я подумал, что в BeginPaint () делает что-то, как выбрать окна HFONT в HDC .

Таким образом, в моем WM_MEASUREITEM после получения DC, я выбираю шрифт ListBox в HDC, а затем я называю GetTextMetrics (). И вот, цифры совпадают сейчас в WM_MEASUREITEM и WM_DRAWITEM.

Тем не менее, я не знаю, мне просто повезло. Это всего лишь догадка в этой точке.

Есть ли BeginPaint () выберите окна шрифт в DC, тогда как GetDC () не? Имеет ли обработчик по умолчанию WM_PAINT для владельца обращается ListBox или COMBOBOX сделать что-то вроде выбора окна шрифта в краску DC?

BeginPaint function

The BeginPaint function prepares the specified window for painting and fills a PAINTSTRUCT structure with information about the painting.

Syntax

Parameters

Handle to the window to be repainted.

Pointer to the PAINTSTRUCT structure that will receive painting information.

Return Value

If the function succeeds, the return value is the handle to a display device context for the specified window.

If the function fails, the return value is NULL, indicating that no display device context is available.

Илон Маск рекомендует:  Плавающая ширина картинки

Remarks

The BeginPaint function automatically sets the clipping region of the device context to exclude any area outside the update region. The update region is set by the InvalidateRect or InvalidateRgn function and by the system after sizing, moving, creating, scrolling, or any other operation that affects the client area. If the update region is marked for erasing, BeginPaint sends a WM_ERASEBKGND message to the window.

An application should not call BeginPaint except in response to a WM_PAINT message. Each call to BeginPaint must have a corresponding call to the EndPaint function.

If the caret is in the area to be painted, BeginPaint automatically hides the caret to prevent it from being erased.

If the window’s class has a background brush, BeginPaint uses that brush to erase the background of the update region before returning.

Что такое код beginpaint

Подготавливает CWnd для рисования и заполняет структуру данных PAINTSTRUCT со сведениями о картине.

Указывает на PAINTSTRUCT составляющие, получить сведения о рисования.

Определяет контекст устройства для CWnd. Указатель может быть временным и должны храниться вне области EndPaint.

Структура paint содержит структуру данных RECT, имеющей наименьший прямоугольник, ограничивающий область обновления полностью и пометить, указывающее, был ли стерт фон.

Область обновления устанавливается Недействительным, InvalidateRect или функции-члены InvalidateRgn и системой после того, как она определяет размер, перемещаются, создают, прокручивают или выполняют любая другая операция, которая влияет на клиентскую область. Если область обновления помечена для стирание, то BeginPaint отправляет сообщение WM_ONERASEBKGND.

Не вызовите функцию-член BeginPaint кроме в ответ на сообщения WM_PAINT. Каждый вызов к функции-члену BeginPaint должен иметь соответствующий вызов метода EndPaint функции-члену. Если курсор находится в области для рисования, функция-член BeginPaint автоматически скрывает курсор для предотвращения его от стертым.

Рисовалка под Windows на C++, или «Ребята, я тоже ненормальный!» (30+ строк кода)

В последнее время Хабр просто пестрит «30-строчными постами»:

Одержимый желанием следовать моде, я тоже решил что-нибудь написать. Но так как с JS у меня отношения сложные, я решил писать на C++ с использованием API, которое так любезно предоставила мне ОС Windows (в народе именуемом WinAPI).

Итак, ближе к телу делу:

C++ код (31 строка):

Так как меряемся пиписьками основным кодом, не учитывая «верстку», описание диалога, как ресурса, не учитываю, но желающим воспроизвести данный пример необходимо создать диалог с ID — IDD_PAINT.

Собственно, то, ради чего всё начиналось:

Особенности

— 31 строка C++ говно кода
— Использованные библиотеки: STL

Недостатки

— Мерцание экрана при непосредственном рисовании (двойная буферизация была опущена в силу экономии строк).
— В реальной задаче написания программы (аля Paint) использование контейнера vector, возможно, не самый лучший вариант, но все же.

BeginPaint

Описание: function BeginPaint(Wnd: HWnd; var Paint: TPaintStruct): HDC;

Подготавливает окно к pаскpаске в ответ на сообщение wm_Paint. Заполняет Paint инфоpмацией для pаскpаски.

Паpаметpы:

Wnd: Вновь pаскpашиваемое окно.

Paint: Стpуктуpа TPaintStruct, пpинимающая инфоpмацию о pаскpаске.

Возвpащаемое значение:

Идентификатоp контекста устpойства.

См. также: EndPaint, InvalidateRgn, wm_EraseBkgnd, wm_Paint функция находится в файле user32.dll

winapi — Различия между GetDC() и BeginPaint()?

У меня возникли проблемы с некоторыми из моих владельцев, которые рисовали списки на мониторах с высоким разрешением DPI в Windows 10 в диалоговом окне. Текст отрублен внизу. Мы видели проблему в Windows 7 и смогли ее исправить. Это не обязательно высокий DPI, но когда пользователь устанавливает другое масштабирование текста. Я решил проблему, поэтому я подумал (!), Используя CClientDC (обертка вокруг GetDC()) и вызывая GetTextMetrics(), чтобы определить высоту текста. Раньше наши значки всегда были выше нашего текста, поэтому это не проблема. С более крупными мониторами DPI мы видели, как некоторые клиенты сообщали о проблемах при масштабировании текста.

Теперь мы получаем новые отчеты под Windows 10. Первая проблема хорошо под Windows 7, но Windows 7 только масштабируется до 100, 125 и 150 процентов. Windows 10 (и, возможно, 8? — но без отчетов клиентов) позволяет определять масштабирование пользователя.

Итак, я несколько раз обнаружил проблему. Я знал, что такое высота шрифта, когда я вызывал GetTextMetrics() во время WM_MEASUREITEM. Я пошел и добавил код для отладки того, что GetTextMetrics() было во время моего WM_DRAWITEM. Ну, они были разные — 20 пикселей в высоту во время WM_MEASUREITEM и 25 пикселей в высоту во время WM_DRAWITEM. Очевидно, что это проблема. Я хочу, чтобы GetTextMetrics() имел одинаковые результаты в обоих местах.

Я думал, что единственная реальная разница, о которой я мог думать, заключалась в том, что во время WM_MEASUREITEM я вызываю GetDC() через конструктор CClientDC, а во время WM_DRAWITEM я использую уже построенный HDC (который, вероятно, был из возврата GetPaint() внутри GDI32.dll или другая системная DLL).

Я подумал, может быть, BeginPaint() делает что-то вроде выбора HFONT в HDC.

Итак, внутри моего WM_MEASUREITEM после получения DC я выбираю шрифт списка в HDC, а затем вызываю GetTextMetrics(). И вот, числа теперь совпадают в WM_MEASUREITEM и WM_DRAWITEM.

Однако я не знаю, смогу ли мне просто повезти. В этот момент все это догадывается.

Does BeginPaint() выбирает шрифт окна в DC, а GetDC() — нет? Использует ли обработчик по умолчанию WM_PAINT для владельца, нарисованный LISTBOX или COMBOBOX, что-то вроде выбора шрифта окна в краску DC?

Функция BeginPaint

Описание:

function BeginPaint(Wnd: HWnd; var Paint: TPaintStruct): HDC;

Подготавливает окно к pаскpаске в ответ на сообщение wm_Paint. Заполняет Paint инфоpмацией для pаскpаски.

Параметры:

Wnd: Вновь pаскpашиваемое окно.
Paint: Стpуктуpа TPaintStruct, пpинимающая инфоpмацию о pаскpаске.

Возвpащаемое значение:

Идентификатоp контекста устpойства.

См. также: EndPaint, InvalidateRgn, wm_EraseBkgnd, wm_Paint

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL