static int Iscyclerun=1//循环有效
switch (message)
{
case WM_LBUTTONUP:
Iscyclerun=0;//停止循环 case WM_TIMER:
KillTimer(hwnd,1);
while(Iscyclerun==1)
{}
case WM_LBUTTONDOWN:
.....
SetTimer(hwnd,1,1000,NULL);
以上代码模拟左键按下并在循环体内做相关处理,释放左键,停止处理.问题是当进入循环体时,WM_LBUTTONUP就响应不了了,进入死循环了,这是什么原因,则么解决啊
switch (message)
{
case WM_LBUTTONUP:
Iscyclerun=0;//停止循环 case WM_TIMER:
KillTimer(hwnd,1);
while(Iscyclerun==1)
{}
case WM_LBUTTONDOWN:
.....
SetTimer(hwnd,1,1000,NULL);
以上代码模拟左键按下并在循环体内做相关处理,释放左键,停止处理.问题是当进入循环体时,WM_LBUTTONUP就响应不了了,进入死循环了,这是什么原因,则么解决啊
case WM_TIMER:
if (Iscyclerun==1)
{
// 做左键按下的处理
}
else
{
KillTimer(hwnd,1);
// 释放左键,停止处理
}
{}
如果里面没对Iscyclerun作重新赋值处理,明显一个死循环
---------
问题就在这,你以为能跳出while循环去响应WM_LBUTTONUP然后置0?
单线程,怎么可能从一个while死循环中跳出去