2013-05-10 230 views
0

我有一个程序,我希望右键单击按钮来完成不同数量的代码。例如,我的代码显示了一个消息框,但最终它只是一个方法调用。我会告诉你我需要它的环境。任何和所有帮助如何检测右键点击将有所帮助。这里的代码片段,我有:Visual C++检测右键单击按钮

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { 
      String^ buttonName = safe_cast<Button^>(sender)->Name; 
      safe_cast<Button^>(sender)->Enabled = false; 
      if(/*Insert Code Here To Detect a right click*/) 
       MessageBox::Show("Right Click"); 
      else 
       MessageBox::Show("Left Click"); 
      MessageBox::Show(buttonName); 
     } 
}; 
+1

编辑:看看MouseDown事件和事件参数里面应该有像MouseButton的东西如果我没记错的话 – Aurus 2013-05-10 15:19:26

回答

2

您可以使用MouseDown事件并检查它是否是正确的

void button1_MouseDown(Object^ /*sender*/, System::Windows::Forms::MouseEventArgs^ e) 
     { 
     // Update the mouse path with the mouse information 
     Point mouseDownLocation = Point(e->X,e->Y); 
     String^ eventString = nullptr; 
     switch (e->Button) 
     { 
      case ::MouseButtons::Left: 
       eventString = "L"; 
       break; 

      case ::MouseButtons::Right: 
       eventString = "R"; 
       break; 

      case ::MouseButtons::Middle: 
       eventString = "M"; 
       break; 

      case ::MouseButtons::XButton1: 
       eventString = "X1"; 
       break; 

      case ::MouseButtons::XButton2: 
       eventString = "X2"; 
       break; 

      case ::MouseButtons::None: 
      default: 
       break; 
     } 
     //Process Here... 
     }