MFC里面如何控制OnMouseMove消息的促发频率啊?
3个回答
展开全部
无法控制,消息是Windows传递给程序的,不过你可以对消息到来的时间控制,只准收工作日事件:
SetTimer(1, 100, NULL); //频率就是1000/100=10Hz了
OnTimer
{
if (移动鼠标) xxxx;
return;
}
SetTimer(1, 100, NULL); //频率就是1000/100=10Hz了
OnTimer
{
if (移动鼠标) xxxx;
return;
}
追问
这是一种方法。
更好的控制是使用一个类的成员变量(如m_bCanMove),表明现在能否促发MouseMove事件,在OnTimer里面置为TRUE(OnTimer每次都直接置为True);
这样在OnMouseMove函数中,判断m_bCanMove,如果为FALSE直接返回;否则触发事件,并将m_bCanMove置为FALSE。
先谢谢你。我想看看有没有别的设置方法。
追答
你也可以把主线程优先权降低啊,然后创别的线程当成工作线程
只不过不能精确控制
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询