Вот так выглядит теперь полный код обработчика MouseDown формы:
LPARAMETERS nButton, nShift, nXCoord, nYCoord
if m.nButton = 1 and m.nShift = 0
ReleaseCapture()
PostMessage(GetFocus(), 0x0112, 0xF012, 0)
endif
ReleaseCapture() делается на всякий случай, если где-то был вызван GetCapture(). Кстати, без него всё работает точно также, то есть через раз.
Пробовал в Delphi перекрыть обработчик OnMouseDown (текст идентичный). Там работает немного по-другому: срабатывает каждый раз, но почему-то перестаёт вызываться обработчик OnMouseUp. ??????!!
Способ Эдварда тоже не привёл к положительным результатам. Согласно константе HTBOTTOMRIGHT окно, правда, успешно меняет размеры, но я хотел другого :) Использование константы HTCAPTION не привело вообще ни к чему.
Единственное разумное объяснение такого поведения окна — его нестандартная реализация в FoxPro, и с этим, видимо, ничего не поделаешь. Проект не может стоять на месте, я вынужден оставить эту идею, но я благодарен всем принимавшим столь живое участие в обсуждении. Если вдруг как-нибудь на досуге кто-то из вас всё же найдёт решение этой проблемы, пожалуйста, вспомните обо мне и дайте знать.
Всего хорошего!
Раджо