首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

为什么小键盘0到10不能正确显示?解决办法

2012-01-12 
为什么小键盘0到10不能正确显示?标准计算机键盘(101/102),我用低级键盘钩子获取右边小键盘的0到10的值为什

为什么小键盘0到10不能正确显示?
标准计算机键盘(101/102),我用低级键盘钩子获取右边小键盘的0到10的值为什么不能正确显示在窗口?而实际显示的是 'abcdefghi

左边键盘0~10十六进制是:&H30   To   &H39
     A~Z十六进制是:   &H41   To   &H5A
小键盘十六进制是如下代码中所示(&H60   To   &H69),不知道有没有错?实际结果显示在窗体里面form.txtSS.Text的不是0-10!而是 'abcdefghi!


Public   Function   LowLevelKeyboardProc(ByVal   ncode   As   Long,   ByVal   wParam   As   Long,   ByVal   lParam   As   Long)   As   Long  

Dim   p   As   PKBDLLHOOKSTRUCT
Dim   strKey   As   String

If   ncode   =   HC_ACTION   Then
        Select   Case   wParam
                Case   WM_KEYDOWN
                        CopyMemory   p,   ByVal   lParam,   Len(p)                      
                        If   p.VKCode   >   0   And   p.VKCode   <   &H92   Then                        
                                Select   Case   p.VKCode
                                      Case   VK_RETURN
                                            'strKey   =   strKey   &   "{Return} "        
                                      Case   &H60   To   &H69,   &H30   To   &H39,   &H41   To   &H5A   'oct       八进制         dec   十进制       Hex   十六进制
                                              strKey   =   strKey   &   Chr(p.VKCode)
                                     
                                      Case   Else
                                              'do   nothing
                                End   Select
                                form.txtSS.Text   =   form.txtSS.Text   &   strKey
                        End   If
                       
                Case   Else
                        'do   nothing


        End   Select
End   If

CallNextHookEx   WH_KEYBOARD_LL,   ncode,   wParam,   lParam

If   p.VKCode   =   VK_RETURN   Then
      strSN   =   Trim(form.txtSS)
      form.txtSS.Text   =   " "
End   If

End   Function

[解决办法]
//小键盘十六进制是如下代码中所示(&H60 To &H69),不知道有没有错?
没错

//实际结果显示在窗体里面form.txtSS.Text的不是0-10!而是 'abcdefghi!

很正常,你程序中显示的是 Chr(p.VKCode), Chr(&H60)-Chr(&H69),可不就是`abcdefghi吗

热点排行