design studio logo

хитрости

эргономика интерфейса + Photoshop: работа с каналами + WinAPI: как таскать форму за любое место


Если дизайнер хочет сделать что-то изощренно, с особым цинизмом - он не знает границ.

Вот задача: скопировать стандартную кнопку интерфейса Windows с синего фона на красный.

Нужно это для того, чтобы заменить у окна программы BorderStyle с 1 - Fixed Single на 0 - None. Так будет более эргономично. Зачем форме системный заголовок, если окно фиксированного размера, а в интерфейсе уже есть выраженная шапка, за которую, используя WinAPI (функции ReleaseCapture и SendMessage библиотеки "user32"), форму можно таскать? Только для одного - чтобы была кнопка с крестом, нажав на которую пользователь может закрыть окно, выйти из программы. Разумнее эту кнопку дать справа на шапке интерфейса простым Image, выглядящим для простоты пользовательского восприятия точно так же, как системная кнопка.

Что делаем:


Копируем системную кнопку на красную плашку.


А теперь внимание, демонстрация нестандартного дизайнерского мышления.

У нас графика экранная, поэтому пространство RGB. Значит, лезем в синий канал, выкусываем оттуда все "полупрозрачные" пикселы субпиксельного перехода белого ободка в синий фон. Копируем их в красный канал на новом слое. Потом возвращаемся на старый слой, выкусываем те же пикселы из красного канала и вставляем их в синий канал на том же самом новом слое.


Ставим форме свойство BorderStyle в 0 - None


Теперь скриншотим ту же кнопку системного интерфейса в зажатом состоянии, копируем ее содержимое внутри ободка в кнопку с уже готовым переходом в красное, и добавляем обработку MouseDown / MouseUp.


Заняло, конечно, секунды, но разве не проще было взять Pencil Tool, подобрать разбел красного и натыкать его вручную куда надо?



© 2000–2015 Студия дизайна «Индейское лето»
skype: summer-indian | mail:


iMage magnifier :: screen capture, loupe, color picker


студия веб-дизайна