netlib.narod.ru | < Назад | Оглавление | Далее > |
«Сделай мышеловку лучше, чем у других, и люди проложат тропу к дверям твоего дома», — говорила мне мать, перефразируя Р. Эмерсона, сама того не зная1. Но в наши дни больше толку будет, если сделать не мышеловку, а лучшую мышь.
Трехкнопочная мышь не отличалась особой популярностью у пользователей Windows, пока Microsoft не выпустила IntelliMouse. Хотя эта мышь не отличается интеллектом в прямом смысле этого слова, у нее есть одно реальное улучшение в виде небольшого колесика, расположенного между кнопок. При нажатии на это колесико оно функционирует как третья кнопка (в интерфейсах программирования она называется средней), кроме того, его можно крутить, и программы, поддерживающие эту функцию, будут реагировать прокруткой или масштабированием документа.
Хотя на первый взгляд это новшество совершенно бесполезно, оказалось, что к нему быстро привыкают, особенно если приходится часто читать длинные документы или Web-страницы. Большое преимущество в том, что, чтобы прокручивать текст, нет нужды постоянно держать курсор мыши над полосой прокрутки — он в это время может быть в любом месте документа.
И в этом случае информацию о колесике предоставляет класс SystemInformation.
Статические свойства SystemInformation (выборочно)
Тип | Свойство | Доступ | Описание |
bool | MouseWheelPresent | Чтение | Возвращает true, если имеется колесико |
int | MouseWheelScrollLines | Чтение | Число строк, прокручиваемых за оборот |
bool | NativeMouseWheelSupport | Чтение | Не имеет значения для приложений |
Колесико вращается не плавно — чувствуется явное пощелкивание. Чтобы приложения правильно реагировали на действия колесика, предполагается, что при каждом таком щелчке (в документации no.NET Framework он называется фиксатор — detent) приложение должно прокручивать определенное число строк текста. Свойство MouseWheelScrollLines указывает это число, для Microsoft IntelliMouse оно равно 3. Однако в будущем наверняка появятся более совершенные модели с большим разрешением колесика, тогда MouseWheelScrollLines однажды может вернуть значение 2 или даже 1.
Если вам захочется добавить поддержку колесика к одной из программ SysInfo, написанных в главе 4, чтобы расширить функциональность полос прокрутки, — не беспокойтесь: полосы с автопрокруткой автоматически реагируют на активность колесика.
1 А может, и нет, поскольку полностью это высказывание звучит так: «Если человек пишет книги, проповедует или просто делает мышеловки лучше, чем другие, то даже если он построит свой дом в глухом лесу, мир все равно проложит тропу к его дверям». Считается, что эта цитата взята из лекции Эмерсона, но в его письменных сочинениях этого изречения нет. См. книгу Harriett's Familiar Quotations, 16th ed. (Boston: Little, Brown, 1992), c. 430. Однако в наши дни мало кто полностью согласится с этим очаровательным мнением: для коммерческого успеха мышеловок, как и любого другого товара широкого потребления, нужна еще и хорошая маркетинговая политика.
netlib.narod.ru | < Назад | Оглавление | Далее > |