ергономіка інтерфейсу + Photoshop: робота з каналами + WinAPI: як тягати форму за будь-яке місце
Якщо дизайнер хоче зробити щось витончено, з особливим цинізмом - він не знає кордонів.
Ось завдання: скопіювати стандартну кнопку інтерфейсу Windows з синього фону на червоний.
Потрібно це для того, щоб замінити біля вікна програми BorderStyle з 1 - Fixed Single на 0 - None. Так буде більш ергономічно. Навіщо формі системний заголовок, якщо вікно фіксованого розміру, а в інтерфейсі вже є виражена шапка, за яку, використовуючи WinAPI (функції ReleaseCapture і SendMessage бібліотеки "user32"), форму можна тягати? Тільки для одного - щоб була кнопка з хрестом, натиснувши на яку користувач може закрити вікно, вийти з програми. Розумніше цю кнопку дати праворуч на шапці інтерфейсу простим Image, що виглядає для простоти призначеного для користувача сприйняття точно так же, як системна кнопка.
Копіюємо системну кнопку на червону плашку.
А тепер увага, демонстрація нестандартного дизайнерського мислення.
У нас графіка екранна, тому простір RGB. Значить, ліземо в синій канал, викусивать звідти все "напівпрозорі" пікселі субпиксельной переходу білого обідка в синій фон. Копіюємо їх в червоний канал на новому шарі. Потім повертаємося на старий шар, викусивать ті ж пікселі з червоного каналу і вставляємо їх в синій канал на тому ж самому новому шарі.
Ставимо формі властивість BorderStyle в 0 - None
Тепер скріншоти ту ж кнопку системного інтерфейсу в затиснутому стані, копіюємо її вміст всередині обідка в кнопку з уже готовим переходом в червоне, і додаємо обробку MouseDown / MouseUp.
Зайняло, звичайно, секунди, але хіба не простіше було взяти Pencil Tool, підібрати разбеляя червоного і натякають його вручну куди треба?