2011-01-10 4 views
1

私は、ユーザーが画面に触れたことを示すすべてのウィンドウメッセージを取得しようとしています。ボタンが無効になっているときは、ボタンを除いてどこでも動作します。無効なコントロールをクリックすると、アプリケーションにメッセージが表示されないようです。Windows CE上の.NET CF - システムメッセージのフィルタリングに関する問題

私はメッセージをフィルタリングするためOpenNetCFアプリケーション2クラスを使用しています:そこにログファイルに

public bool PreFilterMessage(ref Microsoft.WindowsCE.Forms.Message m) 
    { 
     log.DebugFormat("windows message {0} - 0x{0:X}", m.Msg); 
     if (m.Msg == 0x0201 || m.Msg == 0x8001 || m.Msg == 0x0005) 
     {     
      return this.ResetPowerManager();  
     } 

     return false; 
    } 

Application2.AddMessageFilter(Device.PowerManager);
Application2.Run(new MainForm());

PowerManagerクラスには、次のメソッドを(IMessageFilterのインターフェイスで必要とされる)が含まれ無効なボタンをクリックすると、ウィンドウメッセージが表示されません。 どうすればこのメッセージが表示されるのでしょうか?

答えて

1

このシナリオでは、Win32 API関数SetCaptureを使用できます。あなたはそれにメインフォームのハンドルを渡すことができ、ReleaseCaptureに電話するまで、すべてのマウスイベントをキャプチャします。

関連する問題