Перед тем, как взглянуть на
зователя и вернитесь в нее в другом месте. Чтобы уменьшить число
сообщений, просто переместитесь вовне и снова вернитесь назад,
затем освободите левую кнопку "мыши", чтобы управление вернулось
в TDW.
Перед тем, как взглянуть на окно Windows Messages (Сообщения
Windows), увеличьте его до полного размера (клавишей F5), благо-
даря чему вы сможете видеть больше сообщений. Когда вы посмотрите
на нижнюю область окна Windows Messages, то увидите множество со-
общений WM_NCHITEST и WM_SETCURSOR, среди которых будет сообщение
WM_LBUTTONDOWN, WM_MOUSEMOVE, после них будет несколько сообщений
WM_NCMOUSEMOVE, далее еще сообщения WM_MOUSEMOVE и, наконец, зак-
лючительное сообщение WM_LBUTTONUP.
Похоже, что когда курсор не находится в области пользовате-
ля, то сообщения WM_MOUSEMOVE не поступают, а поступают только
сообщения WM_NCMOUSEMOVE.
Теперь яcно, что представляет собой ошибка. Программа рисует
от точки последнего сообщения WM_MOUSEMOVE до точки текущего со-
общения WM_MOUSEMOVE. Когда "мышь" выходит из области пользовате-
ля, программа не получает сообщений WM_MOUSEMOVE. Таким образом,
когда "мышь" возвращается в область пользователя, последней точ-
кой будет та точка, где она покинула экран, и программа ошибочно
рисует линию от точки выхода за пределы экрана до текущей точки.
Исправление ошибки
-----------------------------------------------------------------
TDeb 3.0 #3-3 = 80 =
Одним из возможных решений могло бы быть определение того
места, где "мышь" выходит за область пользователя, благодаря чему
программа сможет игнорировать последнюю позицию "мыши" и снова
начать рисование, когда "мышь" возвращается в область пользова-