#include <stdio.h>
#include <conio.h>
int main(void)
{
while (1)
{
if (!kbhit())
printf("1")
else
{
char c = getch()
if (c == 'a')
{
putchar('2')
getch()
}
}
}
return 0
}
添加WM_KEYDOWN函数。在函数体中case WM_KEYDOWN: if (wParam==VK_LEFT)//方向键左 { rect1.left-=10rect1.right-=10InvalidateRect (hWnd,NULL,TRUE)} else if (wParam==VK_RIGHT)//方向键右 { rect1.left+=10rect1.right+=10InvalidateRect (hWnd,NULL,TRUE)} else if (wParam==VK_UP)//方向键上 { rect1.top-=10rect1.bottom-=10InvalidateRect (hWnd,NULL,TRUE)} else if (wParam==VK_DOWN)//方向键下 { rect1.top+=10rect1.bottom+=10InvalidateRect (hWnd,NULL,TRUE)} else if (wParam==VK_PRIOR)//PG UP { rect1.top-=10rect1.bottom-=10InvalidateRect (hWnd,NULL,TRUE)} else if (wParam==VK_NEXT)//PG DN { rect1.top+=10rect1.bottom+=10InvalidateRect (hWnd,NULL,TRUE)} else if (wParam==VK_HOME)//HOME { rect1.left-=10rect1.right-=10InvalidateRect (hWnd,NULL,TRUE)} else if (wParam==VK_END)//END { rect1.left+=10rect1.right+=10InvalidateRect (hWnd,NULL,TRUE)} breakk=k&0xff?0x00ff:k>>8其实就是if(k&0xff) {
k=0x00ff
}else {
k=k>>8
}的简写。
其实0xff和0x00ff是一样的,都表示同一个十六进制的值。
书上这么写,没有错;至于为什么,就不好说了。
可能是让你多学点知识,也可能是现在很多书其实在编写时并不是很认真的。毕竟尽信书不如无书!
后面的k>>8是把0xff的值右移8位,达到计算的目的(具体什么目的要看具体内容)