Как при разработке для планшетного ПК определить, щелкнул ли пользователь мышью или пером?

StackOverflow https://stackoverflow.com/questions/758782

  •  09-09-2019
  •  | 
  •  

Вопрос

Как проверить, щелкнул ли пользователь мышью или стилусом по элементу управления C#.

Например.Если пользователь щелкает текстовое поле кнопкой пера, я хочу, чтобы появлялась панель ввода, но если он щелкает мышью, этого не должно быть.Так как же мне проверить, использовал ли он мышь или ручку?

Редактировать:Использование Windows Forms, а не WPF

Это было полезно?

Решение

Я написал статью для MSDN, которая так и не была опубликована, наверное, потому, что к тому времени, как я передал ее им, разработка планшетных ПК сошла на нет.Но там описано, как это сделать.Короче говоря, вам понадобится API GetMessageExtraInfo.Вот определения:

// [DllImport( "user32.dll" )]
// private static extern uint GetMessageExtraInfo( );

uint extra = GetMessageExtraInfo();
bool isPen = ( ( extra &  0xFFFFFF00 ) == 0xFF515700 );

Напишите мне на мое имя в Einstein Tech dot net, если хотите, чтобы я отправил вам статью.

Другие советы

Если вы используете WPF, то существует целый ряд событий Stylus.Например. UIElement.StylusDown.

Этот содержит более подробную информацию о взаимодействии событий стилуса и мыши.

Если вы не используете WPF, почему бы и нет?:п

Я не особо много об этом знаю, но предполагаю, что если кто-то использует стилус, то события mouseEnter, mouseExit (или что-то подобное) никогда не сработают.Если кого-то уволят, то вы знаете, что он использует мышь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top