如何得知鍵盤上的 Shift、Ctrl、Alt 鍵 KeyUp? |
答題得分者是:RaynorPao
|
phototin
初階會員 發表:13 回覆:30 積分:29 註冊:2002-06-15 發送簡訊給我 |
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 發送簡訊給我 |
引言: 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 發送簡訊給我 |
無敵秘技!
任何時候都可以知道有沒有按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 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |