Снятие Кожи С Элементов Управления WinAPI


Если вы когда-либо видели приложение в Adobe Creative Suite 5 (CS5), вы, возможно, заметили, что оно не похоже на собственный графический интерфейс Windows.. Они изменили его, чтобы иметь другой взгляд на него.

Где бы кто-то начал делать приложение, которое имеет пользовательский скин? CS5 использует библиотеку Adobe Source для управления виджетами/элементами управления, поэтому я попытался загрузить и скомпилировать библиотеку Adobe Source, чтобы посмотреть, смогу ли я сделать хорошее приложение с кожей, как Photoshop CS5, но после наконец, получив его для компиляции и тестирования, я понял, что библиотека предназначена только для управления виджетами, а не для очистки графического интерфейса, как у CS5.

С чего бы мне начать делать красивую программу с кожей, такую как приложения Adobe Cs5? Может ли кто-нибудь указать мне правильное направление?

Я просто использую сообщение WM_PAINT от WinAPI и визуализирую свои собственные виджеты с помощью openGL или что-то еще?

4 3

4 ответа:

Используйте QT и QML. У него нет крутой кривой обучения. Вы определяете свой графический интерфейс с помощью JavaScript, добавляете множество эффектов и наслаждаетесь использованием PNGs во всех вещах, которые вы можете себе представить. Затем вы делаете свою прикладную логику с помощью C++. На самом деле вы можете делать некоторые довольно продвинутые вещи, кроме пользовательского интерфейса с QML, но лучше отделить проблемы, как всегда.

Я использую его на работе для выпуска продукта. Переопределение WM_PAINT не единственный способ в Windows, но я настоятельно рекомендую QT вместо API-интерфейса Win32, когда дело доходит до пользовательского интерфейса прорисованы. По крайней мере, по моему опыту, это намного проще, чем мои приключения с Win32 API.

Если вы хотите реализовать пользовательские элементы управления самостоятельно, вам нужно реализовать собственный WM_PAINT и рисовать с помощью GDI/GDI+. Для окон верхнего уровня и всплывающих окон можно использоватьмногоуровневые окна . Но я думаю, что вы можете найти много профессиональных пользовательских элементов управления через интернет по разумной цене, если вы не хотите реализовать самостоятельно.

Я думаю, что ваш выбор при создании современного приложения с кожей: QT или WPF (через C++/CLI).

Если у вас есть существующее приложение Win32 API, и вы не хотите переписывать его с помощью библиотеки, поддерживающей скиннинг, вы можете взглянуть на Stardock DirectSkin.

Если вы решите переписать свое приложение, я бы также рекомендовал Qt. Guitar Pro 6 был переписан с использованием Qt, подробнее об их опытечитайте здесь .