- •Методические указания
- •Оглавление
- •Теоретический материал
- •Введение
- •Типы данных Windows. Типы указателей Windows. Использование памяти
- •Венгерская нотация. Префиксы данных
- •Общая структура Windows-приложений
- •Описание класса (стиля) окна. Структура wndclass
- •Создание (визуализация) окна
- •Сообщения. Схема обработки. Прототипы функций-обработчиков сообщений
- •Ресурсы Windows-приложений
- •Встроенные редакторы ресурсов
- •Средства организации вывода данных
- •Средства организации ввода данных
- •Вывод растровых изображений в Windows-приложениях
- •Автоматические шаблоны (каркасы) windows-приложений (тип empty, simple)
- •Создать шаблон Windows-приложения (тип Empty) и изучить его свойства
- •Модифицировать шаблон
- •Создать шаблон Windows-приложения (тип Simple) и изучить его свойства
- •Типовой шаблон (каркас) windows-приложения (тшп)
- •Изучение свойств типового шаблона
- •Изучить листинг типового шаблона
- •Воспроизвести типовой шаблон
- •Изучить свойства типового шаблона
- •Модификация типового шаблона
- •Изменить интерфейс типового шаблона
- •Добавить строку приветствия в типовой шаблон
- •Использование типового шаблона
- •Организовать вывод данных с применением функций
- •Добавить ресурс - меню
- •Организовать ввод данных с применением меню и пользовательского диалогового окна
- •Автоматический шаблон (каркас) windows-приложения (тип hello)
- •Изучение свойств шаблона (тип Hello)
- •Создать шаблон Windows-приложения (тип Hello)
- •Изучить ресурсы шаблона
- •Изучить свойства шаблона
- •Модификация шаблона (тип Hello)
- •Получить типовой шаблон приложения (тшп) из шаблона (тип Hello)
- •Организовать ввод-вывод числовых данных с применением пользовательского диалогового окна
- •Индивидуальные задания
Методические указания
к лабораторным работам
“Создание Windows-приложений в системе Microsoft Visual Studio C++”
==================================================================
Оглавление
ОГЛАВЛЕНИЕ 1
-
Теоретический материал
-
Введение
Visual Studio — это комплект (suite) средств разработки, включающий язык Visual C++, интегрированную среду разработки (Integrated Development Environment). Visual Studio ориентирована на создание приложений, в том числе для работы автономно на отдельной ПЭВМ. Это оконные приложения под Windows (Windows-приложения) и как частный случай консольные приложения. Для оконных приложений поддерживается два стиля (две законченные системы) разработки: a) стиль низкоуровневого программирования, базирующийся на непосредственном использовании только функций Win32 API (результат – оконные Win32 Application - приложения); б) стиль высокоуровневого программирования, базирующийся на каркасном программировании, объектно-ориентированном подходе к разработке приложений и, соответственно, на использовании готовых библиотек классов (результат – оконные MFC Win32 Application - приложения). Это, например, библиотека шаблонов ActiveX - ATL (Microsoft Active Template Library) для создания СОМ-объектов и элементов управления ActiveX; MFC (Microsoft Foundation Class Library) для создания сложных Windows-приложений с богатым графическим интерфейсом; WFC (Windows Foundation Classes) для Windows-приложений на Java; стандартная библиотека шаблонов (Standard Template Library STL). ДАЛЕЕ рассматриваются только Win32 Application – приложения.
Windows-приложения: - управляются сообщениями и сами обрабатывают сообщения, поступающие от операционной системы; - используют интерфейс прикладных программ Win32 API и соответствующие функции Windows, а также библиотеки готовых классов; - могут строиться на базе библиотек с динамическим связыванием DLL (Dynamic-Link Library); - используют при необходимости ресурсы (для организации графических интерфейсов); - управляют ресурсами через интерфейс графического устройства GDI (Graphics Device Interface), вызывая соответствующие GDI-функции.
Файлы ресурсов приложения могут включать растровые изображения, битовые карты (bitmaps), пиктограммы (icons), описания меню (menu definitions), описания структуры диалоговых окон, строки и т.д. Visual Studio предоставляет пользователю графические редакторы ресурсов, обеспечивающие редактирование всех стандартных типов ресурсов в режиме WYSIWYG.
Технологическая схема производства приложений представлена на рисунке ниже.
-
Типы данных Windows. Типы указателей Windows. Использование памяти
При использовании С++ для программирования приложений под операционную систему Windows есть ряд особенностей. Здесь используются: - специфические типы данных, в том числе переопределенные стандартные типы С и специфические типы для новых объектов (дескрипторы, типы результатов и т.д.); - специфические типы указателей. Они представлены в таблицах ниже.
Таблица. Наиболее распространенные типы данных общего назначения
Тип данного |
Аналоги типов в C++ |
Размер, бит |
Описание |
Диапазон чисел |
||
BOOL |
— |
32 |
Булева переменная |
TRUE (1), FALSE (0) |
||
BOOLEAN |
— |
32 |
Булева переменная |
TRUE(1), FALSE(0) |
||
BYTE |
unsigned char |
8 |
Байт без знака. Может обозначать число или код символа |
0...255 |
||
CCHAR |
char |
8 |
Символ Windows |
-128...+127 |
||
CHAR |
char |
8 |
Символ Windows |
-128...+127 |
||
CONST |
const |
- |
Константа |
- |
||
DWORD |
unsigned long |
32 |
Двойное слово без знака |
0... 42944967295 |
||
DWORDLONG |
double |
64 |
Число с плавающей точкой со знаком |
1.7E-308... 1.7E+308 |
||
FLOAT |
float |
32 |
Число с плавающей точкой со знаком |
3.4E-38... 3.4E+38 |
||
INT |
int, long |
32 |
Целое число со знаком |
-2147483648... +2147483647 |
||
LONG |
long, int |
32 |
Целое число со знаком |
-2147483648... +2147483647 |
|
|
LONGLONG |
double |
64 |
Число с плавающей точкой со знаком |
1.7Е-308... 1.7Е+308 |
||
SHORT |
short |
16 |
Короткое целое число со знаком |
-32768... +32767 |
||
TBYTE |
unsigned char |
8 |
Байт без знака. Может обозначать число или код символа |
0...255 |
||
TCHAR |
char |
8 |
Символ Windows или Unicode |
-128...+127 |
||
UCHAR |
unsigned char |
8 |
Символ Windows без знака |
0...255 |
||
UINT |
unsigned int |
32 |
Целое число без знака |
0... 4294967295 |
||
ULONG |
unsigned long |
32 |
Целое число без знака |
0... 4294967295 |
||
USHORT |
unsigned short |
16 |
Короткое целое число без знака |
0...65535 |
||
VOID |
void |
- |
Любой тип |
- |
||
WCHAR |
wchar_t |
16 |
Символ Unicode |
0...65535 |
||
WORD |
— |
16 |
Короткое целое число без знака |
0...65535 |
В Win32 все указатели являются ближними, хотя и занимают 4 байта. Разница между ближними и дальними указателями существовала только в Win16.
Таблица. Наиболее распространенные обозначения указателей на типы данных общего назначения
Обозначение указателей |
Тип адресуемого данного |
Примечание к типу адресуемого данного |
LPBOOL, PBOOL |
BOOL |
— |
LPBYTE, PBYTE |
BYTE |
— |
LPCCH, РССН |
CONST CHAR |
Константный символ Windows |
LPCH, РСН |
CHAR |
Символ Windows |
LPCSTR, PCSTR |
CONST CHAR |
Константная строка символов Windows с завершающим нулем |
LPCTSTR |
CONST TCHAR |
Константная строка символов Windows или Unicode с завершающим нулем |
LPCWCH, PCWCH |
CONST WCHAR |
Константный символ Unicode |
LPCWSTR, PCWSTR |
CONST WCHAR |
Константная строка символов Unicode с завершающим нулем |
LPDWORD, PDWORD |
DWORD |
— |
LPINT, PINT |
INT |
— |
LPLONG, PLONG |
LONG |
— |
LPSTR, PSTR |
CHAR |
Строка символов Windows с завершающим нулем |
LPTCH, PTCH |
TCHAR |
Символ Windows или Unicode |
LPTSTR, PTSTR |
TCHAR |
Строка символов Windows или Unicode с завершающим нулем |
LPVOID, PVOID |
VOID |
— |
LPWCH, PWCH |
WCHAR |
Символ Unicode |
LPWORD, PWORD |
WORD |
— |
LPWSTR, PWSTR |
WCHAR |
Строка символов Unicode с завершающим нулем |
NPSTR |
CHAR |
Строка символов Windows с завершающим нулем |
NWPSTR |
WCHAR |
Строка символов Unicode с завершающим нулем |
PBOOLEAN |
BOOL |
— |
PCHAR |
CHAR |
Символ Windows |
PFLOAT |
FLOAT |
— |
PSHORT |
SHORT |
— |
PSZ |
CHAR |
Строка символов Windows с завершающим нулем |
PTBYTE |
TBYTE |
Символ Windows или Unicode |
PTCHAR |
TCHAR |
Символ Windows или Unicode |
PUCHAR |
UCHAR |
Символ Windows без знака |
PUINT |
UINT |
— |
PULONG |
ULONG |
— |
PUSHORT |
USHORT |
— |
PWCHAR |
WCHAR |
Символ Unicode |
Характер использования памяти (типичное распределение) иллюстрируется ниже. Серым цветом выделена оперативная память.