Từ 1 tới 8 trên tổng số 8 kết quả

Đề tài: VC++ RegisterHotKey Đặt phím nóng cho 1 ứng dụng

  1. #1
    Ngày gia nhập
    02 2009
    Bài viết
    88

    Wink VC++ RegisterHotKey Đặt phím nóng cho 1 ứng dụng

    Mình muốn đặt phím nóng cho 1 ứng dụng bằng hàm API RegisterHotKey,nhưng không rõ khi ta kết thúc ứng dụng mà bấm phím nóng đó thì có gọi được ứng dụng nữa không???
    em thấy cái TaskManager khi kết thúc nó rồi mà ấn CTRL + ALT + Delete thì nó vẫn nhảy ra được,liệu có phải nó đã sử dụng hàm RegisterHotKey để đặt phím nóng không???
    Đã được chỉnh sửa lần cuối bởi RadiRadic : 27-02-2009 lúc 03:57 PM.

  2. #2
    Ngày gia nhập
    07 2007
    Nơi ở
    TP.HCM
    Bài viết
    199

    Bạn muốn biết nó có tác dụng sau khi close hay không thì bạn chạy thử chương trình lên, rồi thoát, sau đó nhấn hotkey mà bạn đã đăng ký, xem nó có tác dụng không là biết chứ gì. Ctrl-alt-del là 1 hotkey đặt biệt, do windows ưu tiên, bạn không thể làm như nó được đâu.

  3. #3
    Ngày gia nhập
    02 2009
    Bài viết
    88

    Bạn muốn biết nó có tác dụng sau khi close hay không thì bạn chạy thử chương trình lên, rồi thoát, sau đó nhấn hotkey mà bạn đã đăng ký, xem nó có tác dụng không là biết chứ gì. Ctrl-alt-del là 1 hotkey đặt biệt, do windows ưu tiên, bạn không thể làm như nó được đâu
    Bạn cho mình hỏi cách nào để cho chương trình chạy ẩn đi rồi đến khi cần thì bấm phím nóng là nó có thể khởi động lên được không

  4. #4
    Ngày gia nhập
    07 2007
    Nơi ở
    TP.HCM
    Bài viết
    199

    à, thì dùng hàm api RegisterHotKey như bạn nói đó, đăng ký 1 tổ hợp phím nóng, rồi cho form ẩn đi, khi nhấn tổ hợp phím thì form.show

    http://www.google.com.vn/search?hl=v...1%BA%BFm&meta=

  5. #5
    Ngày gia nhập
    02 2009
    Bài viết
    88



    Bạn giúp mình cái này có phải là phần tạo phím nóng trong MFC không,cách tạo phím nóng trong MFC làm thế nào

  6. #6
    Ngày gia nhập
    01 2008
    Nơi ở
    Gameloft Studio
    Bài viết
    294

    Mặc định VC++ RegisterHotKey Đặt phím nóng cho 1 ứng dụng

    Phím nóng thì MFC nó có trong resource rồi. Mở cái bảng Accelerator Table rồi thêm Phím nóng = ID của menu, button vào là chạy.


    Accelerator Table thêm khi run time cũng được nhưng hơi phức tạp.
    Cậu xem thêm chỗ này đi:
    http://msdn.microsoft.com/en-us/libr...ating_rt_table

  7. #7
    Ngày gia nhập
    07 2007
    Nơi ở
    TP.HCM
    Bài viết
    199

    Cái mà zcoder nói là shortcut key trong nôi bộ ứng dụng thôi (ví dụ như F5 trong VS là debug), chứ không phải hotkey toàn hệ thống. RegisterHotKey cho phép ta đặt hotkey toàn hệ thống, như là ctrl-shift để chuyển chế độ A-V của unikey đó mà.

  8. #8
    Ngày gia nhập
    02 2008
    Bài viết
    1,009

    UINT m_nIDHotKey; //khai báo ở trên lớp
    ON_MESSAGE(WM_HOTKEY, OnHotKey) //khai báo vòng lặp Message
    RegisterHotKey(m_hWnd, m_nIDHotKey, MOD_CONTROL, 'M'); //khai báo khởi tạo dialog

    Code:
    LRESULT CMyDialog::OnHotKey(WPARAM wp, LPARAM lp)
    {
          TRACE(_T("CMyDialog::OnHotKey\n"));
          if (wp==m_nIDHotKey && !IsWindowVisible()) {
                ShowWindow(SW_SHOWNORMAL);
          }
          return 0;
    }
    Attached Files Attached Files

Quyền hạn của bạn

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