Для некоторых компьютерных программ необходимо создавать графический интерфейс.На самом деле графический интерфейс нужен для взаимодействия с пользователем,чтобы удобным способом управлять функционалом программы.В настоящее время даже существуют книги,в которых описывается процесс проектирования графических интерфейсов.Это сложная область,поэтому существует отдельная профессия,связанная с проектированием графических интерфейсов,если всё правильно понял и не ошибаюсь.
Любая сложная программа имеет не менее сложный графический интерфейс.Графическая система операционной системы (такая вот игра систем!) поддерживает большое количество стандартных визуальных компонентов,которые может использовать в своих программах программист прямо из коробки.Стандартные визуальные компоненты в сочетании друг с друг позволяют разрабатывать довольно удобное взаимодействие программы с пользователем.
Но иногда у программиста возникает необходимость создать нестандартный визуальный компонент.Такое конечно возможно в проектировании графических элементов и на этот случай,увы, нет готовых рецептов.