键盘消息

处理按键和字符消息的基本规则是:如果需要读取输入到窗口的键盘字符,那么您可以处理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 ;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值