Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
A05_API.doc
Скачиваний:
5
Добавлен:
12.11.2019
Размер:
1.3 Mб
Скачать

Int MessageBox (hwnd hWnd, lpctstr lpText, lpctstr lpCaption, uint uType).

Параметры функции интерпретируются следующим образом:

- hWnd – дескриптор родительского окна, он принимает значение NULL, если родительского окна нет;

- lpText – указатель на строку, содержащую текст сообщения;

- lpCaption – указатель на строку, содержащую текст заголовка диалогового окна;

- uType – параметр задает комбинацию флагов, задающих количество и типы кнопок в диалоговом окне, а также наличие заданной пиктограммы.

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

Вот почему в программе нет ни оконной процедуры, ни цикла обработки сообщений, и она претендует на титул самой короткой программы для Windows.

Полноценная программа для Windows должна содержать как минимум две функции:

- WinMain – главную функцию, в которой создается основное окно программы и запускается цикл обработки сообщкний;

-WndProc – оконную процедуру, обеспечивающую обработку сообщений для основного окна программы.

Основное назначение функции WinMain заключается в следующем:

Шаг 1. Подготовить и зарегистрировать класс окна с требуемыми характеристиками.

Шаг 2. Создать экземпляр окна зарегистрированного класса.

Шаг 3. Пока не произошло завершающее программу событие выполнять:

- извлечь очередное сообщение из очереди сообщений;

- передать через Windows очередное сообщение оконной функции.

Шаг 4. Завершить программу.

Основное назначение оконной процедуры WndProc заключается в обработке очередного сообщения.

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

#include <windows.h>

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

//---------------------------------------------------------------------------

Int winapi WinMain(hinstance hInstance, hinstance hPrevInstance, lptstr lpCmdLine, int nCmdShow)

{

HWND hMainWnd;

char szClassName[] = "MyClass";

MSG msg;

// Структура класса окна

WNDCLASSEX wc;

wc.cbSize = sizeof(wc);

wc.style = CS_HREDRAW | CS_VREDRAW;

wc.lpfnWndProc = WndProc;

wc.cbClsExtra = 0;

wc.cbWndExtra = 0;

wc.hInstance = hInstance;

wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);

wc.hCursor = LoadCursor(NULL, IDC_ARROW);

wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);

wc.lpszMenuName = NULL;

wc.lpszClassName = szClassName;

wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);

// Регистрируем класс окна

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