Электронная библиотека книг Александра Фролова и Григория Фролова.
Shop2You.ru Создайте свой интернет-магазин
Библиотека
Братьев
Фроловых

Программирование для IBM OS/2

© Александр Фролов, Григорий Фролов
Том 4, М.: Диалог-МИФИ, 1993, 286 стр.

[Назад] [Содеожание] [Дальше]

2.4. Создание дочерних окон

Для того чтобы создать дочернее окно, вы можете воспользоваться все той же функцией WinCreateStdWindow , которую мы вызывали для создания главного окна приложения. Однако прежде чем вызывать эту функцию, вы должны подготовить функцию дочернего окна и зарегистрировать отдельный класс окна для дочернего окна.

Ниже регистрируется класс окна szWndClassChild, причем для дочернего окна будет использована функция окна с именем WndProcChild:

CHAR  szWndClassChild[] = "WINTREECHILD";
fRc = WinRegisterClass (hab, szWndClassChild,
    (PFNWP)WndProcChild, 0, 0);

После того как класса дочернего окна зарегистрирован, можно создавать дочернее окно:

hWndChildFrame = WinCreateStdWindow (hWndFrame, 
  WS_VISIBLE ,
  &flFrameChildFlags, szWndClassChild, szChildTitle,
  0, 0, ID_CHILDWND, &hWndChildClient);

Обратите внимание, что в качестве родительского используется окно с идентификатором hWndFrame. Кроме этого, дочернее окно имеет свой собственный идентификатор ID_CHILDWND.

Для того чтобы дочернее окно было видно, следует установить его начальное расположение и размеры. Это можно сделать при помощи функции WinSetWindowPos :

WinSetWindowPos (hWndChildFrame, HWND_TOP , 
  10, 10, 200, 200,
  SWP _ACTIVATE  | SWP_SIZE  | SWP_SHOW  | SWP_MOVE );

Описанная методика создания дочерних окон была использована нами в приложении WINTREE, исходные тексты которого вы скоро увидите.

[Назад] [Содеожание] [Дальше]