PDA

View Full Version : Không lấy dc key mũi tên từ bàn phím



Khuong93
21-12-2011, 10:50 AM
Mình đang tìm cách lấy key của 4 mũi tên từ bàn phím nhằm phục vụ cho chương trình mình đang viết.
Tuy nhiên mình vẫn chưa tìm đc cách lấy key từ nó

Mình đã tham khảo 1 số topic trong diễn đàn.Mặc dù biết là key mũi tên phải cần 2 dùng lần lệnh
c=getch().Mình đã làm theo,built ko lỗi,nhưng khi run thì khi bấm phím mũi tên thì con trỏ trên màn hình ko di chuyển theo ý muốn của mình.

Sau đây là đoạn code thử nghiệm của mình

Mục đích của code này là lấy key mũi tên từ bàn phím.Nếu là 1 trong các key đó thì đưa con trỏ tới tọa độ (5,5) trên màn hình và in chữ "Khuong" tại đó



#include <stdio.h>
#include <conio.h>
#include <Windows.h>


void gotoxy(short x, short y);
void gotoxy(short x, short y)
{
HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE);
COORD pos;
pos.X=x-1;
pos.Y=y-1;
SetConsoleCursorPosition(hCon, pos);
}


void main()
{
char c;
do
{
c=getch();
if(c==0) // Không biết chỗ này có đúng ko,có ngừoi thì bảo là 224,nhưng mình đổi thành 224 cũng ko dc
{
c=getch();
if(c==75||c==77||c==72||c==80) // mã ASCII của các phím mũi tên
{
gotoxy(5,5);
printf("Khuong");
}
}
}while(c!=27); //27 là mã ASCII của phím ESC
}


Mong nhận được reply giúp đỡ sớm từ ae ạ :)

pkthanh92
21-12-2011, 02:59 PM
đỗi biến c từ kiểu char về kiểu int

thay c==0 bằng c==224

Khuong93
31-12-2011, 10:59 AM
Nghe anh langmang bên topic khác nói là win32 bit,win64bit,winXP có cách lấy tương tự nhưng khác cái số dc getch() đầu tiên,có ai biết tại sao ko ạ?

VoTichSu
13-01-2012, 02:10 PM
Sợ mấy bố thụ động này thật. Muốn biết trị nó lấy được ra sao thì cứ việc bảo nó in ra. Sau khi biết trị nó thâu được rồi thì thử tới thử lui một chút sẽ tìm được đáp án.