注册多个热键,功能总是一样的,怎么使第二个注册的热键功能和第一个不一样..我是这么重写WndProc的,这样多个热键只能实现一种功能
 protected override void WndProc(ref Message m)
        {
            const int WM_HOTKEY = 0x0312;
                switch (m.Msg)
                {
                    case WM_HOTKEY:
                        ……
                        break;
                }
                base.WndProc(ref m);
        }

解决方案 »

  1.   

      protected override void WndProc(ref Message m)        
            {
              const int WM_HOTKEY = 0x0312;         
                switch (m.Msg)
                {
                    case WM_HOTKEY: ProcessHotkey(m);                 
                        break;
                } base.WndProc(ref m);      
            }        private void ProcessHotkey(Message m)         
            {
                IntPtr id = m.WParam; 
                  int sid = (int)id;
                switch (sid)
                {
                    case 310: ;
                        break;
                    case 311: 
                        break;
                    case 312:
                        break;
                }
            }
      

  2.   

    protected override void WndProc(ref Message m)
      {
      const int WM_HOTKEY = 0x0312;
      switch (m.Msg)
      {
      case WM_HOTKEY:
               if (m.WParam.ToString().Equals(ID))
      ……
      break;
      }
      base.WndProc(ref m);
      }
      

  3.   


    protected override void WndProc(ref Message m)
    {
        const int WM_HOTKEY = 0x0312;//如果m.Msg的值为0x0312那么表示用户按下了热键
        switch (m.Msg)
        {
            case WM_HOTKEY:
                switch (m.WParam.ToInt32())
                {
                    case 100:    //按下的是Shift+S      
                        break;
                    case 101:    //按下的是Ctrl+B
                        break;
                    case 102:    //按下的是Alt+D
                        break;
                }
            break;
        }
        base.WndProc(ref m);
    }