Скиннинг WinAPI Controls - PullRequest
       13

Скиннинг WinAPI Controls

3 голосов
/ 27 декабря 2010

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

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

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

Могу ли я просто использовать сообщение WM_PAINT из WinAPI и отображать свои собственные виджеты, используя openGL или что-то еще?

Ответы [ 4 ]

1 голос
/ 27 декабря 2010

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

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

0 голосов
/ 27 декабря 2010

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

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

0 голосов
/ 27 декабря 2010

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

0 голосов
/ 27 декабря 2010

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

...