2011-11-18 4 views
0

C#에서는 이와 같이 작동하지만, C++/cli에서는 무엇이 해당합니까?C++/cli에서 MouseClick 이벤트 중 어떤 마우스 버튼을 클릭했는지 확인하는 방법은 무엇입니까?

private void CustomControl_MouseClick(object sender, MouseEventArgs e) 
{   
    if (e.Button == MouseButtons.Right) 
    { 
    ... do something 
    } 
} 

MouseButtons.Right, MouseButtons :: Right 및 MouseButtons-> 오른쪽 모두를 컴파일하지 않는 것 같습니다. here에서

System::Void WindowTest::pictureBoxTest_MouseClick(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e) 
    { 
     if (e->Button == MouseButtons::Left) 
     { 
     // do something 
      } 
} 
+0

게시 C# 코드는 무관하다 :: 전에 누락 된 것 같습니다 .. : 항상 내 C++/CLI 코드 여기

error C2039: 'Right' : is not a member of 'System::Enum' 

을 말한다 당신이 가지고있는 C++/CLI 코드를 왜 게시하지 않습니까? – Marlon

답변

1

당신이 당신의 MouseButtons::Right

void panel1_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; 
    } 
    if (eventString != nullptr) 
    { 
     mousePath->AddString(eventString, FontFamily::GenericSerif, (int)FontStyle::Bold, (float)fontSize, mouseDownLocation, StringFormat::GenericDefault); 
    } 
    else 
    { 
     mousePath->AddLine(mouseDownLocation, mouseDownLocation); 
    } 

    panel1->Focus(); 
    panel1->Invalidate(); 
    } 
+0

오 필요 : :: MouseButtons ... – marc40000

+0

앞에 왜? MouseButtons는 System.Windows.Forms에 선언되어 있습니다. :: 앞에서는 전역 네임 스페이스의 MouseButtons를 원한다는 것을 의미합니까? – marc40000

+0

나는 지금이 답을 정정 할 수 없다. 나는 이미 그것을 시도했다. 나는 10 분 정도 기다려야 만한다 ... – marc40000