① 如何用最簡單的VC程序獲取方向鍵的輸入並輸出對應的方向,如「上」,沒輸入的時候就輸出一個固定的字元串
是MFC嗎?VC6.0的MFC的話,在類向導中增加WM_KEYDOWN消息的處理函數宏雀,其中參數nChar指的是按鍵的虛鍵。如「上」為VK_UP,下:VK_DOWN,左VK_LEFT 右VK_RIGHT。
在OnKeyDown函數中加入判斷語句就行了如
String msg;
msg=_T("我在山絕運打豆豆");
switch(nChar)
{
case VK_UP:
msg=_T("上");
break;
case VK_DOWN:
msg=_T("下");
break;
case VK_LEFT:
msg=_T("左逗梁");
break;
case VK_RIGHT:
msg=_T("右");
break;
}
CClientDC dc(this);
dc.TextOut(0,0,msg);
② C++ getch()獲取方向鍵的ascii碼問題
上下左右鍵鍵值應該是37、38、39、40。
③ c語言如何使用鍵盤上的上下左右鍵
用bioskey()函數可以實現讀取鍵盤的或並培上下左右鍵
函數原型:int bioskey (int cmd)
說 明:蔽孝bioskey()的函數原型在bios.h中,即必須包含頭文件#include<bios.h>
讀取方向鍵可以用下面的程序啊!
#include<stdio.h>
#include<bios.h>
#defineKey_Up0x4800//向上方向鍵
#defineKey_Down0x5000//向下方向鍵
#defineKey_Right0x4d00//向右方向鍵
#defineKey_Left0x4b00//向左方向鍵
voidmain()
{
intkey=bioskey(0);
switch(key)
{
caseKey_Up:{printf("向上方向鍵被按下");break;}
caseKey_Down:衫唯{printf("向下方向鍵被按下");break;}
caseKey_Left:{printf("向左方向鍵被按下");break;}
caseKey_Right:{printf("向右方向鍵被按下");break;}
}
}
④ c語言中怎樣輸入和讀取方向鍵
在用C語言寫出的「貪吃蛇」小游戲中,可以自編以下這個intokey( )函數,用來獲取方向鍵值以便控制蛇梁哪的拐彎。庫函數kbhit( )是檢測是否有按鍵被按下,Dir是代表方向的變數,整型變數flag用來獲取鍵值,1、2、3、4分別表示方向的上下左右。要#include<conio.h> .
void intokey( )
{ int flag;
if ( kbhit( ) ) //判斷有鍵按下時才執行下面操作
{ flag = getch( ); //用flag來獲取鍵值
if (flag==224) flag = getch( ); //值為224是方向鍵,要再次獲取才行
if (flag==72 && dir != 2) dir = 1; //方向鍵為「上」且原方向不為下時,讓dir=1.
if (flag==80 && dir != 1) dir = 2; //方廳喊向鍵為「下」且原方向不為上時,讓dir=2.
if (flag==75 && dir != 4) dir = 3; //方向鍵為「左」且原方向不為右時,讓dir=3.
if (flag==77 && dir != 3) dir = 4; //方向鍵為「右」且原方向不為左時,讓dir=4.
}
}
註:上下左右鍵按下後都會產生2個值,第一個是224,第二個才分別是72、80、75和
77.所以要用庫函數getch( )兩次獲取鍵值。如果是ASDW來控制拐彎,flag可以定義為
字元型,獲取一次鍵橡伏碼值即可。
⑤ vb中如何獲得鍵盤方向鍵的鍵值
將窗體KeyPreview屬性設置為True並對Form_KeyDown事件編程,可以獲取鍵盤箭頭鍵的鍵值。實現方法如下:
OptionExplicit
PrivateSubForm_Load()
'允許窗體攔截鍵盤按鍵
Me.KeyPreview=True
EndSub
PrivateSubForm_KeyDown(KeyCodeAsInteger,ShiftAsInteger)
'KeyCode鍵盤碼是鍵盤上每個按鍵的唯一編碼逗脊
'在VB中,符號常數表示鍵盤碼,例如vbKeyF1表示F1鍵,
'vbKeyHome表示HOME鍵……
侍汪SelectCaseKeyCode
CasevbKeyLeft:Print"左箭頭鍵值:"+CStr(KeyCode)
CasevbKeyRight:Print"右箭頭鍵值:"+CStr(KeyCode)
CasevbKeyUp:Print"上老指仔箭頭鍵值:"+CStr(KeyCode)
CasevbKeyDown:Print"下箭頭鍵值:"+CStr(KeyCode)
EndSelect
EndSub
⑥ c語言中getch() 怎麼用
getch()這個函數是一個不回顯函數,當用戶按下某個字元時,函數自動讀取,無需按回車。
所在頭文件:conio。
函數用途:從控制台讀取一個字元,但不顯示在屏幕上。
函數原型:int getch(void)。
返回值:讀取的字元。
(6)程序如何讀取方向鍵的值擴展閱讀:
getch()使用時易錯點:
1、所在頭文件是conio。而不是stdio。
2、在使用之前要調用initscr(),結束時要調用endwin()。否則會出現不輸入字元這個函數
也會返回的情況。
3、在不同平台,輸入回車,getch()將返回不同數值。windows平台下ENTER鍵會產生兩個轉義字元
,因此getch返回13。unix、 linux系統中ENTER鍵只產生
,因此getch返回10。
4、getch(皮鋒攔)並基塌非標准C中的函數,不存在C語言中,所以在使用的時候要注意程序的可移植性。getch函數在讀取一個功能鍵或者箭頭(方向)鍵盤時,函數會返回兩次,第一次調用返回0或者0xE0,第二次調用返回實際的鍵值。
⑦ c#控制台應用程序怎麼獲取鍵盤上的上下左右鍵
直接上代碼,如下巧或
public static void Main(String[] args)
{
bool tag = true;
do
{
ConsoleKeyInfo info = Console.ReadKey();
switch (info.Key)
{
case ConsoleKey.E:
Console.WriteLine("埋皮exit");
tag = false;
break;
case ConsoleKey.UpArrow:
Console.WriteLine("Up");
break;
case ConsoleKey.DownArrow:
Console.WriteLine("Down");
break;
case ConsoleKey.LeftArrow:
Console.WriteLine("Left");
break;
case ConsoleKey.RightArrow:
Console.WriteLine("彎寬差Right");
break;
default:
Console.WriteLine(info.Key);
break;
}
} while (tag);
Console.Read();
}
⑧ C語言獲取按鍵信息函數
這個程鋒轎序應該滿足你的要求吧。
#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;
}
⑨ C#中如何獲取方向鍵
重寫ProcessCmdKey事件就可以獲取到方向鍵,代碼如下:
(refMessagemsg,KeyskeyData)
{
label1.Text=keyData.ToString();
returnbase.ProcessCmdKey(refmsg,keyData);
}
效果如下:
說明:
Control.ProcessCmdKey 方法
參數
msg
類型:System.Windows.Forms.Message%
通過引用傳遞的 Message,它表示要處理的窗口消息。
keyData
類型:System.Windows.Forms.Keys
Keys 值之一,它表示要處理的鍵。
返回值
類型:System.Boolean
如果字元已由控制項處理,則為 true;否則為 false。
備注
在消息預處理過程中調用此方法,以處理命令鍵。 命令鍵是始終比常規輸入鍵具有優先權的鍵。 命令鍵的示例包括快捷鍵和菜單快捷方式。 此方法必須返回 true,以指示它已經處理完命令鍵,或者 false,以指示該鍵不是命令閉輪租鍵。 僅當控制項承載在 Windows 窗體應用程序中或充當 ActiveX 控制項時,才調用此方法。
ProcessCmdKey 方法首先確定控制項是否有 ContextMenu,如果有,則允許 ContextMenu 處理命令鍵。 如果命令鍵不是菜單快捷方式,且控制項有父級,那麼該鍵傳遞到父級的 ProcessCmdKey 方法。 凈效果是命令鍵在控制項層次結構中向上「冒」。 除了用戶按下的鍵外,鍵數據還指示哪些(如果有的話)修改鍵與該鍵同時按下。 修改鍵包括 Shift、Ctrl 和 Alt 鍵。轎兆
對繼承者的說明
在派生類中重寫 ProcessCmdKey 方法時,控制項應返回 true 以指示它已處理該鍵。 對於未由該控制項處理的鍵,應返回桐敏調用基類的 ProcessCmdKey 方法所得的結果。 控制項很少需要重寫此方法(即使有的話)。
⑩ c語言中怎樣輸入和讀取方向鍵
在貪吃蛇中定義了扮山intokey( )函數[你也可以改成別的],整個函數體中的代碼就是獲取鍵盤的方向鍵值,倒數第2-5行是獲取回車鍵值,按下回車鍵游戲就暫停。這里用direction表示方向,程序中UP、DOWN、LEFT、RIGHT分別固定代表1、2、3、4這四個值廳盯中。第三行判斷獲得了向上的鍵值,第四行在direction不等於DOWN值(就是2)時執行 else { direction = UP; } 第(5、6);(7、8);(則岩9、10)等行的意思,與這第(3、4)行類似,只是取值不同。要包含文件 #include<conio.h> 。
void intokey()
{
if (GetAsyncKeyState(VK_UP) && 0x8000)
{ if (direction == DOWN) { } else {direction = UP; } }
if (GetAsyncKeyState(VK_DOWN) && 0x8000)
{ if (direction == UP) { } else {direction = DOWN; } }
if (GetAsyncKeyState(VK_RIGHT) && 0x8000)
{ if (direction == LEFT) { } else {direction = RIGHT; } }
if (GetAsyncKeyState(VK_LEFT) && 0x8000)
{ if (direction == RIGHT) { } else {direction = LEFT; } }
if (GetAsyncKeyState(VK_RETURN) && 0x0D)
{ while (1)
{ if (GetAsyncKeyState(VK_RETURN) && 0x0D) { break; } }
}
}