基本介紹
- 中文名:ToAscii
- Windows NT:3.1及以上版本
- Windows:95及以上版本
- Wiodows CE:不支持
函式功能,簡介,
函式功能
簡介
函式原型:int ToAscii(UINT uVirtKey,UINT uScanCode,PBYTE lpKeyState,LPWORD lpChar,UINT uFlags);
參數:
nVirtkey:指定要翻譯的虛擬鍵碼。
uScanCode:定義被翻譯鍵的硬體掃描碼。若該鍵處於up狀態,則該值的最高位被設定。
LpKeyState:指向包含當前鍵盤狀態的一個256位元組數組。數組的每個成員包含一個鍵的狀態。若某位元組的最高位被設定,則該鍵處於down狀態。若最低位被設定,則表明該鍵被觸發。在此函式中,僅有capslock鍵的觸發位是相關的。NumloCk和scroll loCk鍵的觸髮狀態將被忽略。
LpChar:指向接受翻譯所得字元或字元串的緩衝區。
UFlags:定義一個選單是否處於激活狀態。若一選單是活動的,則該參數為1,否則為0。
返回值:若定義的鍵為死鍵,則返回值為負值。否則,返回值應為如下的值:
O:對於當前鍵盤狀態,所定義的虛擬鍵沒有翻譯。
1:一個字元被拷貝到緩衝區。
2:兩個字元被拷貝到緩衝區。當一個存儲在鍵盤布局中的死鍵(重音或雙音字元)無法與所定義的虛擬鍵形成一個單字元時,通常會返回該值。
備註:若鍵盤布局中原先存放了一個死鍵,則提供給ToAscii函式的參數可能不足以翻譯虛擬鍵碼。
典型地,ToAscii函式執行基於虛擬鍵碼的翻譯。然而,在某些情況下,uScanCode參數的第15位可能被用來區分一個鍵的按下狀態和釋放狀態。掃描碼用於翻譯Alt+數字鍵的鍵組合。
儘管NUMLOCK事實影響鍵盤狀態的觸發鍵,TOAscii將忽略lpKeyState的觸發設定(VK_NUMLOCK),因為僅uVirtKey參數就足以區分游標移動鍵(VL_HOME,INSERT,等等)和數字鍵(VK_DECIMAL,VK_NUMPADO_VK_NUMPAD9)。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Wiodows CE:不支持;頭檔案:Winuser.h;庫檔案:user32.lib。
int toascii(int c)
把c最高位捨去, 轉換成7bit的unsigned char 類型使它符合ASCII表。