Мне кажется, что вам нужно понять, как работает сам пользовательский интерфейс. Тут должны быть базовые шаблоны, классы и вызовы. Всё-таки окна и любой элемент пользовательского интерфейса это тоже всего рода отдельные приложения, активно взаимодействующие с ядром другого приложения. Попробуйте изучить все поведения элементов из Visual Studio. Там они очень хорошо описаны и сделать хотя бы базовый набор исходя из полученного изучения. Например, окно имеет определённый набор кода, чтобы отрисовывать на экране дисплея, где могут быть вызовы на события, изменения свойств и так далее. И ещё вам надо в первую очередь поработать с кадровым буфером (framebuffer). Без него никак нельзя. Все графические механизмы проходят перерисовку через этот буфер. В общем, для начала вам надо поработать с кадровым буфером. И выводить через него на экран монитора.
То, что вы делаете, это очень даже хорошо. Важно не останавливаться и сохранять интерес к этому делу. Шаг за шагов вы можете достичь большего. Москва же не сразу строилась.