double arrow

Дочерние окна. Стиль WS_CHILDWINDOW

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

#define WS_CHILDWINDOW (WS_CHILD)

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

Перечислим особенности дочерних окон.

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

Дочерние окна всегда располагаются на поверхности окна-родителя. При создании дочернего окна начало системы координат расположено в левом верхнем углу внутренней поверхности окна-родителя (но не в верхнем углу экрана, как это было для перекрывающихся и временных окон).

Так как дочерние окна перекрывают окно-родителя, если вы сделаете щелчок мышью над поверхностью дочернего окна, сообщение от мыши попадет в функцию дочернего, но не родительского окна. Само же дочернее окно пошлет родителю сообщение WM_COMMAND, чтобы сообщить, что с ним происходит.

Приложения Win32 должны разбирать сообщение WM_COMMAND на составные части следующим образом:

case WM_COMMAND:{ wId = LOWORD(wParam); // идентификатор элемента управления nCmd = HIWORD(wParam); // код извещения hWnd = (HWND)(UINT)lParam; // идентификатор дочернего окна // код}

Таблица 8


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



Сейчас читают про: