WinApi. Основные типы данных

Содержание

Слайд 2

WinApi Переходник между программой и операционной системой, то есть, теми возможностями, которые она предоставляет.

WinApi

Переходник между программой и операционной системой, то есть, теми возможностями, которые

она предоставляет.
Слайд 3

Основные типы данных BOOL – этот тип данных аналогичен bool. Он

Основные типы данных

BOOL – этот тип данных аналогичен bool. Он также

имеет два значения – 0 или 1. Только при использовании WINAPI принято использовать вместо 0 спецификатор NULL.
BYTE – байт, ну или восьмибитное беззнаковое целое число.
DWORD — 32-битное беззнаковое целое.
INT – 32-битное целое.
LONG – 32-битное целое – аналог всё также long int.
NULL – нулевой указатель. Вот его объявление: void *NULL=0;
UINT – 32-битное беззнаковое целое.
Слайд 4

Строковые типы данных Есть два вида кодировок символов: ANSI и UNICODE.

Строковые типы данных

Есть два вида кодировок символов: ANSI и UNICODE.
Однобайтные символы

относятся к ANSI.
Двухбайтные — к кодировке UNICODE.
Каждая функция для работы со строками в WinApi имеет версию для UNICODE, как правила различаются суффиксом (напр. TextOutA(), TextOutW())
Слайд 5

UNICODE Cтандарт кодирования символов, позволяющий представить знаки почти всех письменных языков

UNICODE

Cтандарт кодирования символов, позволяющий представить знаки почти всех письменных языков

Слайд 6

Строковые типы данных LPCSTR – указатель на константную строку, заканчивающуюся нуль-терминатором.

Строковые типы данных

LPCSTR – указатель на константную строку, заканчивающуюся нуль-терминатором.
LPCTSTR –

указатель на константную строку, без UNICODE.
LPCWSTR – указатель на константную UNICODE строку.
LPSTR – указатель на строку, заканчивающуюся нуль-терминатором.
LPTSTR – указатель на строку, без UNICODE.
LPWSTR – указатель на UNICODE строку.
TCHAR – символьный тип — аналог char и wchar_t.
Слайд 7

Дескрипторные типы данных Дескриптор — это идентификатор какого-либо объекта. Для разных

Дескрипторные типы данных

Дескриптор — это идентификатор какого-либо объекта. Для разных типов

объектов существуют разные дескрипторы.
Есть дескрипторы кисти, курсора мыши, шрифта и т.д. С их помощью мы можем при инициализации или в процессе работы приложения поменять какие-нибудь настройки.
Слайд 8

Слайд 9

Вспомогательные типы

Вспомогательные типы

Слайд 10

Наверное стоит посмотреть Предыдущие 7 слайдов честно украдены от сюда -> http://cppstudio.com/post/9489/

Наверное стоит посмотреть

Предыдущие 7 слайдов честно украдены от сюда ->
http://cppstudio.com/post/9489/

Слайд 11

Самое начало Вывод окна с сообщения

Самое начало

Вывод окна с сообщения

Слайд 12

Практика Сделаем так

Практика

Сделаем так

Слайд 13

Создание более сложного окна Для создание сложного окна нужно: Создать и

Создание более сложного окна

Для создание сложного окна нужно:
Создать и описать класс

окна
Зарегистрировать класс окна
Создать окно и получить его дескриптор
Вызвать функцию показа окна
Запустить цикл обработки сообщений
Слайд 14

Пример Создание класса окна

Пример

Создание класса окна

Слайд 15

Пример Регистрация класса окна

Пример

Регистрация класса окна

Слайд 16

Пример Создание и получение дескриптора окна

Пример

Создание и получение дескриптора окна

Слайд 17

Пример Показ окна

Пример

Показ окна

Слайд 18

Пример Запуск цикла обработки сообщений

Пример

Запуск цикла обработки сообщений

Слайд 19

Обработка событий При создании класса окна, в поле lpfnWndProc указывается функции

Обработка событий

При создании класса окна, в поле lpfnWndProc указывается функции для

обработки системных сообщенией (жизненый цико приложения, события пользователя). Как правило в качестве этой функции выступает wndProc
Слайд 20

Параметры wndProc HWND hwnd – дескриптор окна UINT msg – тип

Параметры wndProc

HWND hwnd – дескриптор окна
UINT msg – тип сообщения системы

(WM_DESTROY, WM_PAINT)
WPARAM wParam, LPARAM lParam – параметры сообщения
Слайд 21

Практика Выведем Hello world

Практика

Выведем Hello world

Слайд 22

Практика А теперь по русски

Практика

А теперь по русски

Слайд 23

Практика Вывести код нажатой пользователем клавиши

Практика

Вывести код нажатой пользователем клавиши