Вы использовали несколько тегов, у меня есть решение winapi, а не winforms.
Вы можете использовать стандартное.MessageBox, вызывая функцию, но они не могут быть «превращены» в ваши пользовательские окна по любой разумной «цене», поэтому они могут только уведомлять пользователя и задавать простые вопросы «да / нет».Для «настоящих» окон давайте забудем MessageBox.
Самым простым пользовательским окном является стандартный.Диалог окон.Он использует предопределенный класс окна # 32770, поэтому вам не нужно регистрировать свой класс окна, создавать цикл сообщений и т. Д. Самый простой способ открыть его - функция DialogBoxParam.Вы должны сделать сценарий диалога .rc (есть много визуальных редакторов), скомпилировать его с помощью компилятора ресурсов, создать ссылку на ваш .exe и передать его имя в качестве параметра для DialogBoxParam.
Вот примерокно внутри консольного приложения (только часть C ++), использующее этот вызов DialogBoxParam
DialogBoxParam(GetModuleHandle(NULL),"EXAMPLE",NULL,ExampleWindowFunction,NULL);
Это здесь: https://pastebin.com/Crkdy5FB
Оно также содержит рисование изображения (оно, вероятно, пока не требуется)это осталось от другого примера winapi).Используйте его как «песочницу», вы, вероятно, быстро поймете, как он работает и какую роль играет здесь hWnd.
Я понимаю ваши проблемы.Графический интерфейс стал слишком сложным, поэтому трудно понять, что именно вы не понимаете.Это мешает задать хороший вопрос.