Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции.doc
Скачиваний:
17
Добавлен:
14.02.2015
Размер:
641.54 Кб
Скачать

Соглашения операционной системы Windows

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

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

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

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

Весь основной функционал Windows реализуются посредством вызовов функций примерно также, как используются библиотечные функции С, напримерstrlen.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В дальнейшем вы обратите внимание на использование в 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

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

Префикс

Категория

CS

Опция стиля класса

IDI

Идентификационный номер иконки

IDC

Идентификационный номер курсора

WS

Стиль окна

CW

Опция создания окна

WM

Сообщение окна

SND

Опция звука

DT

Опция рисования текста

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