2011-12-16 4 views
0

패널 안의 마우스 클릭 좌표를 어떻게 얻을 수 있습니까? 예를 들어 마우스를 클릭 할 때마다 픽셀을 넣을 수 있기를 원합니다. 드로잉 부분을 처리 할 수는 있지만 프로그램에서 해당 클릭 이벤트를 수신하는 방법과 올바른 위치에 그릴 수 있도록 x/y 좌표를 가져 오는 방법을 알지 못합니다.Panel 내부에서 클릭 이벤트의 좌표를 가져 오는 방법은 무엇입니까?

유사한 코드를 본 적이 없으며 google과 관련된 정보를 찾을 수 없어서 코드를 보여줄 수 없으므로 "어떻게 구현 했습니까?" 실마리를 시작하는 방법. 나는 아마 틀린 키워드를 찾고있다, 그러나 나는 그것이 행해질다는 것을 확실하다.

는 편집 : 모든

답변

2

Here 코드와 함께, 귀하의 질문에 대한 완벽한 힌트 주셔서 감사합니다. 패널의 경우 mouseDown 이벤트를 사용할 수 있습니다. 그리고 사건 논쟁에서 당신은 coords를 얻을 수있다.

1
private: System::Void panel1_MouseDown(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e) 
{  
    int x= e->X; 
    int y= e->y; 
} 
4

Click 이벤트는 올바른 선택이 아닙니다. 마우스와 키보드에 의해 생성 될 수 있으므로 마우스 위치를 통과하지 못합니다. 스페이스 바를 누르면 예를 들어 버튼을 클릭 할 수 있습니다. 이것은 물론 패널에게는 발생하지 않습니다. 단순히 MouseUp 이벤트를 대신 사용하십시오. 전달 된 e-> Button 속성을 확인하십시오.

패널은 btw가 좋지 않습니다. 이중 버퍼링이 없으므로 도면이 복잡해지면 깜박이기 시작할 수 있습니다. 크기가 변경되면 제대로 다시 그리지 않습니다. PictureBox에는 이러한 문제가 없습니다. 그냥 패널처럼 취급하고 Paint 이벤트를 구현하고 Image 속성을 설정하지 마십시오.

관련 문제