Операционная система Microsoft Windows 3.1 для программиста -том 1


Программа "Hello, world!" для Windows - часть 2


#pragma argsused

В нашем первом примере мы игнорировали все четыре параметра, однако из-за использования соглашения о передаче параметров PASCAL все параметры функции WinMain должны быть описаны.

Для вывода строки "Hello, world!" мы использовали функцию MessageBox:

MessageBox(NULL, "Hello, world!", "Main Window", MB_OK);

Прототип функции MessageBox определен в файле windows.h:

int WINAPI MessageBox(HWND, LPCSTR, LPCSTR, UINT);

Мы в нашей книге будем использовать немного измененную форму прототипа, отражающую не только типы параметров, но и назначение параметров. Прототип функции MessageBox будет выглядеть следующим образом:

int WINAPI MessageBox(HWND hwndParent, LPCSTR lpszText, LPCSTR lpszTitle, UINT fuStyle);

Не вдаваясь в подробности, скажем, что эта функция создает на экране диалоговую панель с текстом, заданным вторым параметром lpszText (в нашем случае - с текстом "Hello, world!"), и заголовком, заданным третьим параметром lpszTitle ("Main Window").

Параметр hwndParent указывает так называемый идентификатор родительского окна, создающего диалоговую панель (его мы рассмотрим позже). Этот параметр можно указывать как NULL, в этом случае у диалоговой панели не будет родительского окна.

Первый параметр в нашем примере необходимо указать как NULL.

Последний параметр fuStyle - константа MB_OK, значение которой определено в файле windows.h. Использование в качестве последнего параметра значения MB_OK приводит к появлению в диалоговой панели одной кнопки с надписью "OK". Когда вы нажмете на эту кнопку, функция MessageBox возвратит управление в функцию WinMain.

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


Начало  Назад  Вперед



Книжный магазин