【发布时间】:2014-01-26 16:07:10
【问题描述】:
我正在尝试编写一个程序来控制带有箭头键的框的移动。我的代码有问题。是否可以通过 SendMessage 向 WM_PAINT 发送消息以在按下 LEFT 键时绘制一个新矩形? 以下是我的代码
case WM_KEYDOWN:
switch(wParam)
{
case VK_LEFT: //LEFT MOVEMENT
SendMessage(hwnd,WM_PAINT,VK_LEFT,0);
break;
case VK_ESCAPE:
//FOR ENDING THE GAME WITH ESCAPE KEY
SendMessage(hwnd,WM_DESTROY,VK_ESCAPE,0);
break;
}
case WM_PAINT:
hdc=BeginPaint(hwnd,&ps);
Rectangle(hdc,x,600,x1,700);
if(wParam==VK_LEFT)
{ Rectangle(hdc,x-50,600,x1-50,700);
}
EndPaint(hwnd,&ps);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd,message,wParam,lParam);
}
where
x1=550;
x=500
当按下左键时,控件是否转到 WM_PAINT
因为当我写的时候
if(wParam==VK_LEFT)
{ Rectangle(hdc,x-50,600,x1-50,700);
}
什么都没有发生,但是当我写的时候
if(wParam==VK_ESCAPE)
PostQuitMessage(0);
return 0;
使用退出键退出窗口
它不是最终代码。我只是想了解为什么VK_LEFT 不执行?
【问题讨论】: