|
| БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО! |
|
|
Synchronous and Asynchronous Drawing
Most drawing carried out during processing of the WM_PAINT message is asynchronous; that is, there is a delay between the time a portion of the window is invalidated and the time WM_PAINT is sent. During the delay, the application typically retrieves messages from the queue and carries out other tasks. The reason for the delay is that Windows generally treats drawing in a window as a low-priority operation and works as though user-input messages and messages that may affect the position or size of a window will be processed before WM_PAINT.
In some cases, it is necessary for an application to draw synchronously ѕ that is, draw in the window immediately after invalidating a portion of the window. A typical application draws its main window immediately after creating the window to signal the user that the application has started successfully. Windows draws some control windows synchronously, such as buttons, because such windows serve as the focus for user input. Although any window with a simple drawing routine can be drawn synchronously, all such drawing should be done quickly and should not interfere with the application's ability to respond to user input.
The UpdateWindow and RedrawWindow functions allow for synchronous drawing. UpdateWindow sends a WM_PAINT message directly to the window if the update region is not empty. RedrawWindow also sends a WM_PAINT message, but gives the application greater control over how to draw the window, such as whether to draw the nonclient area and window background or whether to send the message regardless of whether the update region is empty. These functions send the WM_PAINT message directly to the window, regardless of the number of other messages in the application message queue.
Any window requiring time-consuming drawing operations should be drawn asynchronously to prevent pending messages from being blocked as the window is drawn. Also, any application that frequently invalidates small portions of a window should allow these invalid portions to consolidate into a single asynchronous WM_PAINT message, rather than a series of synchronous WM_PAINT messages.
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
Синхронный и Асинхронный Чертеж
Рисующий выполненный в течение обработки сообщения WM_PAINT асинхронное; то есть, есть задержка между временем часть окна аннулирована и время WM_PAINT послано. В течение задержки, приложение обычно извлекает сообщения из очереди и выполняет другие задачи. Причина задержки - то, что Окно обычно рассматривает втягивать окна как низкоприоритетное действие и работы как если бы потребитель-входные сообщения и сообщения, которые могут повлиять на позицию или размер окна будет обработан перед WM_PAINT.
В некоторых случаях, необходимо для приложения делать синхронно U то есть, втяните окно немедленно после аннулировать части окна. Типичное приложение делает своим основным окном немедленно после создания окна, чтобы сигнализировать потребителя, что приложение начало успешно. Окно делает некоторым управляющим окном синхронно, как например, кнопки, поскольку такое окно служит в качестве фокуса для ввода пользователя. Хотя любое окно с простым чертежом программы может делаться синхронно, весь такой чертеж должен делаться быстро и не должен создаваться помехи с прикладной способностью реагировать на ввод пользователя.
UpdateWindow И функции RedrawWindow учитывают синхронный чертеж. UpdateWindow ПОСЫЛАЕТ сообщение WM_PAINT непосредственно в окно если регион коррекции не пустой. RedrawWindow ТАКЖЕ посылает сообщение WM_PAINT но дает прикладное большее управление над как, чтобы делать окном, как например, делать областью nonclient и фона окна или посылать сообщение независимо от того, что регион коррекции пустой. Эти функции посылают сообщение WM_PAINT непосредственно в окно, независимо от количества других сообщений в прикладной очереди сообщения.
Любое окно, требующее, чтобы трудоемкие действия чертежа должны делаться асинхронно, чтобы предотвращать рассматривать сообщения из заблокированное как окно сделано. Также, любое приложение, которое часто аннулирует небольшие части окна должно позволить неправильные части, чтобы укрепляться в единственное асинхронное сообщение WM_PAINT, а не серия синхронных сообщений WM_PAINT.
|
|
|
|
| |