на вызове UpdateWindow. Единственным параметром
на вызове UpdateWindow. Единственным параметром является HWindow.
Вы можете предположить, что параметр HWindow установлен правиль-
но, поскольку другие методы успешно используются. Поскольку ниче-
го очевидно неверного здесь нет, вы можете проверить следующее:
принимается ли действительно окном сообщение WM_PAINT, которое
должно посылаться в окно при вызове UpdateWindow?
Теперь вы наверное знаете, как установить точку останова по
сообщению WM_PAINT. Если нет, то прочтите выше описание установки
точки останова по сообщению WM_COMMAND.
Установив точку останова по сообщению, для выполнения выпол-
нения вызова UpodateWindow нажмите F7. Поскольку программа не
прерывается и не возвращает управления, сообщение WM_PAINT в окно
не посылается.
Вы можете проверить, что сообщения WM_PAINT не принимались,
путем нажатия правой кнопки "мыши", возврата в TDW из
WMRButtonUp, и последующей проверки нижней области диалогового
окна View ¦Windows Messages (Обзор¦Сообщения Windows). Здесь нет
сообщений WM_PAINT. По каким-то причинам вызов UpdateWindow не
работает так, как ожидается.
TDeb 3.0 #3-3 = 83 =
Анализ причины ошибки
-----------------------------------------------------------------
Эта ошибка требует некоторого понимания того, как Windows
работает с функцией UpdateWindow. Когда программа вызывает данную
функцию, Windows проверяет, является ли какая-либо часть окна не-
допустимой, и требуется ли отображать ее заново. Если это так, то
Windows посылает окну сообщение WM_PAINT. Если же нет, но незачем
попусту тратить системные ресурсы на ненужное сообщение, поэтому
Windows ничего не делает. Но откуда Windows знает, что окно тре-
буется обновить?
Прикладная программа уведомляет Windows, что по крайней мере