Как определить, нажал ли пользователь мышкой или ручкой при разработке для планшетного ПК? - PullRequest
5 голосов
/ 17 апреля 2009

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

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

Изменить: Использование Windows Forms, а не WPF

Ответы [ 3 ]

6 голосов
/ 18 апреля 2009

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

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

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

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

0 голосов
/ 17 апреля 2009

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

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

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

0 голосов
/ 17 апреля 2009

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

...