给个什么标题呢?仅仅是一个技巧而已

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;
  }
....
posted @ 2014-11-30 21:41  一名老程序员  阅读(107)  评论(0编辑  收藏  举报