要查看我所指的右键单击事件,请参阅此视频。
我正在开发一个在 Windows 窗体应用程序中添加缩放按钮的应用程序。当用户触摸按钮时,应用程序应该不断地缩放窗口。这通过监视按钮上的鼠标按下事件来工作。当鼠标按下时,计时器会继续放大视图。只要用户在初始触摸后手指滑动,它就可以正常工作。但是,如果用户一直按一个点,他们会得到一个小等待圈,然后是一个右键单击事件。
我已将此链接中的代码添加到应用程序中:
public bool PreFilterMessage(ref Message m)
{
// Filter out WM_NCRBUTTONDOWN/UP/DBLCLK
if (m.Msg == 0xA4 || m.Msg == 0xA5 || m.Msg == 0xA6) return true;
// Filter out WM_RBUTTONDOWN/UP/DBLCLK
if (m.Msg == 0x204 || m.Msg == 0x205 || m.Msg == 0x206) return true;
return false;
}
此代码禁用生成的右键单击事件。但是,圆圈仍然会发生,并且不会发生 mousedown 事件。有没有办法让任何物理触摸都算作鼠标按下而不开始右键单击过程?
编辑我试图去Control Panel
-> Pen and Touch
并禁用按住右键单击功能。这禁用了旋转图标,但除非用户稍微移动手指,否则鼠标向下仍然不会发生。我不明白为什么用户必须涂鸦才能按住按钮。