У меня есть 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
А как насчет подделки надписи на окнах? просто мысль. – NinethSense
Я расширил заголовок окна, чтобы поднять, чтобы обеспечить прозрачность стекла. Кроме того, я нарисовал что-то, но я не могу понять, как правильно изменить курсор мыши на весь заголовок. – jerone