Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

CCPP / CPP / Программирование на языке Си++. Модули №9-11

.pdf
Скачиваний:
57
Добавлен:
23.03.2016
Размер:
310 Кб
Скачать

Программирование

на языке Си++

1

Модуль 9.

ИСПОЛЬЗОВАНИЕ

Microsoft Developer Studio

Интерфейс Developer Studio (Мастерской разработчика) Создание консольного приложения и приложения Win32 Понятие проекта и просмотр компонентов проекта Виды ресурсов Developer Studio

Формирование визуального графического интерфейса в редакторе ресурсов

2

Модуль 9. ИСПОЛЬЗОВАНИЕ Microsoft Developer Studio

Структура проекта

Структура проекта приложения для платформы Win32

исходные тексты программы на языке Си++ (папка Source Files) — обычно один или несколько файлов с расширениями *.c, *.cpp;

заголовочные файлы (папка Header Files) — обычно один или несколько файлов с расширением *.h;

один или несколько файлов ресурсов (обычно с расширением .rc) (папки Source Files и Resource Files) — диалоги, пиктограммы, меню, строковые таблицы

Виды ресурсов

пиктограммы — значки для применения в приложении, в том числе значок самого приложения;

меню — главное меню приложения и контекстные меню окон;

строковые таблицы — таблицы для хранения строковых литералов, предназначенных для использования в различных ситуациях в приложении

3

Модуль 10.

СТРУКТУРА ПРИЛОЖЕНИЯ Windows

Главная функция Windows-приложения WinMain() Структура приложения Windows

Загрузка стандартных ресурсов Windows

Механизм сообщений Windows, цикл обработки сообщений Функция управления окном приложения Сообщения, посылаемые окну приложения, и их обработка

4

Модуль 10. СТРУКТУРА ПРИЛОЖЕНИЯ Windows

Минимальная структура приложения Win32

Минимальная программа для 32-разрядной платформы

Windows (Win32) состоит из главной функции WinMain() / _tWinMain(), предоставляющей точку входа в приложение Win32, а также оконной процедуры, отвечающей за асинхронную обработку системных сообщений Windows

Оконная процедура не вызывается из главной функции явно. Взамен этого адрес оконной процедуры (точки входа в нее) сохраняется в объекте класса «окно» и передается Windows при регистрации главного окна приложения

5

Модуль 10. СТРУКТУРА ПРИЛОЖЕНИЯ Windows

Функция WinMain: назначение и аргументы (начало)

Точкой входа в GUI-приложение Win32 является функция с предопределенным идентификатором WinMain() — аналог функции main() для MS DOS / *nix, а также консольного режима Win32

В инструментальной среде Microsoft Visual C++ 2008 главная функция приложения Win32 получает идентификатор _tWinMain()

Назначение функции WinMain

загрузка глобальных ресурсных строк (например, заголовка главного окна приложения);

подготовка и регистрация класса главного окна приложения — объекта класса WNDCLASSEX;

инициализация экземпляра программы, включающая создание и отображение на экране главного окна приложения, а также отправку этому окну первого сообщения WM_PAINT;

организация главного цикла обработки сообщений

6

Модуль 10. СТРУКТУРА ПРИЛОЖЕНИЯ Windows

Функция WinMain: назначение и аргументы (окончание)

Заголовок функции WinMain()

int APIENTRY WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine,

int nCmdShow)

Аргументы функции WinMain()

HINSTANCE hInstance — описатель экземпляра программы;

HINSTANCE hPrevInstance — описатель предыдущего экземпляра программы (для обратной совместимости с Windows 3.1; в Win32 имеет нулевое значение);

LPSTR lpCmdLine — указатель на командную строку запуска;

int nCmdShow — режим отображения главного окна программы по умолчанию

7

Модуль 10. СТРУКТУРА ПРИЛОЖЕНИЯ Windows

Некоторые типы данных Windows API (начало)

В простейших приложениях Win32 используются следующие нестандартные типы данных:

ATOM — то же, что WORD (см.);

BOOL — то же, что int;

CHAR — то же, что char;

CONST — то же, что const;

HANDLE — то же, что PVOID (см.); описатель (экземпляра программы, окна, меню, курсора и пр.);

HDC — то же, что HANDLE; описатель контекста графического устройства (device context);

HINSTANCE — то же, что HANDLE (см.);

HWND — то же, что HANDLE (см.);

LONG_PTR — для Win32 – то же, что long; для Win64 – то же, что __int64;

LPARAM — то же, что LONG_PTR (см.);

8

Модуль 10. СТРУКТУРА ПРИЛОЖЕНИЯ Windows

Некоторые типы данных Windows API (продолжение)

LPCSTR — указатель на неизменяемую строку ANSI-символов с завершающим нулем, то же, что __nullterminated CONST CHAR * (см.);

LPCTSTR — при использовании Unicode – то же, что LPCWSTR (см.); в иных случаях – то же, что LPCSTR (см.);

LPCWSTR — указатель на неизменяемую строку Unicode-символов с завершающим нулем, то же, что CONST WCHAR * (см.);

LPSTR — указатель на строку ANSI-символов с завершающим нулем, то же, что CHAR * (см.);

LRESULT — то же, что LONG_PTR (см.);

MSG — структура, содержащая информацию о сообщении из очереди сообщений потока;

PVOID — то же, что void *;

TCHAR — при использовании Unicode – то же, что WCHAR (см.); в иных случаях – то же, что CHAR (см.);

UINT — то же, что unsigned int;

9

Модуль 10. СТРУКТУРА ПРИЛОЖЕНИЯ Windows

Некоторые типы данных Windows API (окончание)

UINT_PTR — для Win32 – то же, что unsigned int; для Win64 – то же, что unsigned __int64;

WCHAR — то же, что wchar_t;

WNDCLASS, WNDCLASSEX — структура с описанием окна приложения

WORD — то же, что unsigned short;

WPARAM — то же, что UINT_PTR (см.)

10