Как при разработке для планшетного ПК определить, щелкнул ли пользователь мышью или пером?
Вопрос
Как проверить, щелкнул ли пользователь мышью или стилусом по элементу управления 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 (или что-то подобное) никогда не сработают.Если кого-то уволят, то вы знаете, что он использует мышь.