RegisterHotKey(m_hWnd,1001,MOD_CONTROL|MOD_ALT,VK_F1);为什么不行?
RegisterHotKey(m_hWnd,1001,MOD_CONTROL|MOD_ALT,'S');这样又可以哦!!!

解决方案 »

  1.   

    BOOL RegisterHotKey(
      HWND hWnd,         // window to receive hot-key notification
      int id,            // identifier of hot key
      UINT fsModifiers,  // key-modifier flags
      UINT vk            // virtual-key code
    );
    vk 
    Specifies the virtual-key code of the hot key.//RegisterHotKey fails if the keystrokes specified for the hot key have already been registered by another hot key. 
      

  2.   

    这个注册的是程序热键,不是全局热键,全局热键就只能一个程序注册,比如QQ的CTRL+ALT+Z提取信息,这是全局热键,不管你程序是不是活动窗口都可以,程序热键只能是当程序是活动窗口时才起作用。
      

  3.   

    这个注册的就是全局快捷键,你的问题可能是Ctrl和F1可能不能组合使用
      

  4.   

    真是误人子弟了,RegisterHotKey也是注册全局快捷键的函数,但必须在这之前用GlobalAddAtom分配一个id。
    RegisterHotKey的时候不能id值相同,这个id值作为WM_HOTKY的WPARAM差数传递的,估计是你的后面个RegisterHotKey的id把前面的RegisterHotKey的id覆盖了。
    ATOM id;
    id = GlobalAddAtom("Hotkey_123");
    RegisterHotKey(handle, id, MOD_CONTROL|MOD_ALT, VK_F1);
    销毁窗口的时候最好GlobalDeleteAtom删除注册的原子
      

  5.   

    必须在这之前用GlobalAddAtom分配一个id
    最好用GlobalAddAtom分配一个id,不是必须
    居然不能编辑帖子,郁闷~~
      

  6.   

    不是啊,我都试过啦,
    RegisterHotKey(m_hWnd,1001,MOD_CONTROL|MOD_ALT,VK_F1);  就是把VK换成F1至F12都不行
      

  7.   

    RegisterHotKey(m_hWnd,1001,MOD_CONTROL|MOD_ALT,VK_F1)
    我是说你的这个id为1001不能重复,id值作为WM_HOTKEY的WPARAM值传递给程序,进行热键识别的标示,我认为你的程序是不是RegisterHotKey(m_hWnd,1001,MOD_CONTROL|MOD_ALT,VK_F1);RegisterHotKey(m_hWnd,1001,MOD_CONTROL|MOD_ALT,'S');这两句都执行了,你把它们顺序交换下就清楚了,我这里没问题的啊。我也是RegisterHotKey(m_hWnd, 1001, MOD_CONTROL|MOD_ALT, VK_F1);可以的啊,你需要的话我可以把我的程序给你。
      

  8.   

    RegisterHotKey(m_hWnd,1001,MOD_CONTROL|MOD_ALT,VK_F1)  如何知道我这个ID1001有不有注册来热键?是用UnRegisterHotKey取消指定的ID热键吗?