wxWidgets Глава 2. Базовый GUI. Часть 1. Простейшее приложение

В этой главе мы опишем основы, необходимые для разработки wxWidgets-приложений.

Мы рассмотрим, как создать графическое окно, и как отобразить на нем иконку. Затем продемонстрируем работу с событиями на примере обработки нажатия кнопки. И, в заключении, увидим как взаимодействуют виджеты внутри wxWidgets-приложения.

Во-первых, вы, конечно, должны включить файлы заголовков wxWidgets. Это можно сделать на основе файла за файлом (например, wx/window.h) или с помощью одного глобального include ( wx/wx.h), который включает в себя большинство часто необходимых заголовков (хотя и не все из них, так как заголовков wxWidgets слишком много, чтобы вытащить их все) . Для платформ с поддержкой предварительно скомпилированных заголовков, как указано WX_PRECOMP, этот глобальный заголовок уже включен, wx/wxprec.hпоэтому мы включаем его только для других:

Практически каждое приложение должно определять новый класс, производный от wxApp . Переопределив виртуальный метод OnInit() wxApp, программа может быть инициализирована, например, путем создания нового главного окна.

Создаем главный класс для запуска приложения

Обратите внимание на использование wxIMPLEMENT_APP (appClass) , который позволяет wxWidgets динамически создавать экземпляр объекта приложения в соответствующей точке инициализации wxWidgets. Предыдущие версии wxWidgets полагались на создание глобального объекта приложения, но это больше не рекомендуется, поскольку требуемая глобальная инициализация могла не быть выполнена во время создания объекта приложения

Создаем класс MainWin (Главное окно). MainWin.h
MainWin.cpp

Класс MainWin является наследником класса wxFrame, который определяет фрейм - главное окно. И передаем туда значение - wxID_ANY - Это ID окна. Затем заголовок окна 

Теперь в main.cpp в функции Main::OnInit() вызываем окно MainWin.

Сначало создаем новый объект MainWin *frame = new MainWin(). Затем вызываем открытие окна методом Show() - frame->Show(true).