不同的MSG有不同的LParam和WParam值,通过这两个参数区分不同的热键!

解决方案 »

  1.   

    switch(msg.WParam)
    {
    case HotKey1:
         ...;
         break;
    case HotKey2:
         ...;
         break;
    }
      

  2.   

    hotkey1 and hotkey2....你是怎么定义的阿
      

  3.   

    好象不是所有的事件都有e.Key的。gzing....
      

  4.   

    比如
    在mainForm中定义alt + q Form1.show()
    alt + w Form2.show()
    alt + e Form3.show()
      

  5.   

    比如象这样:(其中NativeWIN32是我定义的类,RegisterHotKey是API)
    bool success = NativeWIN32.RegisterHotKey(Handle, 
    100, 
    NativeWIN32.KeyModifiers.Control | NativeWIN32.KeyModifiers.Alt, 
    Keys.A);   //注册热键
    bool success = NativeWIN32.RegisterHotKey(Handle, 
    101, 
    NativeWIN32.KeyModifiers.Control | NativeWIN32.KeyModifiers.Alt, 
    Keys.D7);   //又注册了一个热键
      

  6.   

    BOOL RegisterHotKey( 
    HWND hWnd, 
    int id, 
    UINT fsModifiers, 
    UINT vk 
    );
    显然要根据这个id注册.取的时候,也是根据这个ID来区分是哪组热键响应的事件.这个信息放在message的WParam中. protected override void WndProc( ref Message m )
    {
    const int WM_HOTKEY = 0x0312; 


    switch(m.Msg)
    { case WM_HOTKEY:


    if (m.WParam.ToInt32() == 100)
    MessageBox.Show("100");
    if (m.WParam.ToInt32()  == 101)
    MessageBox.Show("101");

    break;

    base.WndProc(ref m );
    }