小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

二、Windows 按鍵消息

 bubbi7 2017-01-18

  虛擬鍵碼保存在 WM_KEYDOWN、WM_KEYUP、WM_SYSKEYDOWN 和 WM_SYSKEYUP 消息的 wParam 參數(shù)中。此代碼標(biāo)識(shí)按下或釋放的鍵。

哈,又是「虛擬」,您喜歡這個(gè)詞嗎?虛擬指的是假定存在于思想中而不是現(xiàn)實(shí)世界中的一些事物,也只有熟練使用 DOS 匯編語言編寫應(yīng)用程序的程序?qū)懽髡卟庞锌赡苤赋?,為什么?Windows 鍵盤處理如此基本的鍵碼是虛擬的而不是真實(shí)的。

對于早期的程序?qū)懽髡邅碚f,真實(shí)的鍵碼由實(shí)際鍵盤硬件產(chǎn)生。在 Windows 文件中將這些鍵碼稱為「掃描碼 (scan codes)」。在 IBM 兼容機(jī)種上,掃描碼 16 是 Q 鍵,17 是 W 鍵,18 是 E、19 是 R,20 是 T,21 是 Y 等等。這時(shí)您會(huì)發(fā)現(xiàn),掃描碼是依據(jù)鍵盤的實(shí)際布局的。Windows 開發(fā)者認(rèn)為這些代碼過于與設(shè)備相關(guān)了,于是他們試圖通過定義所謂的虛擬鍵碼,以便經(jīng)由與設(shè)備無關(guān)的方式處理鍵盤。其中一些虛擬鍵碼不能在 IBM 兼容機(jī)種上產(chǎn)生,但可能會(huì)在其它制造商生產(chǎn)的鍵盤中找到,或者在未來的鍵盤上找到。

您使用的大多數(shù)虛擬鍵碼的名稱在 WINUSER.H 表頭文件中都定義為以 VK_開頭。表 6-2 列出了這些名稱和數(shù)值(十進(jìn)制和十六進(jìn)制),以及與虛擬鍵相對應(yīng)的 IBM 兼容機(jī)種鍵盤上的鍵。下表也標(biāo)出了 Windows 執(zhí)行時(shí)是否需要這些鍵。下表還按數(shù)字順序列出了虛擬鍵碼。

前四個(gè)虛擬鍵碼中有三個(gè)指的是鼠標(biāo)鍵:

表 6-2

十進(jìn)制

十六進(jìn)制

WINUSER.H 標(biāo)識(shí)符

必需?

IBM 兼容鍵盤

1

01

VK_LBUTTON

 

鼠標(biāo)左鍵

2

02

VK_RBUTTON

 

鼠標(biāo)右鍵

3

03

VK_CANCEL

ˇ

Ctrl-Break

4

04

VK_MBUTTON

 

鼠標(biāo)中鍵

您永遠(yuǎn)都不會(huì)從鍵盤消息中獲得這些鼠標(biāo)鍵代碼。在下一章可以看到,我們能夠從鼠標(biāo)消息中獲得它們。VK_CANCEL 代碼是一個(gè)虛擬鍵碼,它包括同時(shí)按下兩個(gè)鍵 (Ctrl-Break)。Windows 應(yīng)用程序通常不使用此鍵。

表 6-3 中的鍵 --Backspace、Tab、Enter、Escape 和 Spacebar-通常用于 Windows 程序。不過,Windows 一般用字符消息(而不是鍵盤消息)來處理這些鍵。

表 6-3

十進(jìn)制

十六進(jìn)制

WINUSER.H 標(biāo)識(shí)符

必需?

IBM 兼容鍵盤

8

08

VK_BACK

ˇ

Backspace

9

09

VK_TAB

ˇ

Tab

12

0C

VK_CLEAR

 

Num Lock 關(guān)閉時(shí)的數(shù)字鍵盤 5

13

0D

VK_RETURN

ˇ

Enter (或者另一個(gè))

16

10

VK_SHIFT

ˇ

Shift (或者另一個(gè))

17

11

VK_CONTROL

ˇ

Ctrl (或者另一個(gè))

18

12

VK_MENU

ˇ

Alt (或者另一個(gè))

19

13

VK_PAUSE

 

Pause

20

14

VK_CAPITAL

ˇ

Caps Lock

27

1B

VK_ESCAPE

ˇ

Esc

32

20

VK_SPACE

ˇ

Spacebar

另外,Windows 程序通常不需要監(jiān)視 Shift、Ctrl 或 Alt 鍵的狀態(tài)。

表 6-4 列出的前八個(gè)碼可能是與 VK_INSERT 和 VK_DELETE 一起最常用的虛擬鍵碼:

表 6-4

十進(jìn)制

十六進(jìn)制

WINUSER.H 標(biāo)識(shí)符

必需?

IBM 兼容鍵盤

33

21

VK_PRIOR

ˇ

Page Up

34

22

