Virtual Key code 中 , " = 的代碼為何? |
尚未結案
|
kadlac
一般會員 發表:18 回覆:30 積分:9 註冊:2004-07-23 發送簡訊給我 |
|
deity
尊榮會員 發表:90 回覆:876 積分:678 註冊:2003-05-09 發送簡訊給我 |
您好:参考http://www.iocomp.com/support/helpvcl/ioc01593.htm
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if key =VK_OEM_PLUS then //in win2000/xp // if key =187 then <--in win9x showmessage('='); end;============================ 为什么经过多年以后,得失的过程如此冷漠 ============================ |
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
kadlac 您好: 對於那些沒有預先定義過的按鍵,我們可以找鍵盤對照碼來查閱,或者自己動手做測試,您可以在任何一個含有 OnKeyDown 事件的物件中設定 OnKeyDown 事件,然後簡單的設定一行敘述,顯示出各個按鍵所對應的碼即可,您可以用 ShowMessage(Key) 的方式顯示出來,或者輸出到 Memo 物件上,例如:
void __fastcall TForm1::Memo1KeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { ShowMessage(Key); }然後您可以記下這些按鍵名稱與對應的按鍵碼,之後您就可以在 OnKeyDown 事件內做比對的動作了,例如: void __fastcall TForm1::Memo1KeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { if(Shift.Contains(ssShift) && Key == 222){ // 若為 " 鍵 ..... }else if(Key == 188){ // 若為 , 鍵 ..... }else if(Key == 187){ // 若為 = 鍵 ..... } }如果要讓程式更具可讀性,您可以將那些測得的按鍵碼自己設成巨集,例如: #define VK_EQUALMARK 0xBB #define VK_COMMA 0xBC #define VK_QUOTEMARK 0xDE 這樣子就可以用上述的 VK 值來做比對動作了。 7 天天敲鍵盤 v 時時按滑鼠 8 |
kadlac
一般會員 發表:18 回覆:30 積分:9 註冊:2004-07-23 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |