Мне необходимо как-то разрешить перемещение окна с помощью опции перетаскивания правой кнопкой мыши.Я сделал это с помощью некоторого непристойного кода, который мне не очень нравится, но он работает.
В настоящее время я перехватываю сообщение WM_NCRBUTTONDOWN и устанавливаю bool, чтобы сказать, что я нахожусь в режиме перемещения, сбрасывая эту переменную, когдаWM_NCRBUTTONUP получено.В режиме перемещения я проверяю WMNCMouseMove и самостоятельно перемещаю форму.Поскольку медленные движения мыши не спешат, я также установил таймер, чтобы сделать то же самое, используя GetCursorPos.
Я недавно обнаружил функцию SwapMouseButton, и она делает именно то, что мне нужно.Однако есть, но!Мне нужно поменять его условно и только тогда, когда пользователь щелкнул правой кнопкой мыши область CAPTION окна.
Поэтому я обмениваю кнопки мыши круглыми, когда получаю WM_NCRBUTTONDOWN и сбрасываю на WM_NCRBUTTONUP.Однако это будет работать при последующих щелчках, если WM_NCRBUTTONUP никогда не сбрасывает его.Я думаю, это потому, что событие щелчка уже произошло, так что это слишком поздно, чтобы поменяться местами, поэтому оно работает для последующих щелчков правой кнопкой мыши, но не для щелчка правой кнопкой мыши и перетаскивания, которое вызвало переключение мыши!
Может кто-нибудьувидеть способ обойти это.Имея в виду, что мне нужны функциональные возможности левого клика для закрытия, сворачивания, максимизации кнопок и т. Д. Щелкните правой кнопкой мыши только для перемещения!
Пожалуйста, помогите !!!!!
Спасибо, Джо