2012-12-27 2 views
0

클래스가 NativeWindow 클래스를 기반으로하므로 사용자가 클래스를 클릭 할 때 어떤 동작을 수행 할 수 있기를 원합니다. 여기에 내가 뭘하려 :NativeWindow에서 클릭 캡처

코드

가 작동하지 않습니다 그러나를 제거했습니다. 디버깅 메시지가 0x0201 절대로 어떤 마우스 왼쪽 단추를 클릭 한 것입니다 어떤 이유로 제안합니다. 그게 뭐가 잘못 됐어?

+0

당신이'DefWndProc'을 무시 시도? 'new' 키워드를 사용해야합니다. –

+0

MessageTool 클래스에서 어떻게 인스턴스화합니까? –

+0

@MichaelPerrenoud'new'는 정확히 어디에 들어 맞습니까? –

답변

1

툴팁에 WM_LBUTTONDOWN을 수신 할 수 있는지 확실하지 않습니다. 이 같은 처리를 위해 툴팁 컨트롤에 마우스 메시지를 전달하는 의미가있어 TTM_RELAYEVENT message, 뭔가를 사용하여 시도 할 수 :

protected override void WndProc(ref System.Windows.Forms.Message m) 
    { 
     const int TTM_RELAYEVENT = 0x407; 
     if (m.Msg == TTM_RELAYEVENT) 
     { 
      Message relayed = (Message)Marshal.PtrToStructure(m.LParam, typeof(Message)); 
      if (related.Msg == WM_LBUTTONDOWN) 
      { 
       // Do something 
      } 
     } 

     base.WndProc(ref m); 
    } 
+0

Windows 툴팁은 특선을 원할 경우 매우 놀랍습니다. 때로는 자기 자신을 굴리기가 더 쉽다. –

관련 문제