Консольное окно можно убрать, изменив тип приложения с «Console application» на «GUI application» в «Project \ Properties \ Build targets \ Type».
Нажимаем Ctrl+F11 (Rebuild) и жмём F9 (Build & Run).
Графические функции
Выбор пера с выбором стиля, толщины и цвета в формате RGB (0x00bbggrr):
Выбор кисти с установленным стилем заливки и цветом в формате RGB:
Отображение прямоугольника по противоположным углам (x1,y1) и (x2,y2):
Отображение эллипса вписанного в прямоугольник:
Отображение точки в координатах (x,y) цветом clr в формате RGB:
Перемещение невидимого графического курсора в точку (x,y):
Перемещение невидимого графического курсора в точку (x,y) и рисование отрезка от прошлой позиции курсора:
Закрашенный многоугольник по массиву из n точек (в примере n=3):
Вывод текста:
Работа с окнами
Работа с существующими окнами:
Получение размеров клиентского окна:
Получение координат курсора мыши:
Обработка нажатий клавиш клавиатуры и мыши
Для обработки клавиш необходимо заменить стандартный обработчик событий окна DefWindowProcA на свой (в примере это MyWndProc), указав его в поле lpfnWndProc класса окна:
Быстрая прорисовка с использованием кадрового буфера
Для избегания мерцания изображения при интенсивной прорисовке элементов можно саму прорисовку осуществлять в виртуальной памяти, а после результат копировать в окно. Пример реализации использования кадрового буфера (здесь width и height – глобальные переменные: размеры клиентского окна):
Непрерывная анимация
При использовании функции GetMessage происходит остановка программы до момента наступления какого-либо события. Иногда это нежелательно, так как во многих случаях требуется непрерывность выполнения программы независимо от событий. Для этого можно использовать функцию PeekMessageA. Например, цикл в функции main может выглядеть следующим образом: