Hiển thị kết quả từ 1 đến 2 / 2
  1. #1
    Tham gia
    27-02-2008
    Bài viết
    2
    Like
    0
    Thanked 0 Times in 0 Posts

    Gọi lại Form đã ẩn

    Mình viết chương trình có 1 form. Có một button HIDE làm ẩn Form đi. mình muốn hiện lại Form bằng một tổ hợp phím thì như thế nào.
    Các bạn giúp mình với, mình từ mò nên cũng gà lắm.
    Quote Quote

  2. #2
    Tham gia
    07-03-2008
    Location
    Đất thép
    Bài viết
    553
    Like
    0
    Thanked 3 Times in 2 Posts
    Bạn sử dụng đoạn code này:
    Code:
    Option Explicit
    Private Const MOD_ALT = &H1     'Phim ALT
    Private Const MOD_CONTROL = &H2 'Phim Ctrl
    Private Const MOD_SHIFT = &H4   'Phim Shift
    Private Const PM_REMOVE = &H1
    Private Const WM_HOTKEY = &H312
    Private Type POINTAPI
        x As Long
        y As Long
    End Type
    Private Type Msg
          hWnd As Long
          Message As Long
          wParam As Long
          lParam As Long
          time As Long
          pt As POINTAPI
    
    End Type
     
     Private Declare Function RegisterHotKey _
                          Lib "user32" (ByVal hWnd As Long, _
                                        ByVal id As Long, _
                                        ByVal fsModifiers As Long, _
                                        ByVal vk As Long) As Long
    
    Private Declare Function UnregisterHotKey _
                           Lib "user32" (ByVal hWnd As Long, _
                                          ByVal id As Long) As Long
    Private Declare Function PeekMessage _
                           Lib "user32" _
                          Alias "PeekMessageA" (lpMsg As Msg, _
                                                ByVal hWnd As Long, _
                                                 ByVal wMsgFilterMin As Long, _
                                                 ByVal wMsgFilterMax As Long, _
                                                 ByVal wRemoveMsg As Long) As Long
    Private Declare Function WaitMessage _
                           Lib "user32" () As Long
    
    Private bCancel As Boolean
    Private Sub ProcessMessages()
     
     Dim Message As Msg
    
     Do While Not bCancel
           WaitMessage
                 'Kiem tra neu nhan Phim Ctrl + F
         If PeekMessage(Message, Me.hWnd, WM_HOTKEY, WM_HOTKEY, PM_REMOVE) Then
            Form1.Show
         End If
         DoEvents
     Loop
    
    End Sub
    
    Private Sub Command1_Click()
        Form1.Hide
    End Sub
    
    Private Sub Form_Load()
             Dim ret As Long
             bCancel = False
             
             'Dang ky  hotkey
             ' Ta co the dang ky voi Hotkey khac bang cach:
             ' Thay MOD_CONTROL la MOD_SHIFT neu ban muon to hop phim la SHIFT +...
             ' Hay la MOD_ATL neu ATL + ...
             
              ret = RegisterHotKey(Me.hWnd, &HBFFF&, MOD_CONTROL, vbKeyF)  ' Hotkey la Ctrl + F
              Me.AutoRedraw = True
            '  Hien thi Form
              Show
              'Xu ly khi nhan Hotkey
             ProcessMessages
    End Sub
    Private Sub Form_Unload(Cancel As Integer)
            bCancel = True
             'Huy bo dang ky Hotkey
             Call UnregisterHotKey(Me.hWnd, &HBFFF&)
    End Sub
    Ở đây mình ví dụ tổ hợp phím là Ctrl + F
    Button có tên là Command1
    Form có tên là Form1.

    Chúc bạn thành công.

Bookmarks

Quy định

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
  •