Программирование на C++ глазами хакера

Диалоговые окна


Отдельного разговора заслуживают диалоговые окна. С их помощью пользователи вводят информацию в программу и получают ответы. Если что-то окажется неудобным или раздражающим, то щелчок по uninstall.exe не заставит себя ждать. К дизайну каждого элемента нужно подходить с особой тщательностью.

Единственное окно, которое может выглядеть как угодно — это О программе. Его пользователь может вообще никогда не увидеть, а если и увидит что-то страшное, то абсолютно не обидится ( 1.15). В остальных случаях лишние украшения не допускаются.

Рис. 1.15. Окно "О программе" в The Bat!

Это окно оформлено нестандартно, красиво, но с большой ошибкой — даже в окне "О программе" должна быть кнопка Закрыть или , потому что трудно догадаться, что форма закрывается только по щелчку в определенной области.

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

Посмотрите на окно создания резервной копии в программе The Bat! ( 1.16). Оно по вертикали больше, и из-за этого смотрится не очень хорошо. Я понимаю, что разработчики постарались встроить максимум возможностей, но само окно и неровности в компонентах немного раздражают.

Помимо этого, последний компонент выбора (Check Box) отодвинут вправо. Все элементы должны быть выровнены по левому краю, а прыжки вправо нарушают симметрию. Если компоненты находятся в определенной зависимости, то лучше просто запрещать доступ к некоторым из них, используя свойство Enable.

1.16. Окно создания резервной копии в The Bat!, вытянутое по вертикали

Единственное, что здесь хорошо сделано — все компоненты удачно сгруппированы. Элементы выбора Check Box собраны В одну группу, a Radio Button — в другую.


Теперь посмотрите на 1.17. Здесь я убрал пару ненужных элементов (можно было бы и оставить, но без них функциональность не упадет), все выровнял и расширил окно. Теперь интерфейс выглядит совершенно по-другому, и, поверь мне, в программе это смотрится еще лучше и намного удобнее.



Если нужно отображать свойства какого-то объекта (документа, файла), то его желательно делать вытянутым по вертикали. Это исключение из правил, которое надо запомнить, и ему, желательно, следовать всегда.



Рис. 1.17. Окно создания резервной копии в The Bat! после небольших манипуляций



1.18. Окно для отображения свойств

Всю информацию нужно разложить по тематическим разделам в виде отдельных вкладок. Ярким примером такого окна является окно свойств в проводнике Windows ( 1.18) или окна свойств документа в MS Word (меню Файл/Свойства).

Ни один объект не может обладать таким количеством свойств, что их нельзя было бы поместить в четыре вкладки такого окна. Если у вас свойств получилось больше, и невозможно все уместить, то пора заняться оптимизацией информации. Подумайте, что для пользователя действительно будет информативно, а что можно удалить.

Если в программе много параметров, то можно соорудить что-то а-ля MS Word (меню Сервис/Параметры) из множества вкладок ( 1.19). Если настроек слишком много, то используем стиль Netscape Navigator, где слева построено дерево разделов, и при выборе нужного пункта в центре окна отображаются соответствующие параметры.



1.19. Окно для настройки параметров

Но не надо пытаться в один раздел засунуть килограмм всего. Читабельность падает, и найти необходимое невозможно. Старайтесь оставлять между элементами достаточно свободного пространства и выравнивать элементы, чтобы в окне не было хаоса.

Посмотрите на 1.20, где показано окно настроек программы mIRC. Оно смотрится просто ужасно. Дерево разделов слишком узкое, окно недостаточно широкое, элементы управления в разделах не упорядочены и содержат абсолютно ненужные кнопки, которые можно куда-нибудь вынести. Кнопка Sort отделена от других и пропадает в бездне, а раскрывающиеся списки имеют разную длину.





Рис. 1.20. Окно свойств mIRC

Теперь посмотрите на 1.21, где я немного причесал это окно в графическом редакторе MS Paint. Теперь оно стало более широким, и элементы встали стройными рядами, потому что выровнены по левому краю и имеют одинаковую ширину. Кнопка с изображением солнца не имела подсказки, и ее предназначение вообще не понятно (просто перебрасывает нас на настройки раздела Connect), поэтому была удалена.

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



Рис. 1.21. Улучшенное окно свойств mIRC



1.22. Перегруженный интерфейс Feurio

Не стесняйтесь тратить время на создание удобного и красивого интерфейса. Даже самая лучшая программа с огромным количеством возможностей не будет продаваться лучше простой и удобной утилиты.

Я вспоминаю, как однажды описывал программу Feurio для журнала "Хакер", которая была мощнейшей для записи музыкальных дисков. Пришлось потратить неделю на разборки с интерфейсом, а вывод был один — программа обладает большими возможностями и должна присутствовать в арсенале любого меломана. Но я не до такой степени страстный любитель музыки, чтобы мириться с неудобствами ( 1.22). Лучше использовать простой, но удобный WinOnCD, чем мощный, но некрасивый Feurio. Вот если бы я писал диски каждый день, то, может быть, использовал что-то сложное.

Помните, если не знаете, как что-то сделать, посмотрите у конкурентов!!!


Содержание раздела