我正在尝试创建一个程序来检测按键并在窗口上绘制相应的字母。一切正常,但它只绘制一次......当我按下另一个键时没有任何反应。
case WM_KEYDOWN:
{
if (GetKeyState(0x41))
{
pCtrl->Paint (65);
}
Paint函数调用Char函数,该函数使用::Textout
绘制角色
所有我无法理解的是为什么它不会多次吸引
答案 0 :(得分:5)
如果没有Paint的代码很难回答,但我认为你正在接近这个问题。 Win32应用程序只应在处理WM_PAINT消息时修改其显示区域。当收到WM_KEYDOWN消息时,它应使用InvalidateRect()使显示无效并让应用程序重绘自身。为了消除不可避免的闪烁,WM_KEYDOWN处理程序可以记录更改的类型,WM_PAINT处理程序只能更新显示该字符的显示。