Win32的消息机制是不停的循环处理当前应用程序的消息,但
WM_KEYDOWN
WM_KEYUP
WM_LBUTTONDOWN
WM_LBUTTONUP
这两对消息很特别,当一直按着按键或鼠标键时你会发现一直触发WM_KEYDOWN或WM_LBUTTONDOWN消息,每触发一次消息,响应消息的逻辑就被调用一次,大都数情况下都是不对的,假如你用数字5浏览下30帧图片,数字6浏览上30帧图片,数字5你按得久一点就会发现此时的图片可能到了300帧,这肯定不是你想要的...
于是就有了这个技巧
......
...
if (m_Mouse.getIsLButtonPressed()&&!lpressed) //lpressed是全局BOOL变量,初始值FALSE
{
lpressed=TRUE;
...
}
if (!m_Mouse.getIsLButtonPressed())
{
lpressed=FALSE;
}
....