怎麼讓程式知道你按了上下左右 |
答題得分者是:gemi0305
|
derekyppp
一般會員 ![]() ![]() 發表:16 回覆:33 積分:9 註冊:2004-02-20 發送簡訊給我 |
怎麼讓程式知道你按了上下左右 這是我在別的討論板找到的方法 可是實作出來><" 都沒有反應耶…
void __fastcall TForm1::FormShortCut(TWMKey &Msg, bool &Handled) { if(GetKeyState(VK_UP) & 0x8000) { Label1->Caption="按了上"; } if(GetKeyState(VK_LEFT) & 0x8000) { Label1->Caption="按了左"; } if(GetKeyState(VK_RIGHT) & 0x8000) { Label1->Caption="按了右"; } if(GetKeyState(VK_DOWN) & 0x8000) { Label1->Caption="按了下"; } } |
jazz
初階會員 ![]() ![]() 發表:10 回覆:43 積分:35 註冊:2002-06-15 發送簡訊給我 |
在程式放一個TApplicationEvent物件
然後
void __fastcall TfrmMain::ApplicationEvents1Message(tagMSG &Msg, bool &Handled) { if (Msg.message == WM_KEYDOWN){ if (HIBYTE(::GetKeyState(VK_UP)) && !HIBYTE(::GetKeyState(VK_DOWN))) BtnMainRear->Color = clBlue; else if (!HIBYTE(::GetKeyState(VK_UP)) && HIBYTE(::GetKeyState(VK_DOWN))) BtnMainFront->Color = clBlue; if (HIBYTE(::GetKeyState(VK_LEFT)) && !HIBYTE(::GetKeyState(VK_RIGHT))) BtnMainLeft->Color = clBlue; else if (!HIBYTE(::GetKeyState(VK_LEFT)) && HIBYTE(::GetKeyState(VK_RIGHT))) BtnMainRight->Color = clBlue; } else if (Msg.message == WM_KEYUP){ if (Msg.wParam == VK_UP || Msg.wParam == VK_DOWN){ BtnMainRear->Color = clYellow; BtnMainFront->Color = clYellow; } if (Msg.wParam == VK_LEFT || Msg.wParam == VK_RIGHT){ BtnMainLeft->Color = clYellow; BtnMainRight->Color = clYellow; } } } |
folkchen
高階會員 ![]() ![]() ![]() ![]() 發表:9 回覆:232 積分:173 註冊:2003-10-09 發送簡訊給我 |
|
gemi0305
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:81 回覆:564 積分:629 註冊:2003-05-11 發送簡訊給我 |
試試看~
void __fastcall TForm1::FormshortCut(TWMKey &Msg, bool &Handled) { if(Msg.Result) switch(Msg.CharCode) { case VK_LEFT: ShowMessage("VK_LEFT"); break; case VK_UP: ShowMessage("VK_UP"); break; case VK_RIGHT: ShowMessage("VK_RIGHT"); break; case VK_DOWN: ShowMessage("VK_DOWN"); break; } } |
derekyppp
一般會員 ![]() ![]() 發表:16 回覆:33 積分:9 註冊:2004-02-20 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |