Cтраница 3
Первое сообщение - ACN START - посылается приложению, а, точнее, родительскому окну, в момент начала проигрывания видео-клипа. [31]
При каком-либо воздействии на них или изменении своего состояния они посылают уведомляющее сообщение родительскому окну. [32]
Рассмотрим теперь, как можно сделать обработчик команды, по которой пользователь в родительском окне задает создание нового окна документов - нового экземпляра дочерней формы. [33]
Поскольку, как мы выяснили, окно этого объекта тесно связано с рабочей областью родительского окна, то, прежде всего, необходимо переопределить функцию родительского фрейма CFrameWnd:: OnCreateClient, из которой вызвать одну из двух функций, отвечающих за создание окна Windows и присоединение его к соответствующему объекту. [34]
Как видите, достаточно много стилей панелей элементов управления связано со способом ее размещения в родительском окне. [35]
Существуют только в пределах родительского окна: дочерние окна останавливаются при попытке переместить их через границы родительского окна и при движении последнего сохраняют свою позицию относительно родительского окна. [36]
Кнопка представляет собой прямоугольник со слегка закругленными краями, содержащий текст или графическое изображение, посылаемые родительскому окну при воздействии на эту кнопку щелчком мыши. [37]
Для закрытия активного окна пользователь может использовать комбинацию клавиш Ctrl F4, а комбинацией Alt F4 закрыть родительское окно. [38]
Независимо от того, как ориентирован элемент управления - горизонтально или вертикально, - уведомления он посылает родительскому окну в рамках сообщения WM HSCROLL. Для обработки сообщений от линейки с бегунком следует перегрузить функцию класса родительского окна OnHScroll. Эта функция получает код уведомления и указатель на объект CSIiderCtrl. Следует иметь в виду, что соответствующий параметр функции имеет тип указателя на класс CScrollCtrl, поэтому для вызова функций-членов класса CSIiderCtrl следует произвести преобразование типа. [39]
Вторая категория включает извещения ( notification messages) от элементов управления и других дочерних окон, направляемые своим родительским окнам. Например, элемент управления LISTVIEW посылает своему родительскому окну сообщение WM COMMAND, содержащее код извещения LVN SETDISPINFO, когда требуется обновить информацию об элементах списка. Оконная процедура отвечает на полученное извещение заполнением структуры LV DISPINFO и передачей ее обратно в элемент управления. Механизмы передачи извещений и других ШМ - сообщений аналогичны, с одним единственным исключением. Извещение BN CLICKED, посылаемое элементом управления BUTTON, когда пользователь щелкает по нему, трактуется как командное сообщение и передается аналогично другим командам. [40]
Заданный вами числовой идентификатор может оказаться важным в дальнейшем, когда вы установите связь между элементом управления и его родительским окном. Если вы решите задать значение этого параметра, то должны будете выбрать уникальное число для каждого управляющего элемента. На это следует обратить внимание, в особенности при работе с элементами управления на диалоговых панелях. В этих случаях числовой идентификатор является единственным связующим звеном между диалогом и элементом управления. [41]
Когда пользователь нажимает кнопку Help ( Справка), панель инструментов посылает извещение TBN CUSTHELP, в ответ на которое родительское окно должно отобразить справочную информацию. При нажатии кнопки Reset ( Сброс) блок диалога посылает извещение TBN RESET, которое говорит о том, что панель инструментов собирается переинициализировать блок диалога. [42]
Для осуществления управления заголовком и связанными с ним столбцами и строками, с помощью средства Class Wizard необходимо добавить в класс родительского окна или блока диалога обработчики сообщений для функции OnNotify. Сообщения посылаются в рамках сообщения WM NOTIFY родительскому окну. [43]
В ситуации, когда дочернее окно w sheetl закрыли, а w sheet2 остается открытым, w sheet2 наследует, ставшее активным, меню родительского окна. Если же w sheetl вновь открыли и переключились обратно к w sheet2, то меню, появившееся вместе с дочерним окном w sheet2, является меню родительского окна. [44]
Если пользователь начинает перемещать какую-либо кнопку панели инструментов, удерживая нажатой клавишу Shift, то элемент управления автоматически обрабатывает операцию перемещения, посылая своему родительскому окну извещение TBN QUERYDELETE, чтобы определить, можно ли удалить кнопку. Операция перемещения заканчивается, если родительское окно возвращает FALSE, в противном случае панель инструментов захватывает ввод от мыши и ждет, когда пользователь отпустит ее кнопку. Как только кнопка отпущена, панель инструментов определяет местонахождение курсора мыши. Если он находится вне панели, то кнопка удаляется. Если на другой кнопке, то в родительское окно посылается извещение TBN QUERYINSERT, чтобы выяснить, можно ли вставить кнопку слева от данной. Кнопка вставляется, если родительское окно возвращает TRUE и не вставляется в противном случае. Если манипуляции с кнопками панели инструментов осуществляются без нажатой клавиши Shift, то родительскому окну дополнительно посылаются два извещения - TBN BEGINDRAG в начале выполнения операции перемещения и TBN ENDDRAG в конце. [45]