線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1909
推到 Plurk!
推到 Facebook!

如何得知鍵盤上的 Shift、Ctrl、Alt 鍵 KeyUp?

答題得分者是:RaynorPao
phototin
初階會員


發表:13
回覆:30
積分:29
註冊:2002-06-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-10-28 02:32:58 IP:61.216.xxx.xxx 未訂閱
void __fastcall TForm1::Edit1KeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { if (Shift.Contains(ssShift)) Label1->Caption = "Key Shift Down..."; } //------------------------------------------------------------------- void __fastcall TForm1::Edit1KeyUp(TObject *Sender, WORD &Key, TShiftState Shift) { if (Shift.Contains(ssShift)) Label1->Caption = "Key Shift Up..."; } //------------------------------------------------------------------- 我的程式碼如上,不過, 在 Shift 鍵 KeyUp 時,卻沒有使 Label1 顯示成 Key Shift Up..., 請問,該如何得知鍵盤上的 Shift、Ctrl、Alt 鍵 KeyUp? (ps.希望能在 KeyUp 事件中簡單的達成,不要使用到 hook 技術!) 又麻煩大家了,謝謝幫忙!
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-10-28 08:32:04 IP:203.73.xxx.xxx 未訂閱
引言: void __fastcall TForm1::Edit1KeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { if (Shift.Contains(ssShift)) Label1->Caption = "Key Shift Down..."; } //------------------------------------------------------------------- void __fastcall TForm1::Edit1KeyUp(TObject *Sender, WORD &Key, TShiftState Shift) { if (Shift.Contains(ssShift)) Label1->Caption = "Key Shift Up..."; } //------------------------------------------------------------------- 我的程式碼如上,不過, 在 Shift 鍵 KeyUp 時,卻沒有使 Label1 顯示成 Key Shift Up..., 請問,該如何得知鍵盤上的 Shift、Ctrl、Alt 鍵 KeyUp? (ps.希望能在 KeyUp 事件中簡單的達成,不要使用到 hook 技術!) 又麻煩大家了,謝謝幫忙!
改成這樣試試看吧 < class="code"> void __fastcall TForm1::Edit1KeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { if(Key==VK_SHIFT) Label1->Caption="Key Shift Down..."; } //------------------------------------------------------------------- void __fastcall TForm1::Edit1KeyUp(TObject *Sender, WORD &Key, TShiftState Shift) { if(Key==VK_SHIFT) Label1->Caption="Key Shift Up..."; } //-------------------------------------------------------------------
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
lcsboy
版主


發表:87
回覆:622
積分:394
註冊:2002-06-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-10-28 13:01:56 IP:211.23.xxx.xxx 未訂閱
無敵秘技! 任何時候都可以知道有沒有按Alt, Ctrl, Shift    使用GetKeyState這個API, 如果那個Key被按下會傳回小於0的值 Ex:    if (GetKeyState(VK_MENU) < 0) ShowMessage("Alt is pressed"); if (GetKeyState(VK_CONTROL) < 0) ShowMessage("Ctrl is pressed"); if (GetKeyState(VK_SHIFT) < 0) ShowMessage("Shift is pressed");    
phototin
初階會員


發表:13
回覆:30
積分:29
註冊:2002-06-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-10-28 18:04:32 IP:61.224.xxx.xxx 未訂閱
非常感謝你們,RaynorPao、lcsboy!
系統時間:2024-04-26 15:12:00
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!