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

8) При уничтожении родительского окна сообщение wm_destroy также рассылается всем дочерним окнам.

9) Для передачи сигналов от дочернего окна родительскому используется сообщение WM_PARENTNOTIFY, передаваемое в оконную процедуру родительского окна при создании и закрытии дочернего окна, а также при щелчках мыши в дочернем окне.

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

Синтаксис

WM_PARENTNOTIFY:

fwEvent = LOWORD(wParam); // флаг события

idChild = HIWORD(wParam); // идентификатор дочернего окна

lValue = lParam; // дескриптор дочернего окна, или координаты курсора

Параметры:

fwEvent

Определяет событие, о котором уведомляется родитель. Этот параметр может быть одним из следующих значений:

Значение:

Описание:

WM_CREATE

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

WM_DESTROY

Уничтожение дочернего окна.

WM_LBUTTONDOWN

Нажатие левой кнопки мыши.

WM_MBUTTONDOWN

Нажатие средней кнопки мыши.

WM_RBUTTONDOWN

Нажатие правой кнопки мыши.

idChild

Если параметр fwEvent равен WM_CREATE или WM_DESTROY, то idChild определяет идентификатор дочернего окна. В других случаях, idChild не определен.

lValue

Содержит дескриптор дочернего окна (полученный в LOWORD(lParam)), если параметр fwEvent равен WM_CREATE или WM_DESTROY; в других случаях, lValue содержит x- и y-координаты курсора. x-координата находится в младшем слове, а y-координата находится в старшем слове.

10) При уничтожении дочернего окна функцией DestroyWindow() родительскому окну тоже передается сообщение wm_destroy.

Ввод строки пароля в дочернем окне

В программе для Windows ввод строки может состоять из трех этапов.

1) На первом этапе создаётся главное окно приложения, устанавливаются начальные значения рабочих переменных, обозначается на экране место для отображения вводимой строки и осуществляется иная подготовительная работа.

2) На втором этапе создается дочернее окно. Его оконная процедура принимает символы по мере их поступления и заносит в строку.

3) На третьем этапе процесс извещается о получении строки. Для реализации этого этапа можно создать функцию InitStr().

4) После того, как дочернее окно было создано, оно может посылать сообщение wm_command, уведомляющие pодительское окно об изменении своего состояния.

Параметр

Описание

LOWORD (wParam)

Идентификатор дочернего окна

HIWORD (wParam)

Код уведомления

lParam

Описатель дочернего окна

Поэтому, после создания дочеpних окон, pодительское окно должно обрабатывать сообщения WM_COMMAND, чтобы быть способным получать коды уведомления от дочеpних окон.

5) Ввод пароля можно организовать при помощи функции InitStr(), примерный синтаксис которой приведен ниже:

InitStr(HWND,<строка приёма пароля>,<размер строки>,<символ-заполнитель>)

6) Ввод пароля в строку char PassWord[7] организуется по щелчку левой кнопкой мыши в главном окне. В оконной процедуре главного окна WndProc вызывается функция запуска ввода пароля.

case WM_LBUTTONDOWN:

InitStr(hWnd, PassWord, 8, '*');

break;

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