debug.print cint("&H10"),返回16
debug.print "&H" & hex(16),返回 "&H10"
debug.print "&H" & hex(16),返回 "&H10"
解决方案 »
- 关于ADODC控件对ACCESS数据库查询问题
- vb MSFlexGrid1问题
- **百分询问** MDIFORM的窗口切换问题
- 如何用VB通过API写串口通信
- DBGrid中怎么实现自动筛选功能
- 关于VB+SQl2000酒店管理系统房态模块设计和制作遇到的问题,动态右键菜单以及分行显示动态数组控件(作为房间的按钮控件)
- 那位 GG or JJ 能帮我把c++ 的程序翻译成 vb 的啊?急用!
- 关于SQL语法!!
- datagrid,msflexgrid,mshflexgird的不同?
- 请问:数组在索引'0'已经有控件?
- 关于mscomm的发送接收的问题******急急急******150分求教,分数不够还可以在加*****在线等候*******
- 如何实现子窗体不隐藏的问题。
Print Chr(&HC4E3)
返回-15133 ,等于asc("你")
也就是说,debug.print chr((clng("&Hc4") * 256 + clng("&He3") *1)-65536),返回“你”
Dim c() As Byte
Dim i
'转换汉字到Byte数组
c = StrConv("你", vbFromUnicode)
For i = LBound(c) To UBound(c)
Debug.Print c(i)
Next i
'转换Byte数组到汉字
s = Chr(196 * (2 ^ 8) + 227)
Debug.Print s
Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
' SetWindowPos Flags
Public Const SWP_NOSIZE = &H1
Public Const SWP_NOMOVE = &H2
Public Const SWP_NOZORDER = &H4
Public Const SWP_NOREDRAW = &H8
Public Const SWP_NOACTIVATE = &H10
Public Const SWP_FRAMECHANGED = &H20 ' The frame changed: send WM_NCCALCSIZE
Public Const SWP_SHOWWINDOW = &H40
Public Const SWP_HIDEWINDOW = &H80
Public Const SWP_NOCOPYBITS = &H100
Public Const SWP_NOOWNERZORDER = &H200 ' Don't do owner Z ordering' SetWindowPos() hwndInsertAfter values
Public Const HWND_TOPMOST = -1
Public Const HWND_noTOPMOST = -2
Public Const HWND_TOP = 0
Public Const HWND_Bottom = 1
Public Sub OnaTop(myFrm As Form)
Dim MyInfo
'MyInfo = SetWindowPos(myFrm.hwnd, HWND_TOPMOST, 0, 0, 0, 0, 3)
MyInfo = SetWindowPos(myFrm.hwnd, HWND_TOPMOST, 0, 0, 0, 0, 3) '我的理解:3= SWP_NOMOVE + SWP_NOSize
End Sub
onatop me
即可!
Option Explicit
Private Sub Form_Load()
PrevProc = SetWindowLong(Me.hwnd, GWL_WNDPROC, AddressOf WindowProc)
isLoad =True
RegisterHotKey Me.hwnd, 10, vbCtrlMask, vbKeyA '10为ID,只要自己程序中没有相同的就可以了。
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
isLoad = False
UnregisterHotKey Me.hwnd, 10 '撤消注册
SetWindowLong Me.hwnd, GWL_WNDPROC, PrevProc
End Sub
以上在Form部分
----------------------------------------
以下在公用Mod部分
Public Const WM_HOTKEY = &H312
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Function RegisterHotKey Lib "user32" (ByVal hwnd As Long, ByVal id As Long, ByVal fsModifiers As Long, ByVal vk As Long) As Long
Public Declare Function UnregisterHotKey Lib "user32" (ByVal hwnd As Long, ByVal id As Long) As Long
Public Const GWL_WNDPROC = (-4)
Public PrevProc As Long
Option Explicit
Public Function WindowProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
WindowProc = CallWindowProc(PrevProc, hwnd, uMsg, wParam, lParam)
If uMsg = WM_HOTKEY And isLoad = True And wParam = 10 Then
MsgBox "热键"
End If
End Function
--------------------------------------------
2.用SendMessage,注意!只能注册一个热键!
Option Explicit
Private Sub Form_Load()
PrevProc = SetWindowLong(Me.hwnd, GWL_WNDPROC, AddressOf WindowProc)
isLoad =True
SendMessage Me.hwnd, WM_SETHOTKEY, &H24B, 0 '&H24B 的高位为VbCtrlMask的&H2,低位为VbKeyK的&H24B。
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
isLoad = False
SetWindowLong Me.hwnd, GWL_WNDPROC, PrevProc
End Sub
以上在Form部分
-------------------------------------------------
以下在公用Mod部分
Public Const WM_SETHOTKEY = &H32
Public Const WM_SYSCOMMAND = &H112
Public Const SC_HOTKEY = &HF150&
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Const GWL_WNDPROC = (-4)
Public PrevProc As Long
Option Explicit
Public Function WindowProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
WindowProc = CallWindowProc(PrevProc, hwnd, uMsg, wParam, lParam)
If uMsg = WM_SYSCOMMAND And isLoad = True And wParam = SC_HOTKEY Then
MsgBox "热键"
End If
End Function