Я, к сожалению, не знаю С++, работаю с Visual Basic, но думаю, что кнопки устроены одинаково.
На каждой кнопке должна быть навешана программа, которая выполняется при нажатии на эту кнопку.
В VB она называется что-то типа Button1_Click.
Есть еще программы типа Button_MouseMove, которая срабатывает, когда курсор мыши наезжает на кнопку.
Есть и еще события, связанные с кнопками - отпускание, двойной клик, установка или снятие фокуса и некоторые другие.
Проверь, где у тебя находятся все твои части программы: на кнопках? Или просто в окне?
События на кнопках правильные? Может быть, ты вместо Click задал DblClick, и функция сработает при двойном нажатии?
Каждый из трёх перечисленных иструментов является серьёзным проектом. Они с нами надолго. Уже из этого обстоятельства нетрудно заключить, что они все лучшие. Но каждый в своей специализации.
OpenGL — библиотека для рисовки графики, как 2D, так и 3D. Она кроссплатформенная, то есть поддерживается различными операционными системами. Даже мобильные системы поддерживают OpenGL.
Vulkan API это типа ассемблера, но в мире графики. Инструмент для решения низкоуровневых задач. Шейдеры на нём можно писать, например.
А DirectX — библиотека для создания игр. Она помогает реализовать не только графику, но и пользовательский ввод, то есть управление персонажем, например.
Большому счёту сравнивать тут нечего. Это различные инструменты. Лучше всего поупражняться с каждым, чтобы получше разобраться самому.
Я пользуюсь Visual Studio, но это скорее привычка, просто с другими как-то не получилось работать. В каждом компиляторе свои "винтики", знаю людей, которые работают, например, в DevC++ и довольны. В чем привыкли работать, в том и работайте.
Всё зависит от того, что ты хочешь выучить... Если базы баз, то их можно выучить быстро, а вот реально основы языка быстро не выучишь... Однако всё возможно сделать быстро(хоть и не настолько), если ты это реально хочешь, для себя, но не потому что "кому-то должен".