VK_NEXT

ˇ

Page Down

35

23

VK_END

ˇ

End

36

24

VK_HOME

ˇ

Home

37

25

VK_LEFT

ˇ

左箭頭

38

26

VK_UP

ˇ

上箭頭

39

27

VK_RIGHT

ˇ

右箭頭

40

28

VK_DOWN

ˇ

下箭頭

41

29

VK_SELECT

   

42

2A

VK_PRINT

   

43

2B

VK_EXECUTE

   

44

2C

VK_SNAPSHOT

 

Print Screen

45

2D

VK_INSERT

ˇ

Insert

46

2E

VK_DELETE

ˇ

Delete

47

2F

VK_HELP

   

注意,許多名稱(例如 VK_PRIOR 和 VK_NEXT)都與鍵上的標(biāo)志不同,而且也與滾動(dòng)條中的標(biāo)識(shí)符不統(tǒng)一。Print Screen 鍵在平時(shí)都被 Windows 應(yīng)用程序所忽略。Windows 本身響應(yīng)此鍵時(shí)會(huì)將視訊顯示的位圖影本存放到剪貼板中。假使有鍵盤提供了 VK_SELECT、VK_PRINT、VK_EXECUTE 和 VK_HELP,大概也沒幾個(gè)人看過那樣的鍵盤。

Windows 也包括在主鍵盤上的字母和數(shù)字鍵的虛擬鍵碼(數(shù)字鍵盤將單獨(dú)處理)。

表 6-5

十進(jìn)制

十六進(jìn)制

WINUSER.H 標(biāo)識(shí)符

必需?

IBM 兼容鍵盤

48-57

30-39

ˇ

主鍵盤上的 0 到 9

65-90

41-5A

ˇ

A 到 Z

注意,數(shù)字和字母的虛擬鍵碼是 ASCII 碼。Windows 程序幾乎從不使用這些虛擬鍵碼;實(shí)際上,程序使用的是 ASCII 碼字符的字符消息。

表 6-6 所示的代碼是由 Microsoft Natural Keyboard 及其兼容鍵盤產(chǎn)生的:

表 6-6

十進(jìn)制

十六進(jìn)制

WINUSER.H 標(biāo)識(shí)符

必需?

IBM 兼容鍵盤

91

5B

VK_LWIN

 

左 Windows 鍵

92

5C

VK_RWIN

 

右 Windows 鍵

93

5D

VK_APPS

 

Applications 鍵

Windows 用 VK_LWIN 和 VK_RWIN 鍵打開「開始」菜單或者(在以前的版本中)啟動(dòng)「工作管理員程序」。這兩個(gè)都可以用于登錄或注銷 Windows(只在 Microsoft Windows NT 中有效),或者登錄或注銷網(wǎng)絡(luò)(在 Windows for Applications 中)。應(yīng)用程序能夠通過顯示輔助信息或者當(dāng)成快捷方式鍵看待來處理 application 鍵。

表 6-7 所示的代碼用于數(shù)字鍵盤上的鍵(如果有的話):

表 6-7

十進(jìn)制

十六進(jìn)制

WINUSER.H 標(biāo)識(shí)符

必需?

IBM 兼容鍵盤

96-105

60-69

VK_NUMPAD0 到 VK_ NUMPAD9

 

NumLock 打開時(shí)數(shù)字鍵盤上的 0 到 9

106

6A

VK_MULTIPLY

 

數(shù)字鍵盤上的 *

107

6B

VK_ADD

 

數(shù)字鍵盤上的 +

108

6C

VK_SEPARATOR

   

109

6D

VK_SUBTRACT

 

數(shù)字鍵盤上的 -

110

6E

VK_DECIMAL

 

數(shù)字鍵盤上的.

111

6F

VK_DIVIDE

 

數(shù)字鍵盤上的 /

最后,雖然多數(shù)的鍵盤都有 12 個(gè)功能鍵,但 Windows 只需要 10 個(gè),而位旗標(biāo)卻有 24 個(gè)。另外,程序通常用功能鍵作為鍵盤快捷鍵,這樣,它們通常不處理表 6-8 所示的按鍵:

表 6-8

十進(jìn)制

十六進(jìn)制

WINUSER.H 標(biāo)識(shí)符

必需?

IBM 兼容鍵盤

112-121

70-79

VK_F1 到 VK_F10

ˇ

功能鍵 F1 到 F10

122-135

7A-87

VK_F11 到 VK_F24

 

功能鍵 F11 到 F24

144

90

VK_NUMLOCK

 

Num Lock

145

91

VK_SCROLL

 

Scroll Lock

另外,還定義了一些其它虛擬鍵碼,但它們只用于非標(biāo)準(zhǔn)鍵盤上的鍵,或者通常在大型主機(jī)終端機(jī)上使用的鍵。查看 / Platform SDK / User Interface Services / User Input / Virtual-Key Codes,可得到完整的列表。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多