У меня есть WinForm, и теперь мне нужно изменить курсор, когда он находится в заголовке окна. У меня есть код работает, у него есть 2 проблемы:
-
Он также меняет курсор, когда находится по краям (должен быть показан курсор нормального размера).
Я обнаружил, что мне нужно что-то вроде
WM_NCHITTEST
& HTTOP
, но как мне это объединить?
- При перемещении мыши наблюдается мерцание.
Я также попытался разместить код под base.WndProc(ref m);
.
Это код, который у меня уже есть:
if ((m.Msg == Win32.WM.NCMOUSEMOVE
|| m.Msg == Win32.WM.NCLBUTTONDOWN || m.Msg == Win32.WM.NCLBUTTONUP
|| m.Msg == Win32.WM.NCRBUTTONDOWN || m.Msg == Win32.WM.NCRBUTTONUP)
)
{
if (m.WParam.ToInt32() != Win32.HT.TOP && m.WParam.ToInt32() != Win32.HT.RIGHT && m.WParam.ToInt32() != Win32.HT.BOTTOM && m.WParam.ToInt32() != Win32.HT.LEFT)
{
Cursor = Cursors.Hand;
}
}
EDIT:
Я не регистрировал сообщение правильно в Spy ++. Нашел решение по краям окна (см. Обновленный код).
Thnx, J