2011-01-10 2 views
1

Я пытаюсь получить каждое сообщение о том, что пользователь коснулся экрана. Он работает везде, кроме кнопки, когда он отключен. Кажется, что приложение не получает никакого сообщения при нажатии на отключенное управление..NET CF на Windows CE - проблема с системными сообщениями системы

Я использую класс OpenNetCF Application2 для фильтрации сообщений:

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

PowerManager класс содержит следующий метод (в соответствии с требованиями интерфейса IMessageFilter):

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; 
    } 

в лог-файл там не является индикацией сообщения Windows при нажатии на отключенную кнопку. Мне интересно, как это возможно и как я могу получить это сообщение.

ответ

1

Для этого сценария может использоваться функция Win32 API SetCapture. Вы можете передать дескриптор своей основной формы, и он будет захватывать все события мыши, пока вы не назовете ReleaseCapture.