- Программирование под Windows с использованием Win API
- Основные понятия и термины, используемые при разработке Windows приложений
- Нотация Windows («венгерская нотация Чарльза Симони»)
- Некоторые префиксы венгерской нотации:
- Часто используемые типы данных Windows:
- Создание простейшего Windows-приложения с использованием Win API
- Элементы Windows-приложения
- Простейшая программа. Создание и вывод Windows-окна на экран
- Комментарии к программе
- Программирование под Windows с использованием Win API
- Основные понятия и термины, используемые при разработке Windows приложений
- Нотация Windows («венгерская нотация Чарльза Симони»)
- Некоторые префиксы венгерской нотации:
- Часто используемые типы данных Windows:
- Создание простейшего Windows-приложения с использованием Win API
- Элементы Windows-приложения
- Простейшая программа. Создание и вывод Windows-окна на экран
- Комментарии к программе
Программирование под Windows с использованием Win API
Основные понятия и термины, используемые при разработке Windows приложений
- USER (16, 32) .dll – функции ввода с клавиатуры мыши, ввод через интерфейс и т.д. (взаимодействие приложений с пользователями и средой Windows).
- KERNEL (16, 32) .dll – функции операционной системы (память, распределение системных ресурсов, загрузка).
- GDI (16, 32) .dll – графический интерфейс (функции создания и отображения графических объектов).
GUI (Graphics User Interface) – стандартный графический интерфейс пользователя. Это та часть Windows , которая обеспечивает поддержку аппаратно-независимой графики.
API (Application Program Interface) — интерфейс прикладных программ (набор функций, сосредоточенных в ядре Windows и дополнительных библиотеках).
DLL (Dynamic Link Libraries) — библиотека динамической компоновки. Функции API содержатся в библиотеках динамической загрузки.
DDE – динамический обмен данными .
Нотация Windows («венгерская нотация Чарльза Симони»)
При программировании под Windows принято использовать префиксы перед именами переменных, указывающие на принадлежность к типу данных. Рекомендуется давать имена собственным переменным и идентификаторам, придерживаясь следующих принципов:
- мнемоническое значение – идентификатор должен легко запоминаться;
- смысловое значение – роль идентификатора должна быть ясна из его названия;
- преемственность – похожие объекты должны иметь похожие идентификаторы;
- быстрота принятия решения – придумывание, ввод и редактирование идентификатора не должны занимать много времени.
Некоторые префиксы венгерской нотации:
Префикс | Значение |
---|---|
A | массив |
B | логический тип (int) |
By | беззнаковый символьный тип (byte) |
C | символьный тип (1 байт) |
Cb | счетчик байтов |
Cr | цвет |
cx,cy | короткий тип (short) |
Dbl | double (с плавающей точкой) |
Dw | беззнаковое длинное целое число (dword) |
Flt | float (вещественная с плавающей точкой) |
Fn | функция |
g_ | префикс для глобальной переменной (глобальная переменная) |
H | handle (беззнаковое целое число) |
hDC | handle (указатель на контекст устройства) |
I | целое (integer) |
Id | интегральное значение идентификатора |
L | длинный тип (long) |
Lp | длинный указатель |
Lpsz | дальний указатель на строку, заканчивающуюся нулевым байтом |
m_ | переменная класса |
N | short или int |
Np | ближний указатель |
P | указатель |
Pfn | указатель на функцию |
Pst | указатель на структуру |
Psz | указатель на строку, заканчивающуюся нулевым байтом |
Pv | указатель на тип void |
S | строка |
Sz | строка, заканчивающая нуль-символом |
U | беззнаковый символ |
Tm | текстовая метрика |
V | тип void |
W | беззнаковое целое (word, 16-бит) |
x, y | короткое целое число (координата x или y) |
Часто используемые типы данных Windows:
Тип данных | Описание |
---|---|
HANDLE | определяет идентификатор; 32-разрядное целое, используемое в качестве дескриптора – числа, определяющего некоторый ресурс |
HWND | определяет идентификатор окна |
HDC | определяет идентификатор контекста устройства |
LONG | 32-битовое целое со знаком |
LPSTR | определяет линейный указатель |
NULL | 0 |
UINT | тип данных Win32 (32 бита для Win32) |
WCHAR | 16-битовый символ UNICODE. Используется для представления символов языков мира |
Создание простейшего Windows-приложения с использованием Win API
Элементы Windows-приложения
Построение приложения Windows включает выполнение следующих этапов:
- Создание WinMain(. ) и связанных с ней функций на языке C или C++.
- Создание описаний меню и всех дополнительных ресурсов, помещение описаний в файл описания ресурсов.
- Создание уникальных курсоров, пиктограмм и битовых образов.
- Создание диалоговых окон.
- Создание файла проекта.
- Компиляция и компоновка всего кода.
Простейшая программа. Создание и вывод Windows-окна на экран
Создадим пустой проект Windows- приложения с помощью мастера:
- File
New
Project.
- Project types: Win32 Templates: Win32 Project.
- Ok.
- Установить галочку Empty project.
- Добавить в проект файл *.cpp.
- Project
Properties. Вкладка Configuration Properties
General.
- Значение поля Character Set устанавливаем Use Multi-Byte Character Set.
Добавим следующий код:
Скомпилируем и запустим программу. На экране появится Windows-окно.
Комментарии к программе
Все приложения Windows должны содержать два основных элемента: функцию WinMain(. ) и функцию окна WndProc .
Функция WinMain(. ) служит точкой входа в приложение. Эта функция отвечает за следующие действия:
- регистрацию типа класса окон приложения;
- выполнение всех инициализирующих действий ;
- создание и инициализацию цикла сообщений приложения;
- завершение программы (обычно при получении сообщения WM_QUIT ).
Функция WndProc отвечает за обработку сообщений Windows. Эта часть программы является наиболее содержательной с точки зрения выполнения поставленных перед программой задач. Если мы хотим, чтобы программа обращала на наши действия внимание, то необходимо добавить ветки case для оператора switch в оконную процедуру WndProc . Например, если мы хотим, чтобы наше приложение обращало внимание на щелчок левой кнопкой мыши – добавляем ветку case WM_LBUTTONDOWN . В настоящий момент в оконной процедуре происходит только обработка сообщения WM_DESTROY . Больше Windows-окно пока ничего делать не умеет.
Заголовочный файл windows.h нужен для любой традиционной Windows программы на C. Именно в нем содержатся разные определения констант ( WM_DESTROY и т. д.).
Программирование под Windows с использованием Win API
Основные понятия и термины, используемые при разработке Windows приложений
- USER (16, 32) .dll – функции ввода с клавиатуры мыши, ввод через интерфейс и т.д. (взаимодействие приложений с пользователями и средой Windows).
- KERNEL (16, 32) .dll – функции операционной системы (память, распределение системных ресурсов, загрузка).
- GDI (16, 32) .dll – графический интерфейс (функции создания и отображения графических объектов).
GUI (Graphics User Interface) – стандартный графический интерфейс пользователя. Это та часть Windows , которая обеспечивает поддержку аппаратно-независимой графики.
API (Application Program Interface) — интерфейс прикладных программ (набор функций, сосредоточенных в ядре Windows и дополнительных библиотеках).
DLL (Dynamic Link Libraries) — библиотека динамической компоновки. Функции API содержатся в библиотеках динамической загрузки.
DDE – динамический обмен данными .
Нотация Windows («венгерская нотация Чарльза Симони»)
При программировании под Windows принято использовать префиксы перед именами переменных, указывающие на принадлежность к типу данных. Рекомендуется давать имена собственным переменным и идентификаторам, придерживаясь следующих принципов:
- мнемоническое значение – идентификатор должен легко запоминаться;
- смысловое значение – роль идентификатора должна быть ясна из его названия;
- преемственность – похожие объекты должны иметь похожие идентификаторы;
- быстрота принятия решения – придумывание, ввод и редактирование идентификатора не должны занимать много времени.
Некоторые префиксы венгерской нотации:
Префикс | Значение |
---|---|
A | массив |
B | логический тип (int) |
By | беззнаковый символьный тип (byte) |
C | символьный тип (1 байт) |
Cb | счетчик байтов |
Cr | цвет |
cx,cy | короткий тип (short) |
Dbl | double (с плавающей точкой) |
Dw | беззнаковое длинное целое число (dword) |
Flt | float (вещественная с плавающей точкой) |
Fn | функция |
g_ | префикс для глобальной переменной (глобальная переменная) |
H | handle (беззнаковое целое число) |
hDC | handle (указатель на контекст устройства) |
I | целое (integer) |
Id | интегральное значение идентификатора |
L | длинный тип (long) |
Lp | длинный указатель |
Lpsz | дальний указатель на строку, заканчивающуюся нулевым байтом |
m_ | переменная класса |
N | short или int |
Np | ближний указатель |
P | указатель |
Pfn | указатель на функцию |
Pst | указатель на структуру |
Psz | указатель на строку, заканчивающуюся нулевым байтом |
Pv | указатель на тип void |
S | строка |
Sz | строка, заканчивающая нуль-символом |
U | беззнаковый символ |
Tm | текстовая метрика |
V | тип void |
W | беззнаковое целое (word, 16-бит) |
x, y | короткое целое число (координата x или y) |
Часто используемые типы данных Windows:
Тип данных | Описание |
---|---|
HANDLE | определяет идентификатор; 32-разрядное целое, используемое в качестве дескриптора – числа, определяющего некоторый ресурс |
HWND | определяет идентификатор окна |
HDC | определяет идентификатор контекста устройства |
LONG | 32-битовое целое со знаком |
LPSTR | определяет линейный указатель |
NULL | 0 |
UINT | тип данных Win32 (32 бита для Win32) |
WCHAR | 16-битовый символ UNICODE. Используется для представления символов языков мира |
Создание простейшего Windows-приложения с использованием Win API
Элементы Windows-приложения
Построение приложения Windows включает выполнение следующих этапов:
- Создание WinMain(. ) и связанных с ней функций на языке C или C++.
- Создание описаний меню и всех дополнительных ресурсов, помещение описаний в файл описания ресурсов.
- Создание уникальных курсоров, пиктограмм и битовых образов.
- Создание диалоговых окон.
- Создание файла проекта.
- Компиляция и компоновка всего кода.
Простейшая программа. Создание и вывод Windows-окна на экран
Создадим пустой проект Windows- приложения с помощью мастера:
- File
New
Project.
- Project types: Win32 Templates: Win32 Project.
- Ok.
- Установить галочку Empty project.
- Добавить в проект файл *.cpp.
- Project
Properties. Вкладка Configuration Properties
General.
- Значение поля Character Set устанавливаем Use Multi-Byte Character Set.
Добавим следующий код:
Скомпилируем и запустим программу. На экране появится Windows-окно.
Комментарии к программе
Все приложения Windows должны содержать два основных элемента: функцию WinMain(. ) и функцию окна WndProc .
Функция WinMain(. ) служит точкой входа в приложение. Эта функция отвечает за следующие действия:
- регистрацию типа класса окон приложения;
- выполнение всех инициализирующих действий ;
- создание и инициализацию цикла сообщений приложения;
- завершение программы (обычно при получении сообщения WM_QUIT ).
Функция WndProc отвечает за обработку сообщений Windows. Эта часть программы является наиболее содержательной с точки зрения выполнения поставленных перед программой задач. Если мы хотим, чтобы программа обращала на наши действия внимание, то необходимо добавить ветки case для оператора switch в оконную процедуру WndProc . Например, если мы хотим, чтобы наше приложение обращало внимание на щелчок левой кнопкой мыши – добавляем ветку case WM_LBUTTONDOWN . В настоящий момент в оконной процедуре происходит только обработка сообщения WM_DESTROY . Больше Windows-окно пока ничего делать не умеет.
Заголовочный файл windows.h нужен для любой традиционной Windows программы на C. Именно в нем содержатся разные определения констант ( WM_DESTROY и т. д.).