键盘消息

    技术2022-05-11  219

    处理按键和字符消息的基本规则是:如果需要读取输入到窗口的键盘字符,那么您可以处理WM_CHAR消息。如果需要读取光标键、功能键、Delete、Insert、Shift、Ctrl以及Alt键,那么您可以处理WM_KEYDOWN消息。

    表6-13

    按键

    字符代码

    产生方法

    ANSI C控制字符

    Backspace

    0x08

    Ctrl-H

    /b

    Tab

    0x09

    Ctrl-I

    /t

    Ctrl-Enter

    0x0A

    Ctrl-J

    /n

    Enter

    0x0D

    Ctrl-M

    /r

    Esc

    0x1B

    Ctrl-[

    但是Tab键怎么办?Enter、Backspace和Escape键又怎么办?传统上,这些键都产生表6-13列出的ASCII控制字符。但是在Windows中,它们也产生虚拟键码。这些键应该在处理WM_CHAR或者在处理WM_KEYDOWN期间处理吗?

    经过10年的考虑(回顾这些年来我写过的Windows程序代码),我更喜欢将Tab、Enter、Backspace和Escape键处理成控制字符,而不是虚拟键。我通常这样处理WM_CHAR:

    case WM_CHAR: //其它行程序 switch (wParam) { case '/b': // backspace //其它行程序 break ; case '/t': // tab //其它行程序 break ; case '/n': // linefeed //其它行程序 break ; case '/r': // carriage return //其它行程序 break ; default: // character codes //其它行程序 break ; } return 0 ;

    最新回复(0)