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

RusFAQ.ru: Win API


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / WinAPI

Выпуск № 399
от 14.03.2007, 07:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 402, Экспертов: 26
В номере:Вопросов: 1, Ответов: 1


Вопрос № 77598: Я делаю вывод текста методом виртуального окна, нужно в зависимости от значения переменной рисовать соответствующую строку текста в одной и той же области окна. Значение переменной определяется выбором соответствующего пункта меню. Нужно сраз...

Вопрос № 77.598
Я делаю вывод текста методом виртуального окна, нужно в зависимости от значения переменной рисовать соответствующую строку текста в одной и той же области окна.
Значение переменной определяется выбором соответствующего пункта меню.
Нужно сразу же после выбора пункта меню произвести отрисовку текста, т.е. обрабатывая сообщение WM_COMMAND,
необходимо поставить в очередь сообщение WM_PAINT, чтобы по завершению обработки WM_COMMAND цикл сообщений извлек этот WM_PAINT и произошла отрисовка текста.
Я пробовал использовать PostMessageA, но при выборе нужного пункта меню отрисовка текста не происходит, а происходит только при изменении размеров окна мышью или если свернуть и развернуть окно.

Приложение:

Отправлен: 09.03.2007, 06:35
Вопрос задал: Alexei_FAQ (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Tek
Здравствуйте, Alexei_FAQ!
Согласно MSDN функция UpdateWindow(HWND) - посылает сообщение WM_PAINT непосредственно окну, минуя очереди сообщений процесса и окна. Для вас ее использование насколько я понимаю будет наиболее эффективным - вызываете ее после обработки в WM_COMMAND.
Функция RedrawWindow(HWND, CONST RECT *, HRGN, UINT) предоставляет возможность задания более сложных критериев перерисовки окна, чем простая отрисовка клиентской области. За подробностями в MSDN.
---------
WinApi - жутко неудобные костыли, MFC и VCL - немногим полезнее, но ничего лучше еще не создано (C)Почти Уинстон Черчилль :)
Ответ отправил: Tek (статус: Студент)
Ответ отправлен: 09.03.2007, 11:14


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
ООО "Мастер-Эксперт Про", Москва, 2007
Авторские права | Реклама на портале
Версия системы: 4.45 beta от 20.02.2007
Яндекс Rambler's Top100

В избранное