首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

问一个api函数有关问题

2012-04-03 
问一个api函数问题#includestdio.h#includewindows.h#include stdlib.h#includeconio.h#define le

问一个api函数问题
#include<stdio.h>
#include<windows.h>
#include <stdlib.h> 
#include<conio.h>
#define le 30
void sna(int *m,int *n,int tf)
{
  int k;
  k=*m;
  *m=*n;
  *n=k;
if(tf==0)
*n=-*n;
else
*m=-*m;

}int main()
{ HANDLE cono;
  HANDLE coni;
  COORD sn={0,0},sw={60,0};
  CONSOLE_CURSOR_INFO cur;
  INPUT_RECORD keyb;
  int di=1,dj=0;
  WORD ke;
  cur.dwSize=1;
  cur.bVisible=FALSE;
  cono=GetStdHandle(STD_OUTPUT_HANDLE);
  coni=GetStdHandle(STD_INPUT_HANDLE);
  SetConsoleCursorInfo(cono,&cur); //设置为不显示光标 
  SetConsoleCursorPosition(cono,sw);
   
  while(1)
  {
 
  if(kbhit())
  { ReadConsoleInput(coni,&keyb,1,NULL);
  printf(" %d ->%d",keyb.EventType,keyb.Event.KeyEvent.wVirtualKeyCode);
  if(keyb.EventType==KEY_EVENT)
  { printf(" %d -> %d ",keyb.EventType,keyb.Event.KeyEvent.wVirtualKeyCode);
 
  if(VK_UP==keyb.Event.KeyEvent.wVirtualKeyCode&&dj==0)
  sna(&di,&dj,-di+1);
  else if(VK_LEFT==keyb.Event.KeyEvent.wVirtualKeyCode&&di==0)
  sna(&di,&dj,dj+1);
  else if(VK_DOWN==keyb.Event.KeyEvent.wVirtualKeyCode&&dj==0)
  sna(&di,&dj,di+1);
  else if(VK_RIGHT==keyb.Event.KeyEvent.wVirtualKeyCode&&di==0)
  sna(&di,&dj,-dj+1);
  else if( VK_ESCAPE==keyb.Event.KeyEvent.wVirtualKeyCode)
  return 0;
  else  
  printf("%d ",keyb.Event.KeyEvent.wVirtualKeyCode);
  }
  }
   
  sn.X=(sn.X+di+le)%le;
  sn.Y=(sn.Y+dj+le)%le;
   
FillConsoleOutputCharacter(cono,'#',sizeof('#'),sn,NULL);

  Sleep(500);
   
   
}
return 0;
}
当有键盘输入时这个程序里面的 ReadConsoleInput(coni,&keyb,1,NULL);为什么没有起作用?



[解决办法]
单步调试看看

热点排行