은 내가 wxWidgets에 그들은 일반적으로 왼쪽 클릭에 대한 것을 제외하고 내가 그것을 말할 수 있어야하는 것처럼 동일한 방식으로 행동, 중간 버튼 마우스 클릭에 응답 컨트롤 일부를하고자하는 시나리오 중간 클릭이의이 내 응용 프로그램에서 뭔가 다른 일을하십시오.wxWidgets 컨트롤이 가운데 버튼 클릭을 허용하도록하려면 어떻게해야합니까?
특히, 나는 버튼 및 슬라이더와 협력하고, 버튼을 압하가되고 싶어 슬라이더가 가운데 버튼을 드래그로하고있다. 내가 윈도우즈에있다. (그리고 그것이 유일한 플랫폼이다.) 차이점이있다.
WX 워드 프로세서를 통해 비트를 파고 후 나는 제어가 수신하는 마우스 버튼 설정 할 수있는 방법을 찾지 못했습니다. 그래서, 내 첫번째 생각은 가운데 버튼 이벤트를 캡처 해당 왼쪽 버튼 이벤트로 변환하는 이벤트 핸들러를 작성했고,이를 처리 할 WX를 알려줍니다
이void OnMouseEvent(wxMouseEvent & wxevent)
{
wxMouseEvent wxeventTranslated = wxevent;
if (wxevent.MiddleDown())
{
wxeventTranslated.SetEventType(wxEVT_LEFT_DOWN);
}
else if (wxevent.MiddleUp())
{
wxeventTranslated.SetEventType(wxEVT_LEFT_UP);
}
else
{
return;
}
m_pWxbutton->ProcessWindowEvent(wxeventTranslated);
}
(여기 m_pWxbutton
가 wxButton
입니다 어디에 이벤트가 등록됨). 그것은 작동하지 않았다 : 마우스 이벤트 핸들러가 호출되었지만 wxEVT_COMMAND_BUTTON_CLICKED
이벤트를 얻지 못하거나 버튼이 GUI에서 "눌린"시각적 상태로 들어 가지 않습니다. 또한 전달 된 이벤트에서 이벤트 유형을 변경 한 다음 Skip()
을 호출 한 버전을 시도했지만 동일한 결과가있었습니다.
물론 버튼에 대해서는 나 자신도 쉽게 감지 할 수 있지만 슬라이더에 대해서도이 기능을 사용하기를 바라고 있으며 모든 마우스 로직을 다시 구현할 생각은별로하지 않습니다. :)
어떻게 마우스 이벤트를 변환하고 네이티브 GUI 이벤트처럼 행동 할 수 있습니까? 아니면 시도해야 할 완전히 다른 접근 방식이 있습니까?