void MyPanel::OnMouseClick(wxMouseEvent& event) { int x = event.GetX(); //get x coordinate int y = event.GetY(); //get y coordinate wxString message = wxString::Format("Mouse clicked at (%d,%d)",x,y); wxMessageBox(message,"Mouse Clicked"); } BEGIN_EVENT_TABLE(MyPanel, wxPanel) EVT_LEFT_DOWN(MyPanel::OnMouseClick) END_EVENT_TABLE()
void MyPanel::OnMouseClick(wxMouseEvent& event) { int x = event.GetX(); //get x coordinate int y = event.GetY(); //get y coordinate m_circleCenter = wxPoint(x,y); //store center point of circle Refresh(); //redraw the panel } void MyPanel::OnPaint(wxPaintEvent& event) { wxPaintDC dc(this); dc.SetBrush(wxBrush(wxColour(255, 0, 0, 100))); //set fill color and opacity dc.SetPen(wxPen(wxColour(255, 0, 0), 2)); //set outline color and thickness dc.DrawCircle(m_circleCenter, 50); //draw a circle with a radius of 50 pixels } BEGIN_EVENT_TABLE(MyPanel, wxPanel) EVT_LEFT_DOWN(MyPanel::OnMouseClick) EVT_PAINT(MyPanel::OnPaint) END_EVENT_TABLE()The package library used for cpp wxMouseEvent is wxWidgets.