debug.print cint("&H10"),返回16 
debug.print "&H" & hex(16),返回 "&H10"

解决方案 »

  1.   

    Print Chr(&H41)
    Print Chr(&HC4E3)
      

  2.   

    debug.print (clng("&Hc4") * 256 + clng("&He3") *1)-65536
    返回-15133 ,等于asc("你")
    也就是说,debug.print chr((clng("&Hc4") * 256 + clng("&He3") *1)-65536),返回“你”
      

  3.   

    如金山游俠弹出效果?这是个比较复杂的DirectDraw编程问题!有难度?
      

  4.   

    汉字字符和Byte数组相互转换:    Dim s As String
        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
      

  5.   

    第二个问题,可以用setwindowpos API函数实现,代码如下:
    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
      

  6.   

    设置一个热键到你的第二个程序的快捷方式(在快捷方式的属性对话框里可以设置快捷键),运行你的程序,在你的程序的Form_Load过程中执行上面的代码,示例如下:
    onatop me
    即可!
      

  7.   

    1.用 RegisterHotKey
    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