Как создается нестандартный интерфейс для программ?
=====================================================

 Понимаю, вопрос очень нубский, но я занимаюсь веб-программированием, там всё просто: элементы управления можно стилизовать как угодно. А вот как создать виндовую программу со стилем например, как у WinAmp? Или многие крэкеры и патчеры для платных программ выглядят тоже довольно необычно. На чем все это создается? 

 Способов сотни.  

Можно на чистом WinAPI клепать.  

А 20 лет назад я такое делал на Delphi, для этого есть специальные компоненты. 

 Как и в вебе, языки разметки.  
[Список языков описания пользовательских интерфейсов](https://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D1%8F%D0%B7%D1%8B%D0%BA%D0%BE%D0%B2_%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D1%8F_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%B8%D1%85_%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%D0%BE%D0%B2) 

 В Qt с некоторого времени добавлен язык QML. Он позволяет верстать интерфейс схожим с HTML + CSS образом.  

После веба должно быть легко в освоении. 

> нестандартный интерфейс для программ

Смотря что счиитать стандартным.  

Например в Windows чаще всего используются системные библиотеки для вывода окон.  

Но вы можете подключить стороннюю библиотеку.  

Или полностью написать код окна самостоятельно. 

 Достаточно иметь прямые руки и немного знаний основ WinAPI.  

Например, как кто-то выше говорил, что мол есть сторонние компоненты и прочее, которые позволяют...и так далее, в отличие от таких "специалистов", я категорически отношусь к сторонним решениям, т.к. эти решения зачастую ограничены и/или в добавок ко всем проблемам могут добавить багов и зависимости, например как Qt.  

Я всегда делаю интерфейс самостоятельно, используя только стандартные методы. А обрезка окна - это тоже стандартная функция WinAPI.  

Вот несколько примеров того, как я делаю  
![5d617239111ff438884411.png](https://habrastorage.org/webt/5d/61/72/5d617239111ff438884411.png)  
![5d6172933e884055572121.png](https://habrastorage.org/webt/5d/61/72/5d6172933e884055572121.png)  
![5d6172a4aefa9279769834.png](https://habrastorage.org/webt/5d/61/72/5d6172a4aefa9279769834.png)  
![5d6172b360d71811082641.png](https://habrastorage.org/webt/5d/61/72/5d6172b360d71811082641.png)  
![5d6172c156ea6526964624.png](https://habrastorage.org/webt/5d/61/72/5d6172c156ea6526964624.png)  
![5d6172cb6f99a252682371.png](https://habrastorage.org/webt/5d/61/72/5d6172cb6f99a252682371.png)  
![5d6173e60bcb8336468424.png](https://habrastorage.org/webt/5d/61/73/5d6173e60bcb8336468424.png)  

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

Ах, да. Ну и сделано это всё на старом добром Delphi.