Страница 1 из 2
Вам еще не надоело создавать консольные приложения? Я так и знал: Ну что ж, тогда я не зря старался при написании данного материала, который обязан пролить свет на программирование в среде Windows, и научить вас создавать полноценные оконные приложения, в зависть вашему соседу, который еще этого не умеет. Система, основанная на сообщениях Windows можно назвать объектно-ориентированной системой, хотя формально она таковой не является. Представьте себе систему в виде набора объектов, основным из которых является окно. В процессе работы, Windows "общается" с каждым объектом посредством системных сообщений. При возникновении определенных событий, Windows сообщает об этом окну приложения, посылая ему соответствующее сообщение. Окно, после получения сообщения, должно обработать его и возвратить результат обратно в систему. Как программа узнает о том, что ее окну послано сообщение? Ответ напрашивается сам. На протяжении всей работы программы необходимо проверять, имеются ли в очереди сообщения. Делается это, конечно-же, с помощью цикла, который выполняется в течении всей работы программы. При каждом проходе цикла проверяется наличие сообщений в очереди, и если таковые имеются, тогда программа поочередно получает их и обрабатывает. Win32 API Win32 API (Application Programming Interface - интерфейс прикладного программирования) - это набор функций, позволяющих программисту создавать приложения для Windows. Win32 API является основой для каждой Windows-программы. Программисты, пишущие на С++ уже привыкли, что точкой входа в программу является функция main(). Но в системе Windows это не так. Все Win32-приложения используют в качестве точки входа в программу функцию WinMain. Ее объявление можно найти в заголовочном файле winbase.h: int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd );
Давайте рассмотрим все ее аргументы: - hInstance - идентификатор экземпляра приложения.
- hPrevInstance - идентификатор предыдущего экземпляра приложения. В Win32 он всегда равен нулю.
- lpCmdLine - указатель на командную строку.
- nShowCmd - флаги для окна.
Как видите - все не так сложно! Вас, наверное, удивили только какие-то непонятные типы данных. Не волнуйтесь - разберемся. Типы данных в Windows При первом взгляде на исходный код Windows-приложения, начинающих программистов начинают пугать "странные" типы данных, используемые в программе. Но это только на первый взгляд. На самом, деле разобраться в них вам не составит особого труда. Основные типы данных Win32 API приведены в таблице 1. Таблица 1 BOOL, BOOLEAN | Булев. Имеет только 2 значения: TRUE или FALSE | CHAR | 8-битный символ (ANSI Windows) | WCHAR | 16-битный символ (Unicode) | TCHAR | CHAR или WCHAR (если используется Unicode) | USHORT, WORD | Целое беззнаковое 16-битное число | DWORD, DWORD32, UINT32 | Целое беззнаковое 32-битное число | DWORD64, UINT64, ULONGLONG | Целое беззнаковое 64-битное число | FLOAT | Число с плавающей точкой | SHORT | Целое знаковое 16-битное число | INT, INT32, LONG, LONG32 | Целое знаковое 32-битное число | INT64, LONG64, LONGLONG | Целое знаковое 64-битное число | VOID | Пустой тип | Структура Windows-программ Каждая Windows-программа состоит как минимум из двух основных функций. Это WinMain и функция окна. |