Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
WinAPI.docx
Скачиваний:
49
Добавлен:
16.12.2018
Размер:
3.43 Mб
Скачать

2.2.3 Файл исходного текста программы на языке с

Перед тем как заняться деталями, давайте рассмотрим HELLOWIN.CPP в целом. В файле имеется только две функции: WinMain (в Microsoft Visual Studio - _tWinMain) и WndProc. WinMain — это точка входа в программу. Это аналог стандартной функции main языка С. В любой программе для Windows имеется функция WinMain.

WndProc — это "оконная процедура" для окна HELLOWIN. Каждое окно, независимо от того, является ли оно большим, как главное окно приложения для Windows, или маленьким, как кнопка, имеет соответствующую оконную процедуру. Оконная процедура — это способ инкапсулирования кода, отвечающего за ввод информации (обычно с клавиатуры или мыши) и за вывод информации на экран. Оконная процедура делает это, принимая "сообщения" окну. Не беспокойтесь о том, как именно это происходит. Позже у вас будет масса времени для того, чтобы попытаться решить эту проблему.

В HELLOWIN.CPP отсутствуют инструкции для непосредственного вызова WndProc: WndProc вызывается только из Windows. Однако, в WinMain имеется ссылка на WndProc, поэтому эта функция описывается в самом начале программы, еще до определения WinMain.

2.2.4 Вызовы функций Windows

HELLOWIN вызывает не менее 17 функций Windows. Здесь перечислены эти функции в порядке их появления в программе (с кратким описанием каждой функции):

LoadIcon — загружает значок для использования в программе.

LoadCursor — загружает курсор мыши для использования в программе.

GetStockObject — получает графический объект (в этом случае для закрашивания фона окна используется кисть).

RegisterClassEx — регистрирует класс окна для определенного окна программы.

CreateWindow — создает окно на основе класса окна.

ShowWindow — выводит окно на экран.

UpdateWindow — заставляет окно перерисовать свое содержимое.

GetMessage — получает сообщение из очереди сообщений.

TranslateMessage — преобразует некоторые сообщения, полученные с помощью клавиатуры.

DispatchMessage — отправляет сообщение оконной процедуре.

PlaySound — воспроизводит звуковой файл.

BeginPaint — инициирует начало процесса рисования окна.

GetClientRect — получает размер рабочей области окна.

DrawText — выводит на экран строкутекста.

EndPaint — прекращает рисование окна.

PostQuitMessage — вставляет сообщение "завершить" в очередь сообщений.

DefWindowProc — выполняет обработку сообщений по умолчанию.

Эти функции описаны в документации или системе контекстной подсказки, поставляемой с вашим компилятором, а определены они в различных заголовочных файлах из WINDOWS.H.

2.2.5 Идентификаторы, написанные прописными буквами

В дальнейшем вы обратите внимание на использование в HELLOWIN.H нескольких идентификаторов, полностью написанных прописными буквами. Эти идентификаторы задаются в заголовочных файлах Windows. Некоторые из этих идентификаторов содержат двухбуквенный или трехбуквенный префикс, за которым следует символ подчеркивания:

CS_HREDRAW DT_VCENTER WM_CREATE

CS_VREDRAW IDC_ARROW WM_DESTROY

CW_USEDEFAULT IDI_APPLICATION WM_PAINT

DT_CENTER SND_ASYNC WS_OVERLAPPEDWINDOW

DT_SINGLELINE SND_FILENAME

Это просто числовые константы. Префикс показывает основную категорию, к которой принадлежат константы, как показано в данной таблице:

Программируя для Windows, почти никогда не нужно запоминать числовые константы. Фактически для любой числовой константы, которая используется в Windows, в заголовочных файлах имеется идентификатор.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]