windows图形编程

来源:百度知道 编辑:UC知道 时间:2024/06/27 20:21:29
while(1)
{
if(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
::TranslateMessage(&msg);
::DispatchMessage(&msg);
}

nc_on_timer();
Sleep(10);

switch (msg.message)
{
case WM_SYSKEYDOWN:
if (kbF10 == msg.wParam)
{
menu_on_msg(kbF10);
}
break;
case WM_KEYDOWN:
menu_on_msg(msg.wParam);
printf("main %x %c\n", msg.wParam, (TCHAR)msg.wParam);
break;
}
InvalidateRect(GetWindowHandle(), NULL, TRUE);
}
请大牛指点
为什么我按键的时候汉字可以在屏幕上正常输出,按键松开就没有了?鼠标也在不停的闪....
我估计是invalidaterect这个函数的问题
但是不知道怎么处理
把invalidaterect函数屏蔽,屏幕显示正常,但是按其它键屏幕就不刷新了,都是叠加在上面的.
问题很急请高手指点啊

你在处理完按下这个事件的响应之后,出现了输出,但是接着InvalidateRect把屏幕清空了。所以松开就没了。

不知道你的输出是怎么实现的。所以不太好说。可以把InvalidateRect 放到menu_on_msg前面试试看。

只在处理需要刷新的事件的时候再刷新,你这样不停刷新有东西都给你刷掉了

靠,没你这么干的。