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

Весь этот механизм выполняется при помощи нехитрой последовательности действий:

1. При вызове функции PostQuitMessageCExitCode) ей передается код завершения ExitCode.

2. Функция формирует сообщение WM_QUIT, в поле wParam которого заносит полученный код завершения.

3. При завершении приложения выполняется оператор return msg.wParam, возвращающий значение ExitCode.

4. Родительский процесс при помощи функции GetExi tCodeProcess () получает код завершения.

Функция InitAppOß рассмотренном примере выполняет только регистрацию и создание окна, как показано в листинге 1.4.

Листинг 1.4

int InitAppCHINSTANCE KodPril) {
LPCTSTR Name=(LPCTSTR)"minim"; WNDCLASS wc; wc.hlnstance - KodPril;
wc.hCursor - LoadCursorC NULL. IDC_ARR0W );
wc.hlcon = LoadIcon(NULL.IDI_APPLICATION);
wc.lpszMenuName - NULL; wc.lpszClassName - Name;
wc.hbrBackground - (HBRUSH) (C0L0R_WIND0W + 1); wc.style - CSJREDRAW | CS_HREDRAW;
wc.1pfnWndProc - InputWndProc; wc.cbClsExtra - 0; wc.cbWndExtra - 0;

Полноценное оконное приложение АТОМ WNDClass- RégisterClass(&wc); if (!WNDClass(&wc)) return 1; HWND hWnd-CreateWindow(Name."Заголовок". WS_VISIBLE I WSJMRLAPPEDWINDOW.

10. 10. 300. 200. NULL. NULL. KodPril. NULL): if (IhWnd) return 2; return 0:
}

Регистрация окна создает в памяти структуру данных, описывающую общие характеристики некоторой группы окон. Эта структура и будет классом окна. К этим данным относятся форма курсора, пиктограмма окна, цвет фона рабочей области, закрепленная за этим классом оконная функция, меню и прочие полезные параметры. Для регистрации необходимо заполнить поля структуры типа WNDCLASS (в примере это переменная ws) и передать ее адрес функции АТОМ Régi sterCl ass ( (LPWNDCLASS) &wc.style). Функция возвращает значение типа ATOM - целое число, однозначно идентифицирующее созданный класс.


⇐ Предыдущая| |Следующая ⇒