比如我想按下鼠标左键“不动”,实现一个数字累加或是一个物体的连续动作,不知该如何响应,对于键盘键按下可以用WM_KEYDOWN连续响应,可WM_LBUTTONDOWN只响应“左键按下的第一次”,以后就不管了,又不能在此消息中加循环,当掉的哦,晚辈很是郁闷,第一次发贴求助,望各位大侠指点。还有一个小问题,不过是界面方面,也发这里算了,就是vc自制位图只能是那么少颜色吗?连非客户区的那种灰色都没有,是不是一定要从外面导入啊,如果有好办法还请赐教。
调试欢乐多
一直到鼠标为up的时候,才置这个值为false,然后当这个值为true时,不停的执行你的动作 ,可以在OnTimer中进行
SetTimer()
SetCapture()OnLButtonUp:
KillerTimer()
ReleaseCapture()
OnTimer
DoSomething
程序中创建一个定时器,每次鼠标发生WM_LBUTTONDOWN事件时激活定时器,发生其他鼠标事件则屏蔽定时器。
定时器一旦被激活,没产生一次定时器事件向主程序发送一次WM_LBUTTONDOWN消息,直到被屏蔽。
GetCorsorPos(&cursor);
status = true;
SetTimer(1,100,0);OnLButtonUp:
status = false;
KillTimer(1);OnTimer:
if(status)
{
GetCursorPos(&now);
if(now.x!=cursor.x || now.y!=cursor.y)
{//if you move the cursor
status = false;
KillTimer(1);
}
else
{
//do what you want to do
}
}
//--------------------------------
应该只有从外部导入,资源编辑器最多只能编辑256位颜色的位图。