Класс CWnd

Предоставляет базовую функциональность всех классов окон в библиотеке Microsoft Foundation Class.

Синтаксис

class CWnd : public CCmdTarget

Участники

Открытые конструкторы

name Описание
CWnd::CWnd Формирует объект CWnd.

Открытые методы

name Описание
CWnd::accDoDefaultAction Вызывается платформой для выполнения объектом действия по умолчанию.
CWnd::accHitTest Вызывается платформой для извлечения дочернего элемента или дочернего объекта в заданной точке экрана.
CWnd::accLocation Вызывается платформой для получения текущего положения указанного объекта на экране.
CWnd::accNavigate Вызывается платформой для перехода к другому элементу пользовательского интерфейса внутри контейнера и, если возможно, для извлечения объекта.
CWnd::accSelect Вызывается платформой для изменения выбранной области или перемещения фокуса клавиатурного ввода указанного объекта.
CWnd::AnimateWindow Анимирует связанный объект"Окно".
CWnd::ArrangeIconicWindows Упорядочивает все свернутые (преобразованные в значки) дочерние окна.
CWnd::Attach Прикрепляет дескриптор Windows к объекту CWnd.
CWnd::BeginModalState Данная функция-член вызывается для преобразования окна фрейма в модальное.
CWnd::BeginPaint Подготавливает CWnd к рисованию.
CWnd::BindDefaultProperty Привязывает простое стандартное свойство привязки вызывающего объекта, отмеченное в библиотеке типов, к курсору, связанному с элементом управления источником данных.
CWnd::BindProperty Привязывает связанное с курсором свойство на элементе управления, привязанном к данным, к элементу управления источником данных и регистрирует такую связь в диспетчере привязки MFC.
CWnd::BringWindowToTop Перемещает CWnd на вершину стека перекрывающихся окон.
CWnd::CalcWindowRect Вызывается для вычисления размеров прямоугольной области окна из клиентской прямоугольной области.
CWnd::CancelToolTips Отключает элемент управления "Всплывающая подсказка".
CWnd::CenterWindow Выравнивает окно по центру относительно его родительских окон.
CWnd::ChangeClipboardChain Удаляет объект CWnd из цепи в окне буфера обмена.
CWnd::CheckDlgButton Устанавливает флажок для элемента управления "Кнопка" или снимает его.
CWnd::CheckRadioButton Отмечает указанный переключатель и убирает отметку для остальных переключателей в указанной группе кнопок.
CWnd::ChildWindowFromPoint Определяет, в каком из указанных дочерних окон содержится заданная точка (если такие окна имеются).
CWnd::ClientToScreen Преобразует клиентские координаты указанной точки или прямоугольника на экране в экранные координаты.
CWnd::CloseWindow Сворачивает окно.
CWnd::ContinueModal Сохраняет модальное состояние окна.
CWnd::Create Создает и инициализирует дочернее окно, связанное с объектом CWnd.
CWnd::CreateAccessibleProxy Создает прокси-сервер Active Accessibility для указанного объекта.
CWnd::CreateCaret Создает новую форму системного курсора и получает его во владение.
CWnd::CreateControl Создает элемент управления ActiveX, который будет представлен в программе MFC объектом CWnd.
CWnd::CreateEx Создает перекрывающееся, всплывающее или дочернее окно Windows и прикрепляет его к объекту CWnd.
CWnd::CreateGrayCaret Создает серый блок для системного курсора и получает этот курсор во владение.
CWnd::CreateSolidCaret Создает сплошной блок для системного курсора и получает этот курсор во владение.
CWnd::DeleteTempMap Автоматически вызывается обработчиком времени простоя CWinApp и удаляет все временные объекты CWnd, созданные FromHandle.
CWnd::DestroyWindow Уничтожает прикрепленное окно Windows.
CWnd::Detach Отсоединяет дескриптор Windows от объекта CWnd и возвращает дескриптор.
CWnd::DlgDirList Заполняет список файлами или каталогами.
CWnd::DlgDirListComboBox Заполняет список элемента управления "Поле со списком" перечнем файлов или каталогов.
CWnd::DlgDirSelect Извлекает текущее выделение из списка.
CWnd::DlgDirSelectComboBox Извлекает текущее выделение списка элемента управления "Поле со списком".
CWnd::DragAcceptFiles Указывает, что в окно можно перетаскивать файлы.
CWnd::DragDetect Захватывает мышь и отслеживает ее движение, пока пользователь не отпустит левую кнопку мыши, не нажмет клавишу ESC или не переместит мышь за пределы прямоугольника перетаскивания, в котором находится указанная точка.
CWnd::DrawAnimatedRects Рисует каркасный прямоугольник и анимирует его для обозначения открытия значка, а также сворачивания или разворачивания окна.
CWnd::DrawCaption Рисует заголовок.
CWnd::DrawMenuBar Перерисовывает строку меню.
CWnd::EnableActiveAccessibility Включает пользовательские функции Active Accessibility.
CWnd::EnableDynamicLayout Включает динамическое изменение положения и размера дочерних окон при изменении размеров родительского окна.
CWnd::EnableD2DSupport Включает или отключает поддержку окнами D2D. Данный метод следует вызывать до инициализации основного окна.
CWnd::EnableScrollBar Включает или выключает одну или обе стрелки полосы прокрутки.
CWnd::EnableScrollBarCtrl Включает или выключает элемент управления "Полоса прокрутки" того же уровня.
CWnd::EnableToolTips Включает элемент управления "Всплывающая подсказка".
CWnd::EnableTrackingToolTips Включает элемент управления "Всплывающая подсказка" в режиме отслеживания.
CWnd::EnableWindow Разрешает или запрещает ввод с помощью мыши и клавиатуры.
CWnd::EndModalLoop Снимает с окна модальное состояние.
CWnd::EndModalState Данная функция-член вызывается для изменения состояния окна с модального на немодальное.
CWnd::EndPaint Отмечает завершение рисования.
CWnd::ExecuteDlgInit Инициирует ресурс диалогового окна.
CWnd::FilterToolTipMessage Извлекает заголовок или текст, связанный с элементом управления в диалоговом окне.
CWnd::FindWindow Возвращает дескриптор окна, идентифицированного по имени и классу.
CWnd::FindWindowEx Возвращает дескриптор окна, идентифицированного по имени и классу.
CWnd::FlashWindow Окно однократно мигает.
CWnd::FlashWindowEx Мигание окна с дополнительными возможностями.
CWnd::FromHandle Возвращает указатель на объект CWnd, когда дескриптор передается окну. Если объект CWnd не прикреплен к дескриптору, создается и прикрепляется временный объект CWnd.
CWnd::FromHandlePermanent Возвращает указатель на объект CWnd, когда дескриптор передается окну.
CWnd::get_accChild Вызывается платформой для извлечения адреса интерфейса IDispatch для указанного дочернего элемента.
CWnd::get_accChildCount Вызывается платформой для извлечения количества дочерних элементов, принадлежащих этому объекту.
CWnd::get_accDefaultAction Вызывается платформой для извлечения строки, описывающей действие объекта по умолчанию.
CWnd::get_accDescription Вызывается платформой для извлечения строки, описывающей внешний вид указанного объекта.
CWnd::get_accFocus Вызывается платформой для извлечения объекта, имеющего фокус клавиатурного ввода.
CWnd::get_accHelp Вызывается платформой для получения строки свойства справки объекта.
CWnd::get_accHelpTopic Вызывается платформой для извлечения полного пути файла WinHelp, связанного с указанным объектом и идентификатором нужного раздела в файле.
CWnd::get_accKeyboardShortcut Вызывается платформой для извлечения сочетания клавиш указанного объекта или клавиши доступа к нему.
CWnd::get_accName Вызывается платформой для извлечения имени указанного объекта.
CWnd::get_accParent Вызывается платформой для извлечения интерфейса IDispatch родительского элемента данного объекта.
CWnd::get_accRole Вызывается платформой для извлечения информации, описывающей роль указанного объекта.
CWnd::get_accSelection Вызывается платформой для извлечения выбранного дочернего элемента этого объекта.
CWnd::get_accState Вызывается платформой для извлечения текущего состояния указанного объекта.
CWnd::get_accValue Вызывается платформой для извлечения значения указанного объекта.
CWnd::GetActiveWindow Извлекает активное окно.
CWnd::GetAncestor Извлекает объект окна-предка для указанного окна.
CWnd::GetCapture Извлекает объект CWnd, захваченный мышью.
CWnd::GetCaretPos Извлекает клиентские координаты текущего положения курсора.
CWnd::GetCheckedRadioButton Возвращает идентификатор отмеченного переключателя в группе кнопок.
CWnd::GetClientRect Возвращает размеры клиентской области CWnd.
CWnd::GetClipboardOwner Извлекает указатель на текущего владельца буфера обмена.
CWnd::GetClipboardViewer Извлекает указатель на первое окно в цепочке окон буфера обмена.
CWnd::GetControlUnknown Извлекает указатель на неизвестный элемент управления ActiveX.
CWnd::GetDC Извлекает контекст отображения для клиентской области.
CWnd::GetDCEx Извлекает контекст отображения для клиентской области и включает обрезку при рисовании.
CWnd::GetDCRenderTarget Извлекает целевой объект отрисовки из контекста устройства для окна CWnd.
CWnd::GetDescendantWindow Выполняет поиск всех окон-потомков и возвращает окно с указанным идентификатором.
CWnd::GetDesktopWindow Извлекает окно рабочего стола Windows.
CWnd::GetDlgCtrlID Если окно CWnd является дочерним, вызов этой функции возвращает значение его идентификатора.
CWnd::GetDlgItem Извлекает из указанного диалогового окна элемент управления с указанным идентификатором.
CWnd::GetDlgItemInt Преобразует текст элемента управления в указанном диалоговом окне в целое число.
CWnd::GetDlgItemText Извлекает заголовок или текст, связанный с элементом управления.
CWnd::GetDSCCursor Извлекает указатель на базовый курсор, который определяется свойствами DataSource, UserName, Password, и SQL элемента управления источником данных.
CWnd::GetDynamicLayout Извлекает указатель на объект диспетчера динамического макета.
CWnd::GetExStyle Возвращает расширенный стиль окна.
CWnd::GetFocus Извлекает объект CWnd, на котором в данный момент установлен фокус ввода.
CWnd::GetFont Извлекает текущий шрифт.
CWnd::GetForegroundWindow Возвращает указатель на окно переднего плана (окно верхнего уровня, в котором пользователь работает на данный момент).
CWnd::GetIcon Извлекает дескриптор значка.
CWnd::GetLastActivePopup Определяет последнее проявлявшее активность всплывающее окно, принадлежащее классу CWnd.
CWnd::GetLayeredWindowAttributes Получает ключ цвета прозрачности многослойного окна.
CWnd::GetMenu Извлекает указатель на заданное меню.
CWnd::GetNextDlgGroupItem Ищет следующий (или предыдущий) элемент управления в группе элементов управления.
CWnd::GetNextDlgTabItem Извлекает первый элемент управления со WS_TABSTOP следующим стилем (или перед ним) указанного элемента управления.
CWnd::GetNextWindow Возвращает следующее или предыдущее окно в списке диспетчера окон.
CWnd::GetOleControlSite Извлекает настраиваемый сайт для указанного элемента управления ActiveX.
CWnd::GetOpenClipboardWindow Извлекает указатель на окно с открытым буфером обмена.
CWnd::GetOwner Извлекает указатель на владельца объекта CWnd.
CWnd::GetParent Извлекает родительское окно объекта CWnd (при наличии).
CWnd::GetParentFrame Извлекает родительское окно фрейма объекта CWnd.
CWnd::GetParentOwner Возвращает указатель на родительское окно дочернего окна.
CWnd::GetProperty Извлекает свойство элемента управления ActiveX.
CWnd::GetRenderTarget Возвращает целевой объект отрисовки, связанный с данным окном.
CWnd::GetSafeHwnd Возвращает m_hWnd значение или null, если this указатель имеет значение null.
CWnd::GetSafeOwner Извлекает безопасного владельца указанного окна.
CWnd::GetScrollBarCtrl Возвращает элемент управления "Полоса прокрутки" того же уровня.
CWnd::GetScrollBarInfo Извлекает сведения об указанной полосе прокрутки.
CWnd::GetScrollInfo Извлекает данные о полосе прокрутки, содержащиеся в структуре SCROLLINFO.
CWnd::GetScrollLimit Извлекает ограничение полосы прокрутки.
CWnd::GetScrollPos Извлекает текущее положение ползунка.
CWnd::GetScrollRange Копирует текущие значения минимума и максимума указанной полосы прокрутки.
CWnd::GetStyle Возвращает стиль текущего окна.
CWnd::GetSystemMenu Позволяет приложению получить доступ к оконному меню для копирования и изменения.
CWnd::GetTitleBarInfo Извлекает сведения об указанной строке заголовка.
CWnd::GetTopLevelFrame Извлекает окно фрейма верхнего уровня для указанного окна.
CWnd::GetTopLevelOwner Извлекает окно верхнего уровня.
CWnd::GetTopLevelParent Извлекает родительское окно верхнего уровня для указанного окна.
CWnd::GetTopWindow Возвращает первое дочернее окно, принадлежащее к классу CWnd.
CWnd::GetUpdateRect Извлекает координаты наименьшего прямоугольника, в который полностью входит область обновления CWnd.
CWnd::GetUpdateRgn Извлекает область обновления CWnd.
CWnd::GetWindow Возвращает окно, связанное с данным окном указанным образом.
CWnd::GetWindowContextHelpId Извлекает идентификатор контекста для справки.
CWnd::GetWindowDC Извлекает контекст отображения для всего окна, включая его строку заголовка, меню и полосы прокрутки.
CWnd::GetWindowedChildCount Возвращает количество связанных дочерних окон.
CWnd::GetWindowInfo Возвращает информацию об окне.
CWnd::GetWindowlessChildCount Возвращает количество связанных безоконных дочерних окон.
CWnd::GetWindowPlacement Получает состояние отображения, а также обычное (восстановленное), свернутое и развернутое состояния окна.
CWnd::GetWindowRect Получает экранные координаты объекта CWnd.
CWnd::GetWindowRgn Извлекает копию области окна.
CWnd::GetWindowText Возвращает текст или заголовок окна (при наличии).
CWnd::GetWindowTextLength Возвращает длину текста или заголовка окна.
CWnd::HideCaret Скрывает курсор, удалив его из отображаемой области.
CWnd::HiliteMenuItem Выделяет или отменяет выделение элемента меню верхнего уровня (в строке меню).
CWnd::HtmlHelp Вызывается для запуска приложения HTMLHelp.
CWnd::Invalidate Делает недействительной всю клиентскую область.
CWnd::InvalidateRect Делает недействительной клиентскую область в пределах заданного прямоугольника, добавляя этот прямоугольник в текущую область обновления.
CWnd::InvalidateRgn Делает недействительной клиентскую область в пределах заданной области, добавляя эту область в текущую область обновления.
CWnd::InvokeHelper Вызывает метод или свойство элемента управления ActiveX.
CWnd::IsChild Указывает, является CWnd дочерним окном или другим прямым потомком указанного окна.
CWnd::IsD2DSupportEnabled Определяет, включена ли поддержка D2D.
CWnd::IsDialogMessage Определяет, предназначено ли данное сообщение для немодального диалогового окна, и, если предназначено, обрабатывает его.
CWnd::IsDlgButtonChecked Определяет, отмечен ли элемент управления "Кнопка".
CWnd::IsDynamicLayoutEnabled Определяет, активен ли для данного окна динамический макет. Если динамический макет активен, положение и размеры дочерних окон могут меняться при изменении пользователем размера родительского окна.
CWnd::IsIconic Определяет, является ли объект CWnd свернутым (преобразованным в значок).
CWnd::IsTouchWindow Указывает, поддерживает ли объект CWnd сенсорный ввод.
CWnd::IsWindowEnabled Определяет, возможен ли в окне ввод с помощью мыши и клавиатуры.
CWnd::IsWindowVisible Определяет, является ли окно видимым.
CWnd::IsZoomed Определяет, является ли объект CWnd развернутым.
CWnd::KillTimer Уничтожает системный таймер.
CWnd::LockWindowUpdate Отключает или повторно включает возможность рисования в заданном окне.
CWnd::MapWindowPoints Преобразует набор точек из координатного пространства объекта CWnd в координатное пространство другого окна.
CWnd::MessageBox Создает и отображает окно, содержащее предоставленные приложением сообщение и заголовок.
CWnd::ModifyStyle Изменяет стиль текущего окна.
CWnd::ModifyStyleEx Изменяет расширенный стиль окна.
CWnd::MoveWindow Изменяет положение и размеры объекта CWnd.
CWnd::NotifyWinEvent Сообщает системе, что произошло предопределенное событие.
CWnd::OnAmbientProperty Реализует значения внешнего свойства.
CWnd::OnDrawIconicThumbnailOrLivePreview Вызывается платформой, когда необходимо отобразить растровое изображение на эскизе вкладки Windows 7 или клиенте для быстрого просмотра приложения.
CWnd::OnHelp Обрабатывает справку F1 в приложении (с использованием текущего контекста).
CWnd::OnHelpFinder Обрабатывает ID_HELP_FINDER команды и ID_DEFAULT_HELP .
CWnd::OnHelpIndex Обрабатывает ID_HELP_INDEX команду и предоставляет раздел справки по умолчанию.
CWnd::OnHelpUsing Обрабатывает команду ID_HELP_USING.
CWnd::OnToolHitTest Определяет, находится ли указатель в прямоугольнике указанного инструмента и извлекает информацию об этом инструменте.
CWnd::OpenClipboard Открывает буфер обмена. Другие приложения не смогут изменять буфер обмена, пока не будет CloseClipboard вызвана функция Windows.
CWnd::PaintWindowlessControls Рисует неоконные элементы управления в контейнере элемента управления.
CWnd::PostMessage Размещает сообщение в очереди приложения, а затем возвращает управление, не ожидая окончания обработки сообщения окном.
CWnd::PreCreateWindow Вызывается до создания окна Windows, присоединенного к данному объекту класса CWnd.
CWnd::PreSubclassWindow Разрешает выполнение других необходимых подклассов до SubclassWindow вызова метода.
CWnd::PreTranslateMessage Используется объектом CWinApp для фильтрации сообщений окон до их передачи функциям Windows TranslateMessage и DispatchMessage.
CWnd::Print Рисует текущее окно в заданном контексте устройства.
CWnd::PrintClient Рисует любое окно в заданном контексте устройства (обычно принтера).
CWnd::PrintWindow Копирует визуальное окно в указанный контекст устройства (обычно принтера).
CWnd::RedrawWindow Обновляет заданную прямоугольную или другую область в клиентской области.
CWnd::RegisterTouchWindow Регистрация и отмена регистрации поддержки технологии касания Windows.
CWnd::ReleaseDC Освобождает контексты устройств клиента и окна, делая возможным их использование другими приложениями.
CWnd::RepositionBars Изменяет положение панелей элементов управления в клиентской области.
CWnd::RunModalLoop Извлекает, преобразует или передает сообщения для окна, находящегося в модальном состоянии.
CWnd::ScreenToClient Преобразует экранные координаты указанной точки или прямоугольника в клиентские координаты.
CWnd::ScrollWindow Прокручивает содержимое клиентской области.
CWnd::ScrollWindowEx Прокручивает содержимое клиентской области. Аналогично ScrollWindow, но с дополнительными возможностями.
CWnd::SendChildNotifyLastMsg Передает дочернему окну уведомляющее сообщение от родительского окна, чтобы дочернее окно могло обработать задачу.
CWnd::SendDlgItemMessage Отправляет сообщение указанному элементу управления.
CWnd::SendMessage Передает сообщение объекту CWnd и не возвращает управление, пока оно не будет обработано.
CWnd::SendMessageToDescendants Отправляет сообщение всем окнам-потомкам данного окна.
CWnd::SendNotifyMessage Отправляет указанное сообщение окну и возвращает управление при первой возможности, в зависимости от того, создано ли окно вызывающим потоком.
CWnd::SetActiveWindow Активирует окно.
CWnd::SetCapture Весь последующий ввод с помощью мыши передается объекту CWnd.
CWnd::SetCaretPos Перемещает курсор в указанную позицию.
CWnd::SetClipboardViewer Добавляет объект CWnd в цепочку окон, которым отправляются уведомления при изменении содержимого буфера обмена.
CWnd::SetDlgCtrlID Задает для окна идентификатор элемента управления или окна. Идентификатор может задаваться для любого дочернего окна, а не только для элемента управления в диалоговом окне.
CWnd::SetDlgItemInt Располагает текст элемента управления в виде строки, являющейся представлением целого числа.
CWnd::SetDlgItemText Задает заголовок или текст элемента управления в указанном диалоговом окне.
CWnd::SetFocus Утверждает фокус ввода.
CWnd::SetFont Задает текущий шрифт.
CWnd::SetForegroundWindow Помещает создавший окно поток на передний план и активирует окно.
CWnd::SetIcon Задает дескриптор для указанного значка.
CWnd::SetLayeredWindowAttributes Задает ключ цвета прозрачности многослойного окна.
CWnd::SetMenu Меняет указанное меню на новое.
CWnd::SetOwner Изменяет владельца объекта CWnd.
CWnd::SetParent Изменяет родительское окно.
CWnd::SetProperty Задает свойство элемента управления ActiveX.
CWnd::SetRedraw Разрешает перерисовку изменений объекта CWnd или запрещает ее.
CWnd::SetScrollInfo Задает сведения о полосе прокрутки.
CWnd::SetScrollPos Задает текущее положение ползунка и, если оно указано, перерисовывает полосу прокрутки в соответствии с новым положением.
CWnd::SetScrollRange Задает для указанной полосы прокрутки положения минимума и максимума.
CWnd::SetTimer Устанавливает системный таймер, который отправляет WM_TIMER сообщение при активации.
CWnd::SetWindowContextHelpId Задает идентификатор контекста справки.
CWnd::SetWindowPlacement Задает состояние отображения, а также обычное (восстановленное), свернутое и развернутое состояния окна.
CWnd::SetWindowPos Изменяет размер, положение и порядок дочерних и всплывающих окон, а также окон верхнего уровня.
CWnd::SetWindowRgn Задает область окна.
CWnd::SetWindowText Меняет текст или заголовок окна (при наличии) на указанный текст.
CWnd::ShowCaret Показывает курсор в его текущем положении на экране. После отображения курсор начинает автоматически мигать.
CWnd::ShowOwnedPopups Показывает или скрывает все всплывающие окна, принадлежащие окну.
CWnd::ShowScrollBar Показывает или скрывает полосу прокрутки.
CWnd::ShowWindow Показывает или скрывает окно.
CWnd::SubclassDlgItem Прикрепляет элемент управления Windows к объекту CWnd и отдает ему команду перенаправлять сообщения с помощью схемы сообщений объекта CWnd.
CWnd::SubclassWindow Прикрепляет окно к объекту CWnd и отдает ему команду перенаправлять сообщения с помощью схемы сообщений объекта CWnd.
CWnd::UnlockWindowUpdate Выполняет разблокировку окна, заблокированного с помощью метода CWnd::LockWindowUpdate.
CWnd::UnsubclassWindow Отсоединяет окно от CWnd объекта
CWnd::UpdateData Инициализирует или извлекает данные из диалогового окна.
CWnd::UpdateDialogControls Запрос на обновление состояния кнопок и других элементов управления диалогового окна.
CWnd::UpdateLayeredWindow Обновляет положение, размер, форму, содержимое и прозрачность многослойного окна.
CWnd::UpdateWindow Обновляет клиентскую область.
CWnd::ValidateRect Проверяет клиентскую область в пределах заданного прямоугольника, удаляя этот прямоугольник из текущей области обновления.
CWnd::ValidateRgn Проверяет клиентскую область в пределах заданной области, удаляя ее из текущей области обновления.
CWnd::WindowFromPoint Идентифицирует окно, содержащее заданную точку.
CWnd::WinHelp Вызывается для запуска приложения WinHelp.

Защищенные методы

Название Описание
CWnd::Default Вызывает процедуру окна по умолчанию, обеспечивающую стандартную обработку любых сообщений окна, не обработанных приложением.
CWnd::DefWindowProc Вызывает процедуру окна по умолчанию, обеспечивающую стандартную обработку любых сообщений окна, не обработанных приложением.
CWnd::DoDataExchange Обеспечивает обмен данными диалогового окна и их проверку. Вызывается методом UpdateData.
CWnd::GetCurrentMessage Возвращает указатель на сообщение, обрабатываемое этим окном в настоящий момент. Должен вызываться только в On Message функции-члене обработчика сообщений.
CWnd::InitDynamicLayout Вызывается платформой для инициализации динамического макета окна.
CWnd::LoadDynamicLayoutResource Загружает из файла ресурсов сведения о динамическом макете.
CWnd::OnActivate Вызывается при активации или деактивации объекта CWnd.
CWnd::OnActivateApp Вызывается непосредственно перед активацией или деактивацией приложения.
CWnd::OnAppCommand Вызывается, когда пользователь создает команду события приложения.
CWnd::OnAskCbFormatName Вызывается приложением просмотра буфера обмена, когда владелец буфера обмена отображает его содержимое.
CWnd::OnCancelMode Вызывается, чтобы разрешить объекту CWnd выполнить отмену всех внутренних режимов, таких как захват мыши.
CWnd::OnCaptureChanged Отправляет сообщение окну, теряющему захват мыши.
CWnd::OnChangeCbChain Уведомляет об удалении указанного окна из цепочки.
CWnd::OnChangeUIState Вызывается, когда необходимо изменить состояние пользовательского интерфейса.
CWnd::OnChar Вызывается, когда нажатие клавиши преобразуются в несистемный символ.
CWnd::OnCharToItem Вызывается дочерним списком со LBS_WANTKEYBOARDINPUT стилем в ответ на WM_CHAR сообщение.
CWnd::OnChildActivate Вызывается для дочерних окон многодокументного интерфейса (MDI) при изменении размера или положения объекта CWnd, а также при активации объекта CWnd.
CWnd::OnChildNotify Вызывается родительским окном, чтобы позволить уведомляющему элементу управления ответить на уведомление элемента управления.
CWnd::OnClipboardUpdate Вызывается при изменении содержимого буфера обмена.
CWnd::OnClose Вызывается в качестве сигнала о необходимости закрытия объекта CWnd.
CWnd::OnColorizationColorChanged Вызывается при изменении политики отрисовки неклиентской области.
CWnd::OnCommand Вызывается, когда пользователь выбирает какую-либо команду.
CWnd::OnCompacting Вызывается, когда Windows обнаруживает нехватку системной памяти.
CWnd::OnCompareItem Вызывается для определения относительной позиции нового элемента в элементе управления "Список" или в дочернем упорядоченном элементе управления "Поле со списком", рисуемом владельцем.
CWnd::OnCompositionChanged Вызывается для всех окон верхнего уровня при включении или выключении композиции рабочего стола в диспетчере окон рабочего стола (DWM).
CWnd::OnContextMenu Вызывается, когда пользователь щелкает в окне правой кнопкой мыши.
CWnd::OnCopyData Копирует данные из одного приложения в другое.
CWnd::OnCreate Вызывается при создании окна.
CWnd::OnCtlColor Вызывается непосредственно перед рисованием элемента управления, если объект CWnd является родительским для элемента управления.
CWnd::OnDeadChar Вызывается, когда нажатие клавиши преобразуется в несистемный диакритический знак.
CWnd::OnDeleteItem Вызывается, когда дочерний элемент управления "Поле со списком", рисуемый владельцем, или элемент управления "Поле со списком" уничтожается, а также при удалении из элемента управления элементов списка.
CWnd::OnDestroy Вызывается при уничтожении объекта CWnd.
CWnd::OnDestroyClipboard Вызывается, когда буфер обмена очищается с помощью вызова функции Windows EmptyClipboard .
CWnd::OnDeviceChange Сообщает приложению или драйверу устройства об изменении конфигурации оборудования устройства или компьютера.
CWnd::OnDevModeChange Вызывается для всех окон верхнего уровня, когда пользователь меняет параметры режима устройства.
CWnd::OnDrawClipboard Вызывается при изменении содержимого буфера обмена.
CWnd::OnDrawItem Вызывается, когда необходимо визуально изобразить рисуемый владельцем дочерний элемент управления "Кнопка", элемент управления "Поле со списком", элемент управления "Поле" или меню.
CWnd::OnDropFiles Вызывается, когда пользователь отпускает левую кнопку мыши в окне, зарегистрировавшем себя в качестве получателя переносимых файлов.
CWnd::OnEnable Вызывается при включении или отключении объекта CWnd.
CWnd::OnEndSession Вызывается во время окончания сессии.
CWnd::OnEnterIdle Вызывается для информирования процедуры главного окна приложения о переходе модального диалогового окна или меню в состояние простоя.
CWnd::OnEnterMenuLoop Вызывается при входе в модальный цикл меню.
CWnd::OnEnterSizeMove Вызывается, когда затронутое окно входит в модальный цикл перемещения или изменения размера.
CWnd::OnEraseBkgnd Вызывается, когда требуется стирание фона окна.
CWnd::OnExitMenuLoop Вызывается при выходе из модального цикла меню.
CWnd::OnExitSizeMove Вызывается, когда затронутое окно выходит из модального цикла перемещения или изменения размера.
CWnd::OnFontChange Вызывается при изменении пула ресурсов шрифтов.
CWnd::OnGetDlgCode Вызывается, чтобы элемент управления мог самостоятельно обрабатывать нажатия на клавиши со стрелками и клавишу TAB.
CWnd::OnGetMinMaxInfo Вызывается, когда Windows требуется получить сведения о положении в развернутом состоянии, размерах, минимальном или максимальном размере отслеживания.
CWnd::OnHelpInfo Вызывается платформой, когда пользователь нажимает клавишу F1.
CWnd::OnHotKey Вызывается, когда пользователь нажимает общесистемное сочетание клавиш.
CWnd::OnHScroll Вызывается, когда пользователь щелкает горизонтальную полосу прокрутки объекта CWnd.
CWnd::OnHScrollClipboard Вызывается, когда владелец буфера обмена должен прокрутить изображение из буфера, объявить необходимый раздел недействительным, а также обновить значения полосы прокрутки.
CWnd::OnIconEraseBkgnd Вызывается, когда объект CWnd сворачивается (преобразуется в значок) и фон значка необходимо заполнить до его рисования.
CWnd::OnInitMenu Вызывается непосредственно перед тем, как меню станет активным.
CWnd::OnInitMenuPopup Вызывается непосредственно перед тем, как всплывающее меню станет активным.
CWnd::OnInputDeviceChange Вызывается при добавлении в систему устройства ввода-вывода или его удаления из нее.
CWnd::OnInputLangChange Вызывается после изменения языка ввода приложения.
CWnd::OnInputLangChangeRequest Вызывается, когда пользователь выбирает новый язык ввода.
CWnd::OnKeyDown Вызывается при нажатии несистемной клавиши.
CWnd::OnKeyUp Вызывается, когда нажатая несистемная клавиша отпускается.
CWnd::OnKillFocus Вызывается непосредственно перед тем, как объект CWnd теряет фокус ввода.
CWnd::OnLButtonDblClk Вызывается, когда пользователь дважды щелкает левой кнопкой мыши.
CWnd::OnLButtonDown Вызывается, когда пользователь щелкает левой кнопкой мыши.
CWnd::OnLButtonUp Вызывается, когда пользователь отпускает левую кнопку мыши.
CWnd::OnMButtonDblClk Вызывается, когда пользователь дважды щелкает средней кнопкой мыши.
CWnd::OnMButtonDown Вызывается, когда пользователь щелкает средней кнопкой мыши.
CWnd::OnMButtonUp Вызывается, когда пользователь отпускает среднюю кнопку мыши.
CWnd::OnMDIActivate Вызывается при активации или деактивации дочернего окна MDI.
CWnd::OnMeasureItem Вызывается для рисуемого владельцем дочернего элемента управление "Поле со списком", элемента управление "Список" или меню при создании нового элемента управления. Объект CWnd сообщает Windows размеры этого элемента управления.
CWnd::OnMenuChar Вызывается, когда пользователь нажимает назначенный символ меню, не соответствующий ни одному из символов, назначенных для текущего меню.
CWnd::OnMenuDrag Вызывается, когда пользователь начинает перетаскивать элемент меню.
CWnd::OnMenuGetObject Вызывается когда курсор мыши попадает на элемент меню или перемещается из центра элемента в его верхнюю или нижнюю часть.
CWnd::OnMenuRButtonUp Вызывается, если пользователь отпускает правую кнопку мыши, когда курсор находится на элементе меню.
CWnd::OnMenuSelect Вызывается, когда пользователь выбирает элемент меню.
CWnd::OnMouseActivate Вызывается, если пользователь щелкает кнопкой мыши, когда курсор находится в неактивном окне.
CWnd::OnMouseHover Вызывается при наведении курсора на клиентскую область окна в течение периода времени, указанного в предыдущем вызове метода TrackMouseEvent .
CWnd::OnMouseHWheel Вызывается, если текущее окно создано диспетчером окон рабочего стола (DWM) и развернуто.
CWnd::OnMouseLeave Вызывается, когда курсор покидает клиентскую область окна, указанное в предыдущем вызове метода TrackMouseEvent .
CWnd::OnMouseMove Вызывается при перемещении указателя мыши.
CWnd::OnMouseWheel Вызывается, когда пользователь вращает колесико мыши. Использует обработчик сообщений Windows NT 4.0.
CWnd::OnMove Вызывается после изменения положения объекта CWnd.
CWnd::OnMoving Указывает, что пользователь перемещает объект CWnd.
CWnd::OnNcActivate Вызывается, когда требуется изменить неклиентскую область, чтобы указать на активное или неактивное состояние.
CWnd::OnNcCalcSize Вызывается, когда требуется вычислить размер и положение клиентской области.
CWnd::OnNcCreate Вызывается до OnCreate момента создания области, отличной от клиентской.
CWnd::OnNcDestroy Вызывается при уничтожении неклиентской области.
CWnd::OnNcHitTest Вызывается средой Windows при каждом перемещении указателя мыши, если объект CWnd содержит курсор или захватил ввод с помощью мыши, используя метод SetCapture.
CWnd::OnNcLButtonDblClk Вызывается, если пользователь дважды щелкает левой кнопкой мыши, когда курсор находится в пределах неклиентской области CWnd.
CWnd::OnNcLButtonDown Вызывается, если пользователь щелкает левой кнопкой мыши, когда курсор находится в пределах неклиентской области CWnd.
CWnd::OnNcLButtonUp Вызывается, если пользователь отпускает левую кнопку мыши, когда курсор находится в пределах неклиентской области CWnd.
CWnd::OnNcMButtonDblClk Вызывается, если пользователь дважды щелкает средней кнопкой мыши, когда курсор находится в пределах неклиентской области CWnd.
CWnd::OnNcMButtonDown Вызывается, если пользователь щелкает средней кнопкой мыши, когда курсор находится в пределах неклиентской области CWnd.
CWnd::OnNcMButtonUp Вызывается, если пользователь отпускает среднюю кнопку мыши, когда курсор находится в пределах неклиентской области CWnd.
CWnd::OnNcMouseHover Вызывается при наведении курсора на неклиентскую область окна в течение периода времени, указанного в предыдущем вызове метода TrackMouseEvent .
CWnd::OnNcMouseLeave Платформа вызывает эту функцию-член, когда курсор покидает неклиентскую область окна, заданную в предыдущем вызове метода TrackMouseEvent .
CWnd::OnNcMouseMove Вызывается при перемещении курсора в пределах неклиентской области CWnd.
CWnd::OnNcPaint Вызывается, когда требуется отрисовка неклиентской области.
CWnd::OnNcRButtonDblClk Вызывается, если пользователь дважды щелкает правой кнопкой мыши, когда курсор находится в пределах неклиентской области CWnd.
CWnd::OnNcRButtonDown Вызывается, если пользователь щелкает правой кнопкой мыши, когда курсор находится в пределах неклиентской области CWnd.
CWnd::OnNcRButtonUp Вызывается, если пользователь отпускает правую кнопку мыши, когда курсор находится в пределах неклиентской области CWnd.
CWnd::OnNcRenderingChanged Вызывается при изменении политики отрисовки неклиентской области.
CWnd::OnNcXButtonDblClk Вызывается, когда пользователь дважды щелкает XBUTTON1 или XBUTTON2 курсор находится в области окна, не являющейся клиентской.
CWnd::OnNcXButtonDown Вызывается, когда пользователь нажимает XBUTTON1 или мыши, когда XBUTTON2 курсор находится в области окна, не являющейся клиентской.
CWnd::OnNcXButtonUp Вызывается, когда пользователь отпускает XBUTTON1 или XBUTTON2 мыши, когда курсор находится в области окна, не являющейся клиентской.
CWnd::OnNextMenu Посылается, когда для переключения между панелью меню и системным меню используется клавиша "Стрелка вправо" или "Стрелка влево".
CWnd::OnNotify Вызывается платформой для информирования родительского окна о событии, произошедшем для одного из его элементов управления, или о запросе информации элементом управления.
CWnd::OnNotifyFormat Вызывается для определения того, принимает ли текущее окно структуры ANSI или Unicode в WM_NOTIFY сообщении уведомления.
CWnd::OnPaint Вызывается для перерисовки части окна.
CWnd::OnPaintClipboard Вызывается, когда требуется перерисовка клиентской области окна просмотра буфера обмена.
CWnd::OnPaletteChanged Вызывается, чтобы разрешить окнам, использующим цветовую палитру, реализовать свои логические палитры и обновить клиентские области.
CWnd::OnPaletteIsChanging Информирует другие приложения, когда приложение собирается реализовать свою логическую палитру.
CWnd::OnParentNotify Вызывается при создании или уничтожении дочернего окна, а также если пользователь щелкает кнопкой мыши, когда курсор находится на дочернем окне.
CWnd::OnPowerBroadcast Вызывается при возникновении события управления питанием.
CWnd::OnQueryDragIcon Вызывается, непосредственно перед перетаскиванием свернутого (преобразованного в значок) объекта CWnd.
CWnd::OnQueryEndSession Вызывается при завершении пользователем сеанса Windows.
CWnd::OnQueryNewPalette Сообщает объекту CWnd, что вскоре ему будет передан фокус ввода.
CWnd::OnQueryOpen Вызывается, когда объект CWnd является значком, на открытие которого пользователь подает запрос.
CWnd::OnQueryUIState Вызывается, чтобы извлечь состояние пользовательского интерфейса окна.
CWnd::OnRawInput Вызывается, когда текущее окно получает необработанные данные ввода.
CWnd::OnRButtonDblClk Вызывается, когда пользователь дважды щелкает правой кнопкой мыши.
CWnd::OnRButtonDown Вызывается, когда пользователь щелкает правой кнопкой мыши.
CWnd::OnRButtonUp Вызывается, когда пользователь отпускает правую кнопку мыши.
CWnd::OnRenderAllFormats Вызывается при уничтожении приложения-владельца и необходимости отрисовки всех его форматов.
CWnd::OnRenderFormat Вызывается для владельца буфера обмена при необходимости отрисовки формата, отрисовка которого была отложена.
CWnd::OnSessionChange Вызывается для оповещения приложения об изменении состояния сеанса.
CWnd::OnSetCursor Вызывается, если данные от мыши не фиксируются, и указатель мыши перемещается в окне.
CWnd::OnSetFocus Вызывается, когда объект CWnd получает фокус ввода.
CWnd::OnSettingChange Вызывается, когда функция Win32 SystemParametersInfo меняет параметр уровня системы.
CWnd::OnShowWindow Вызывается непосредственно перед скрытием или отображением объекта CWnd.
CWnd::OnSize Вызывается после изменения размера объекта CWnd.
CWnd::OnSizeClipboard Вызывается при изменении размера клиентской области окна буфера обмена.
CWnd::OnSizing Указывает, что пользователь изменят размер прямоугольника.
CWnd::OnSpoolerStatus Вызывается из диспетчера печати при каждом добавлении задачи в очередь диспетчера или удалении задания из нее.
CWnd::OnStyleChanged Указывает, что SetWindowLong функция Windows изменила один или несколько стилей окна.
CWnd::OnStyleChanging Указывает, что SetWindowLong функция Windows собирается изменить один или несколько стилей окна.
CWnd::OnSysChar Вызывается, когда нажатие клавиши преобразуется в системный символ.
CWnd::OnSysColorChange Вызывается для всех окон верхнего уровня при изменении параметра системного цвета.
CWnd::OnSysCommand Вызывается, когда пользователь выбирает команду в оконном меню или нажимает кнопку развертывания или свертывания.
CWnd::OnSysDeadChar Вызывается, когда нажатие клавиши преобразуется в системный диакритический знак.
CWnd::OnSysKeyDown Вызывается, когда пользователь, удерживая клавишу ALT, нажимает другую клавишу.
CWnd::OnSysKeyUp Вызывается, когда пользователь отпускает клавишу, нажатую при удерживании клавиши ALT.
CWnd::OnTCard Вызывается, когда пользователь нажимает настраиваемую кнопку.
CWnd::OnTimeChange Вызывается для всех окон верхнего уровня после изменения системного времени.
CWnd::OnTimer Вызывается после каждого интервала SetTimer , указанного в.
CWnd::OnTouchInput Обработка одного ввода Windows touch.
CWnd::OnTouchInputs Обработка входных данных Windows touch.
CWnd::OnUniChar Вызывается при нажатии клавиши. То есть текущее окно имеет фокус клавиатуры, а WM_KEYDOWN сообщение преобразуется TranslateMessage функцией.
CWnd::OnUnInitMenuPopup Вызывается при уничтожении раскрывающегося меню или подменю.
CWnd::OnUpdateUIState Вызывается, чтобы изменить состояние пользовательского интерфейса указанного окна и всех его дочерних окон.
CWnd::OnUserChanged Вызывается при входе пользователя в систему или выходе из нее.
CWnd::OnVKeyToItem Вызывается списком, принадлежащим CWnd в ответ на WM_KEYDOWN сообщение.
CWnd::OnVScroll Вызывается, когда пользователь щелкает вертикальную полосу прокрутки окна.
CWnd::OnVScrollClipboard Вызывается, когда владелец должен прокрутить изображение из буфера, объявить необходимый раздел недействительным, а также обновить значения полосы прокрутки.
CWnd::OnWindowPosChanged Вызывается, когда размер, расположение или Z-порядок изменились в результате вызова SetWindowPos или другой функции управления окнами.
CWnd::OnWindowPosChanging Вызывается, когда размер, расположение или Z-порядок собирается измениться в результате вызова SetWindowPos или другой функции управления окнами.
CWnd::OnWinIniChange Вызывается для всех окон верхнего уровня после файла инициализации Windows WIN.INI .
CWnd::OnWndMsg Указывает, что сообщение для окна обработано.
CWnd::OnXButtonDblClk Вызывается, когда пользователь дважды щелкает мышью XBUTTON1 или XBUTTON2 курсор находится в клиентской области окна.
CWnd::OnXButtonDown Вызывается, когда пользователь нажимает XBUTTON1 или XBUTTON2 курсор находится в клиентской области окна.
CWnd::OnXButtonUp Вызывается, когда пользователь отпускается XBUTTON1 или XBUTTON2 курсор находится в клиентской области окна.
CWnd::PostNcDestroy Эта виртуальная функция вызывается функцией OnNcDestroy по умолчанию после уничтожения окна.
CWnd::ReflectChildNotify Вспомогательная функция, отражающая сообщение его источнику.
CWnd::ReflectLastMsg Отражает последнее сообщение дочернему окну.
CWnd::ResizeDynamicLayout Вызывается платформой при изменении размера окна для настройки макета дочерних окон, если для этого окна используется динамический макет.
CWnd::WindowProc Предоставляет объекту CWnd процедуру окна. По умолчанию отправляет сообщения через схему сообщений.

Открытые операторы

Название Описание
CWnd::operator HWND Вызывается для получения дескриптора окна.
CWnd::operator != Определяет, отличается ли окно от окна, его маркером m_hWnd .
CWnd::operator == Определяет, совпадает ли окно с окном, маркером которого является m_hWnd .

Открытые члены данных

Название Описание
CWnd::m_hWnd Указывает HWND, присоединенный к этому объекту CWnd .

Remarks

Объект CWnd используется отдельно от окна Windows, но они тесно связаны. Объект CWnd создается или уничтожается конструктором или деструктором CWnd соответственно. Окно Windows, с другой стороны, представляет собой структуру данных, внутреннюю для Windows, созданную Create функцией-членом и уничтоженную CWnd виртуальным деструктором. DestroyWindowФункция уничтожает окно Windows без уничтожения объекта.

CWndКласс и механизм карт сообщений скрывают WndProc функцию. Входящие сообщения уведомлений Windows автоматически направляются через схему сообщений в соответствующие функции-члены сообщений CWnd . Вы переопределяете функцию-член длясообщения , чтобы обрабатывалось конкретное сообщение члена в производных классах.

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

Дочерние окна создаются в два этапа. Сначала вызовите конструктор CWnd для создания CWnd объекта, а затем вызовите Create функцию члена, чтобы создать дочернее окно и присоединить его к CWnd объекту.

Когда пользователь закроет ваше дочернее окно, уничтожьте объект CWnd или вызовите функцию-член DestroyWindow для удаления окна и уничтожения его структур данных.

В библиотеке Microsoft Foundation Class дальнейшие классы получаются как производные от CWnd, что позволяет создавать окна особых типов. Многие из этих классов, включая CFrameWnd ,,, CMDIFrameWnd CMDIChildWnd CView и CDialog , предназначены для последующего наследования. Классы элементов управления, производные от CWnd , например CButton , могут использоваться напрямую или могут использоваться для дальнейшего наследования классов.

Дополнительные сведения об использовании CWnd см. в разделе Frame Windows и объекты окон.

Иерархия наследования

CObject

CCmdTarget

CWnd

Требования

Заголовок: afxwin.h

CWnd:: Аккдодефаултактион

Вызывается платформой для выполнения объектом действия по умолчанию.

virtual HRESULT accDoDefaultAction(VARIANT varChild);

Параметры

варчилд
Указывает, должно ли вызываться действие по умолчанию в отношении объекта или одного из дочерних элементов объекта. Этот параметр может быть либо CHILDID_SELF (для выполнения действия по умолчанию объекта), либо ИДЕНТИФИКАТОРом дочернего элемента (для выполнения действия по умолчанию одного из дочерних элементов объекта).

Возвращаемое значение

Возвращает S_OK при успешном выполнении — код ошибки COM при сбое. См. раздел возвращаемые значения в IAccessible:: аккдодефаултактион в Windows SDK.

Remarks

Эта функция является частью поддержки Active ACCESSIBILITY MFC.

Переопределите эту функцию в CWnd классе, производном от, чтобы выполнить действие по умолчанию для объекта. Дополнительные сведения см. в разделе IAccessible:: аккдодефаултактион в Windows SDK.

CWnd::accHitTest

Вызывается платформой для извлечения дочернего элемента или дочернего объекта в заданной точке экрана.

virtual HRESULT accHitTest(
    long xLeft,
    long yTop,
    VARIANT* pvarChild);

Параметры

xLeft
Координата по оси X точки, которую необходимо проверить на попадание (в единицах экрана).

yTop
Координата Y точки, которая должна быть проверена на попадание (в единицах экрана).

pvarChild
Получает сведения, идентифицирующие объект в точке, указанной в параметре xLeft и yTop . См pvarID . раздел в в IAccessible::accHitTest Windows SDK.

Возвращаемое значение

Возвращает S_OK значение on Success, код ошибки COM при сбое. См. раздел возвращаемые значения в IAccessible::accHitTest в Windows SDK.

Remarks

Эта функция является частью поддержки Active ACCESSIBILITY MFC.

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

Дополнительные сведения см IAccessible::accHitTest . в разделе Windows SDK.

CWnd::accLocation

Вызывается платформой для получения текущего положения указанного объекта на экране.

virtual HRESULT accLocation(
    long* pxLeft,
    long* pyTop,
    long* pcxWidth,
    long* pcyHeight,
    VARIANT varChild);

Параметры

pxLeft
Получает координату по оси x верхнего левого угла объекта (в единицах экрана).

pyTop
Получает координату по оси y верхнего левого угла объекта (в единицах экрана).

pcxWidth
Получает ширину объекта (в единицах экрана).

pcyHeight
Получает высоту объекта (в единицах экрана).

varChild
Указывает, является ли извлекаемое расположение объектом или одним из дочерних элементов объекта. Этот параметр может быть либо CHILDID_SELF (для получения сведений об объекте), либо с помощью идентификатора дочернего элемента (для получения сведений о дочернем элементе объекта).

Возвращаемое значение

Возвращает S_OK при успешном выполнении — код ошибки COM при сбое. См. раздел возвращаемые значения в IAccessible::accLocation в Windows SDK.

Remarks

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

Дополнительные сведения см IAccessible::accLocation . в разделе Windows SDK.

CWnd::accNavigate

Вызывается платформой для перехода к другому элементу пользовательского интерфейса внутри контейнера и, если возможно, для извлечения объекта.

virtual HRESULT accNavigate(
    long navDir,
    VARIANT varStart,
    VARIANT* pvarEndUpAt);

Параметры

navDir
Указывает направление перехода. См navDir . раздел в в IAccessible::accNavigate Windows SDK.

varStart
Задает начальный объект. См varStart . раздел в в IAccessible::accNavigate Windows SDK.

pvarEndUpAt
Получает сведения о целевом объекте пользовательского интерфейса. См pvarEnd . раздел в в IAccessible::accNavigate Windows SDK.

Возвращаемое значение

Возвращает S_OK значение on Success, код ошибки COM при сбое. См. раздел возвращаемые значения в IAccessible::accNavigate в Windows SDK.

Remarks

Эта функция является частью поддержки Active ACCESSIBILITY MFC.

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

Дополнительные сведения см IAccessible::accNavigate . в разделе Windows SDK.

CWnd::accSelect

Вызывается платформой для изменения выбранной области или перемещения фокуса клавиатурного ввода указанного объекта.

virtual HRESULT accSelect(
    long flagsSelect,
    VARIANT varChild);

Параметры

flagsSelect
Задает способ изменения текущего выделения или фокуса. См flagsSelect . раздел в в IAccessible::accSelect Windows SDK.

varChild
Указывает объект для выбора. Этот параметр может быть либо CHILDID_SELF (чтобы выбрать сам объект), либо идентификатором дочернего элемента (для выбора одного из потомков объекта).

Возвращаемое значение

Возвращает S_OK значение on Success, код ошибки COM при сбое. См. раздел возвращаемые значения в IAccessible::accSelect в Windows SDK.

Remarks

Эта функция является частью поддержки Active ACCESSIBILITY MFC.

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

Дополнительные сведения см IAccessible::accSelect . в разделе Windows SDK.

CWnd::AnimateWindow

Создает специальные эффекты при отображении или скрытии окон.

BOOL AnimateWindow(
    DWORD dwTime,
    DWORD dwFlags);

Параметры

dwTime
Указывает время, затрачиваемое на воспроизведение анимации в миллисекундах. Как правило, воспроизведение анимации занимает 200 миллисекунд.

dwFlags
Задает тип анимации. Полный список возможных значений см. в разделе AnimateWindow .

Возвращаемое значение

Ненулевое значение, если функция выполнена. в противном случае — 0.

Remarks

Эта функция члена эмулирует функциональность функции AnimateWindow , как описано в Windows SDK.

CWnd::ArrangeIconicWindows

Упорядочивает все свернутые (преобразованные в значки) дочерние окна.

UINT ArrangeIconicWindows();

Возвращаемое значение

Высота одной строки значков, если функция выполнена успешно; в противном случае — 0.

Remarks

Эта функция элемента также упорядочивает значки в окне рабочего стола, которое охватывает весь экран. GetDesktopWindowФункция-член получает указатель на объект окна рабочего стола.

Чтобы разместить значки дочерних MDI-окон в окне клиента MDI, вызовите CMDIFrameWnd::MDIIconArrange .

Пример

// arrange minimized MDI child windows
// called from menu item; CMdiChildFrame is derived from CMDIChildWnd
void CMdiChildFrame::OnActionArrangeIconicWindows()
{
   UINT height = GetParent()->ArrangeIconicWindows();   
   TRACE(_T("height = %d\n"), height);
}

CWnd::Attach

Присоединяет окно Windows к CWnd объекту.

BOOL Attach(HWND hWndNew);

Параметры

hWndNew
Задает маркер окна Windows.

Возвращаемое значение

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Пример

В этом примере показано, как использовать Attach и Detach для отображения в окне клиента MDI.

// Declare a CWnd member of CMainFrame
public:
CWnd m_wndMDIClient;
// detach MDI client window in CMainFrame destructor
m_wndMDIClient.Detach();
// In CMainFrame::OnCreate, attach MDI client window

if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1)
   return -1;

// attach MDI client window
if (m_wndMDIClient.Attach(m_hWndMDIClient) == 0)
{
   TRACE(_T("Failed to attach MDIClient.\n"));
   return -1; // fail to create
}

CWnd::BeginModalState

Данная функция-член вызывается для преобразования окна фрейма в модальное.

virtual void BeginModalState();

CWnd::BeginPaint

Готовится CWnd к рисованию и заполнению PAINTSTRUCT структуры данных информацией о выкраске.

CDC* BeginPaint(LPPAINTSTRUCT lpPaint);

Параметры

lpPaint
Указывает на PAINTSTRUCT структуру, которая должна принимать сведения о выкраске.

Возвращаемое значение

Определяет контекст устройства для CWnd . Указатель может быть временным и не должен храниться за пределами области EndPaint .

Remarks

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

Область обновления задается функциями- Invalidate InvalidateRect членами, или InvalidateRgn системой после размера, перемещения, создания, прокрутки или выполнения любой другой операции, влияющей на клиентскую область. Если регион обновления помечен для удаления, BeginPaint отправляет WM_ONERASEBKGND сообщение.

Не вызывайте BeginPaint функцию-член, за исключением того, что в ответ на WM_PAINT сообщение. Каждый вызов функции- BeginPaint члена должен иметь соответствующий вызов EndPaint функции-члена. Если курсор находится в закрашиваемой области, BeginPaint функция-член автоматически скрывает курсор, чтобы предотвратить его стирание.

Пример

// Use BeginPaint and EndPaint when responding to WM_PAINT message
// An alternative method is to use CPaintDC in place of
// BeginPaint and EndPaint
void CMdiView::OnPaint()
{
   PAINTSTRUCT ps;
   CDC *pDC = BeginPaint(&ps);

   pDC->Rectangle(CRect(0, 0, 100, 100));

   EndPaint(&ps);

   // Do not call CView::OnPaint() for painting messages
}

CWnd::BindDefaultProperty

Привязывает свойство простого связанного объекта по умолчанию (например, элемент управления "поле ввода"), как указано в библиотеке типов, к базовому курсору, определяемому DataSource свойствами,, UserName Password и SQL элемента управления источника данных.

void BindDefaultProperty(
    DISPID dwDispID,
    VARTYPE vtProp,
    LPCTSTR szFieldName,
    CWnd* pDSCWnd);

Параметры

dwDispID
Указывает DISPID свойство в элементе управления с привязкой к данным, который должен быть привязан к элементу управления источника данных.

vtProp
Указывает тип свойства для привязки, например,, VT_BSTR VT_VARIANT и т. д.

szFieldName
Задает имя столбца в курсоре, предоставленном элементом управления источника данных, к которому будет привязано свойство.

pDSCWnd
Указывает на окно, в котором размещен элемент управления источника данных, к которому будет привязано свойство. Вызовите GetDlgItem с идентификатором ресурса главного окна DCS, чтобы получить этот указатель.

Remarks

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

Пример

BindDefaultProperty может использоваться в следующем контексте:

BOOL CMyDlg::OnInitDialog()
{
   CWnd *pDSC = GetDlgItem(IDC_DATASOURCE);
   CWnd *pMyBound = GetDlgItem(IDC_MYBOUNDCTRL1);
   pMyBound->BindDefaultProperty(0x1, VT_BSTR, _T("ContactFirstName"), pDSC);
   return TRUE;
}

CWnd::BindProperty

Привязывает привязанное к курсору свойство к элементу управления с привязкой к данным (например, к элементу управления "Сетка") к элементу управления источником данных и регистрирует эту связь с помощью диспетчера привязок MFC.

void BindProperty(
    DISPID dwDispId,
    CWnd* pWndDSC);

Параметры

dwDispId
Указывает DISPID свойство в элементе управления с привязкой к данным, который должен быть привязан к элементу управления источника данных.

pWndDSC
Указывает на окно, в котором размещен элемент управления источника данных, к которому будет привязано свойство. Вызовите GetDlgItem с идентификатором ресурса главного окна DCS, чтобы получить этот указатель.

Remarks

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

Пример

BindProperty может использоваться в следующем контексте:

BOOL CMyDlg::OnInitDialog()
{
   CWnd *pDSC = GetDlgItem(IDC_DATASOURCE);
   CWnd *pMyBound = GetDlgItem(IDC_MYBOUNDCTRL2);
   pMyBound->BindProperty(0x1, pDSC);
   return TRUE;
}

CWnd::BringWindowToTop

Перемещает CWnd на вершину стека перекрывающихся окон.

void BringWindowToTop();

Remarks

Кроме того BringWindowToTop активирует всплывающие окна, окна высшего уровня и дочерние окна MDI. Функцию-член BringWindowToTop следует использовать, чтобы показать любое окно, частично или полностью скрытое какими-либо перекрывающими окнами.

Эта функция просто вызывает функцию Win32 BringWindowToTop . Вызовите SetWindowPos функцию, чтобы изменить расположение окна в Z-порядке. Функция BringWindowToTop не изменяет стиль окна, чтобы сделать его окном верхнего уровня. Дополнительные сведения см. в разделе различия между HWND_TOP HWND_TOPMOST и

Пример

// Moves MDI child windows to the top when a mouse passes
// over it. CMdiView is derived from CView.
void CMdiView::OnMouseMove(UINT nFlags, CPoint point) 
{
   UNREFERENCED_PARAMETER(nFlags);
   UNREFERENCED_PARAMETER(point);

   GetParentFrame()->BringWindowToTop();
}

CWnd::CalcWindowRect

Вычисляет прямоугольник окна, который может содержать указанный клиентский прямоугольник.

virtual void CalcWindowRect(
    LPRECT lpClientRect,
    UINT nAdjustType = adjustBorder);

Параметры

lpClientRect
[вход, выход] Указатель на структуру прямоугольника. На входе эта структура содержит клиентский прямоугольник. После завершения метода эта структура содержит прямоугольник окна, который может содержать указанный клиентский прямоугольник.

nAdjustType
окне Используйте CWnd::adjustBorder для вычисления координат окна без WS_EX_CLIENTEDGE стиля; в противном случае используйте CWnd::adjustOutside .

Remarks

Размер вычисляемого прямоугольника окна не включает пробел для строки меню.

Дополнительные ограничения на использование см. в разделе AdjustWindowRectEx .

Пример

// Uses CalcWindowRect to determine size for new CFrameWnd
// based on the size of the current view. The end result is a
// top level frame window of the same size as CMdiView's frame.
void CMdiView::OnMyCreateFrame()
{
   CFrameWnd *pFrameWnd = new CFrameWnd;
   CRect myRect;
   GetClientRect(myRect);
   pFrameWnd->Create(NULL, _T("My Frame"));
   pFrameWnd->CalcWindowRect(&myRect, CWnd::adjustBorder);
   pFrameWnd->MoveWindow(0, 0, myRect.Width(), myRect.Height());
   pFrameWnd->ShowWindow(SW_SHOW);
}

CWnd::CancelToolTips

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

static void PASCAL CancelToolTips(BOOL bKeys = FALSE);

Параметры

bKeys
TRUE для отмены всплывающих подсказок при нажатии клавиши и задании текста в строке состояния по умолчанию; в противном случае — значение FALSE .

Remarks

Примечание

Использование этой функции – члена не влияет на подсказки инструментов, которыми управляет ваш код. Он влияет только на элемент управления «подсказка», управляемый CWnd::EnableToolTips .

Пример

// In this example, tool tips were set up to
// pop up when the user moves the mouse
// over this edit control.
// If the mouse is moved to the upper left-hand
// corner, the tool tip would disappear because of
// calling CancelToolTips.
void CMyEdit::OnMouseMove(UINT nFlags, CPoint point)
{
   CRect corner(0, 0, 10, 10);
   if (corner.PtInRect(point))
      CancelToolTips();
   CEdit::OnMouseMove(nFlags, point);
}

CWnd::CenterWindow

Выравнивает окно по центру относительно его родительских окон.

void CenterWindow(CWnd* pAlternateOwner = NULL);

Параметры

pAlternateOwner
Указатель на альтернативное окно, относительно которого оно будет центрировано (кроме родительского окна).

Remarks

Обычно вызывается из CDialog::OnInitDialog для центрирования диалоговых окон относительно главного окна приложения. По умолчанию функция центрирует дочерние окна относительно родительского окна, а всплывающие окна — относительно их владельца. Если всплывающее окно не принадлежит, оно центрируется относительно экрана. Для центрирования окна относительно определенного окна, которое не является владельцем или родителем, pAlternateOwner параметр может быть установлен в допустимое окно. Чтобы принудительно выровнять по центру относительно экрана, передайте значение, возвращенное CWnd::GetDesktopWindow как pAlternateOwner .

Пример

BOOL CAboutDlg::OnInitDialog()
{
   CDialog::OnInitDialog();

   CenterWindow();

   return TRUE;
}

CWnd::ChangeClipboardChain

Удаляет CWnd из цепочки средств просмотра буфера обмена и делает окно, указанное hWndNext потомком CWnd предка в цепочке.

BOOL ChangeClipboardChain(HWND hWndNext);

Параметры

hWndNext
Определяет окно, следующее CWnd в цепочке средства просмотра буфера обмена.

Возвращаемое значение

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

CWnd::CheckDlgButton

Выбирает (устанавливает галочку рядом с кнопкой) или очищает (удаляет галочку из) кнопки или изменяет состояние кнопки с тремя состояниями.

void CheckDlgButton(
    int nIDButton,
    UINT nCheck);

Параметры

nIDButton
Задает изменяемую кнопку.

nCheck
Указывает действие, которое необходимо выполнить. Если nCheck имеет ненулевое значение, CheckDlgButton функция-член помещает флажок рядом с кнопкой; если значение равно 0, галочка снимается. Для кнопок с тремя состояниями, если nCheck значение равно 2, состояние кнопки является неопределенным.

Remarks

CheckDlgButtonФункция отправляет BM_SETCHECK сообщение указанной кнопке.

Пример

// Sets 3 check buttons in various ways.  Note BST_INDETERMINATE
// requires BS_3STATE or BS_AUTO3STATE in the button's style.
void CMyDlg::OnMarkButtons()
{
   CheckDlgButton(IDC_CHECK1, BST_UNCHECKED);     // 0
   CheckDlgButton(IDC_CHECK2, BST_CHECKED);       // 1
   CheckDlgButton(IDC_CHECK3, BST_INDETERMINATE); // 2
}

CWnd::CheckRadioButton

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

void CheckRadioButton(
    int nIDFirstButton,
    int nIDLastButton,
    int nIDCheckButton);

Параметры

nIDFirstButton
Задает целочисленный идентификатор для первого переключателя в группе.

nIDLastButton
Задает целочисленный идентификатор последнего переключателя в группе.

nIDCheckButton
Задает целочисленный идентификатор переключателя для проверки.

Remarks

CheckRadioButtonФункция отправляет BM_SETCHECK сообщение указанному переключателю.

Пример

// Of the 4 radio buttons, selects radio button 3.
void CMyDlg::OnMarkRadio()
{
   CheckRadioButton(IDC_RADIO1, IDC_RADIO4, IDC_RADIO3);
}

CWnd::ChildWindowFromPoint

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

CWnd* ChildWindowFromPoint(POINT point) const;

CWnd* ChildWindowFromPoint(
    POINT point,
    UINT nFlags) const;

Параметры

point
Указывает клиентские координаты проверяемой точки.

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

Значение Значение
CWP_ALL Не пропускать дочерние окна
CWP_SKIPINVISIBLE Пропустить невидимые дочерние окна
CWP_SKIPDISABLED Пропустить отключенные дочерние окна
CWP_SKIPTRANSPARENT Пропустить прозрачные дочерние окна

Возвращаемое значение

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

Эта функция-член возвратит скрытое или отключенное дочернее окно, содержащее указанную точку.

Заданная точка может содержаться в нескольких окнах. Однако эта функция возвращает только CWnd * первого обнаруженного окна, содержащего точку.

CWndВозвращаемый * может быть временным и не должен храниться для последующего использования.

Пример

void CMyDlg::OnFindCenterChild() 
{
   CRect rect;
   GetClientRect(&rect);
   CWnd* pWnd = ChildWindowFromPoint(
      CPoint(rect.Width()/2, rect.Height()/2), 
      // Top left is always 0, 0.
      CWP_SKIPINVISIBLE);
   TRACE(_T("Center window is 0x%08x\n"), pWnd->m_hWnd);
}

CWnd::ClientToScreen

Преобразует клиентские координаты указанной точки или прямоугольника на экране в экранные координаты.

void ClientToScreen(LPPOINT lpPoint) const;  void ClientToScreen(LPRECT lpRect) const;

Параметры

lpPoint
Указывает на POINT структуру или CPoint объект, содержащий клиентские координаты для преобразования.

lpRect
Указывает на RECT структуру или CRect объект, содержащий клиентские координаты для преобразования.

Remarks

ClientToScreenФункция – член использует координаты клиента в POINT структуре или или RECT CPoint объект или, CRect на который указывает lpPoint или lpRect для вычислений новых экранных координат; он затем заменяет координаты в структуре новыми координатами. Новые экранные координаты задаются относительно левого верхнего угла отображения системы.

ClientToScreenФункция-член предполагает, что заданная точка или прямоугольник находится в клиентских координатах.

Пример

// resize dialog to client's size
void CMyDlg::OnSizeToClient()
{
   CRect myRect;
   GetClientRect(&myRect);

   ClientToScreen(myRect);
   MoveWindow(myRect.left, myRect.top,
              myRect.Width(), myRect.Height());
}

CWnd::CloseWindow

Сворачивает окно.

void CloseWindow();

Remarks

Эта функция члена эмулирует функциональность функции CloseWindow , как описано в Windows SDK.

CWnd::ContinueModal

Эта функция-член вызывается методом, RunModalLoop чтобы определить, когда следует выйти из модального состояния.

virtual BOOL ContinueModal();

Возвращаемое значение

Ненулевое значение, если модальный цикл должен быть продолжен; 0 при EndModalLoop вызове метода.

Remarks

По умолчанию он возвращает ненулевое значение до EndModalLoop вызова метода.

CWnd::Create

Создает указанное дочернее окно и прикрепляет его к CWnd объекту.

virtual BOOL Create(
    LPCTSTR lpszClassName,
    LPCTSTR lpszWindowName,
    DWORD dwStyle,
    Const RECT& rect,
    CWnd* pParentWnd,
    UINT nID,
    CCreateContext* pContext = NULL);

Параметры

lpszClassName
окне Указатель на строку, завершающуюся нулем, которая содержит имя зарегистрированного системного класса окна; или имя стандартного класса системного окна.

lpszWindowName
окне Указатель на строку, завершающуюся нулем, которая содержит отображаемое имя окна; в противном случае NULL не отображает отображаемое имя окна.

dwStyle
окне Побитовое сочетание (или) стилей окна. Параметр не является WS_POPUP допустимым стилем.

rect
окне Размер и расположение окна относительно левого верхнего угла родительского окна.

pParentWnd
окне Указатель на родительское окно.

nID
окне ИДЕНТИФИКАТОР окна.

pContext
окне Указатель на CCreateContext структуру, используемую для настройки архитектуры представления документа для приложения.

Возвращаемое значение

TRUE значение, если метод был успешным; в противном случае — значение FALSE .

Remarks

Предупреждение

CWnd::PreCreateWindow Теперь присваивает hMenu элемент своего CREATESTRUCT параметра this указателю, если меню имеет значение NULL , а стиль содержит WS_CHILD . Для правильной работы убедитесь, что у элемента управления диалогового окна есть идентификатор, который не является NULL .

Это изменение устраняет сбой в сценариях управляемого и машинного взаимодействия. TRACEОператор в CWnd::Create предупреждает разработчика о проблеме.

Используйте AfxRegisterWndClass функцию для регистрации классов окон. Пользовательские классы окон доступны в модуле, в котором они зарегистрированы.

CWnd::OnCreateМетод вызывается перед Create возвратом метода и до того, как окно становится видимым.

Пример

// Dynamically create static control using CWnd::Create,
// instead of with CStatic::Create, which doesn't
// need the "STATIC" class name.
void CMyDlg::OnCreateStatic() 
{
   // m_pWndStatic is a CWnd* member of CMyDlg
   m_pWndStatic = new CWnd;
   m_pWndStatic->Create(_T("STATIC"), _T("Hi"), WS_CHILD | WS_VISIBLE,
       CRect(0, 0, 20, 20), this, 1234);
}

CWnd::CreateAccessibleProxy

Создает прокси-сервер Active Accessibility для указанного объекта.

virtual HRESULT CreateAccessibleProxy(
    WPARAM wParam,
    LPARAM lParam,
    LRESULT* pResult);

Параметры

wParam
Определяет объект, к которому обращается Active Accessibility прокси-сервер. Может принимать одно из следующих значений:

Значение Значение
OBJID_CLIENT Ссылается на клиентскую область окна.

lParam
Предоставляет дополнительные сведения, зависящие от сообщений.

pResult
Указатель на объект LRESULT , в котором хранится код результата.

Remarks

Создает прокси-сервер Active Accessibility для указанного объекта.

CWnd::CreateCaret

Создает новую фигуру для системного курсора и владельца курсора.

void CreateCaret(CBitmap* pBitmap);

Параметры

pBitmap
Определяет точечный рисунок, определяющий фигуру курсора.

Remarks

Точечный рисунок должен быть создан ранее CBitmap::CreateBitmap функцией члена, CreateDIBitmap функцией Windows или CBitmap::LoadBitmap функцией члена.

CreateCaret автоматически удаляет предыдущую фигуру курсора, если она есть, независимо от того, какое окно владеет курсором. После создания курсор изначально скрыт. Чтобы отобразить курсор, ShowCaret необходимо вызвать функцию члена.

Системный курсор — это общий ресурс. CWnd должен создавать курсор, только если он имеет фокус ввода или активен. Он должен уничтожить курсор до того, как он потерял фокус ввода или стал неактивным.

Пример

// Changes the caret of the edit control in this dialog box
void CMyDlg::OnChangeCaret()
{
   m_pBitmapCaret = new CBitmap;
   m_pBitmapCaret->LoadBitmap(IDB_HAPPY_BITMAP);
   m_MyEdit.CreateCaret(m_pBitmapCaret);
   m_MyEdit.ShowCaret();
}

CWnd::CreateControl

Эта функция-член используется для создания элемента управления ActiveX, который будет представлен в программе MFC CWnd объектом.

BOOL CreateControl(
    LPCTSTR pszClass,
    LPCTSTR pszWindowName,
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID,
    CFile* pPersist = NULL,
    BOOL bStorage = FALSE,
    BSTR bstrLicKey = NULL);

BOOL CreateControl(
    REFCLSID clsid,
    LPCTSTR pszWindowName,
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID,
    CFile* pPersist = NULL,
    BOOL bStorage = FALSE,
    BSTR bstrLicKey = NULL);

BOOL CreateControl(
    REFCLSID clsid,
    LPCTSTR pszWindowName,
    DWORD dwStyle,
    const POINT* ppt,
    const SIZE* psize,
    CWnd* pParentWnd,
    UINT nID,
    CFile* pPersist = NULL,
    BOOL bStorage = FALSE,
    BSTR bstrLicKey = NULL);

Параметры

pszClass
Эта строка может содержать «короткое имя» ( ProgID ) для класса, например, « CIRC3.Circ3Ctrl.1 ». Имя должно совпадать с именем, зарегистрированным элементом управления. Кроме того, строка может содержать форму строки CLSID , содержащуюся в фигурных скобках, например, " {9DBAFCCF-592F-101B-85CE-00608CEC297B} ". В любом случае CreateControl преобразует строку в соответствующий идентификатор класса.

pszWindowName
Указатель на текст, отображаемый в элементе управления. Задает значение свойства Caption или Text элемента управления (если оно имеется). Если значение NULL равно, свойство Caption или Text элемента управления не изменяется.

dwStyle
Стили Windows. Доступные стили перечислены в разделе Примечания.

rect
Задает размер и расположение элемента управления. Это может быть либо CRect объект, либо RECT Структура.

ppt
Указывает на POINT структуру или CPoint объект, содержащий левый верхний угол элемента управления.

pSize
Указывает на SIZE структуру или CSize объект, который содержит размер элемента управления

*pParentWnd*
Указывает родительское окно элемента управления. Оно не должно быть NULL .

nID
Указывает идентификатор элемента управления.

pPersist
Указатель на объект, CFile содержащий постоянное состояние для элемента управления. Значение по умолчанию — NULL , что означает, что элемент управления инициализируется без восстановления состояния из постоянного хранилища. В противном случае NULL он должен быть указателем на CFile производный объект, который содержит постоянные данные элемента управления в виде потока или хранилища. Эти данные могли быть сохранены в предыдущей активации клиента. Объект CFile может содержать другие данные, но его указатель для чтения и записи должен быть установлен на первый байт постоянных данных во время вызова CreateControl .

bStorage
Указывает, должны ли данные в данных pPersist интерпретироваться как IStorage IStream данные или. Если данные в pPersist являются хранилищем, то bStorage должно иметь значение TRUE . Если данные в pPersist являются потоком, bStorage должно быть FALSE . Значение по умолчанию — FALSE.

bstrLicKey
Необязательные данные лицензионного ключа. Эти данные необходимы только для создания элементов управления, требующих лицензионного ключа во время выполнения. Если элемент управления поддерживает лицензирование, необходимо предоставить лицензионный ключ, чтобы создать элемент управления для выполнения. Значение по умолчанию — NULL.

clsid
Уникальный идентификатор класса элемента управления.

Возвращаемое значение

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Remarks

CreateControl — Это прямая аналоговая CWnd::Create функция, которая создает окно для CWnd . CreateControl создает элемент управления ActiveX вместо обычного окна.

Поддерживается только подмножество dwStyle флагов Windows CreateControl :

  • WS_VISIBLE Создает окно, которое изначально видимо. Требуется, если необходимо, чтобы элемент управления был видимым немедленно, например обычным окнам.

  • WS_DISABLED Создает окно, которое изначально отключено. Отключенное окно не может принимать входные данные от пользователя. Может быть задан, если элемент управления имеет свойство Enabled.

  • WS_BORDER Создает окно с границей тонкой линии. Может быть задан, если элемент управления имеет BorderStyle свойство.

  • WS_GROUP Задает первый элемент управления группы элементов управления. Пользователь может изменить фокус клавиатуры с одного элемента управления в группе на следующий с помощью клавиш направления. Все элементы управления, определенные с помощью WS_GROUP стиля после первого элемента управления, принадлежат к одной группе. Следующий элемент управления с WS_GROUP стилем завершает группу и запускает следующую группу.

  • WS_TABSTOP Задает элемент управления, который может получать фокус клавиатуры, когда пользователь нажимает клавишу TAB. При нажатии клавиши TAB фокус клавиатуры меняется на следующий элемент управления WS_TABSTOP стиля.

Пример

class CGenocx : public CWnd
{
protected:
   DECLARE_DYNCREATE(CGenocx)
public:
   CLSID const &GetClsid()
   {
      static CLSID const clsid = {0x20DD1B9E, 0x87C4, 0x11D1, {0x8B, 0xE3, 0x0, 0x0, 0xF8, 0x75, 0x4D, 0xA1}};
      return clsid;
   }

   // This code is generated by the Control Wizard.
   // It wraps the call to CreateControl in the call to Create.
   virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle,
                       const RECT &rect, CWnd *pParentWnd, UINT nID,
                       CCreateContext *pContext = NULL)
   {
      UNREFERENCED_PARAMETER(pContext);
      UNREFERENCED_PARAMETER(lpszClassName);

      return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID);
   }

   // remainder of class declaration omitted...

CWnd::CreateEx

Создает указанное окно и прикрепляет его к CWnd объекту.

virtual BOOL CreateEx(
    DWORD dwExStyle,
    LPCTSTR lpszClassName,
    LPCTSTR lpszWindowName,
    DWORD dwStyle,
    int x,
    int y,
    int nWidth,
    int nHeight,
    HWND hWndParent,
    HMENU nIDorHMenu,
    LPVOID lpParam = NULL);

virtual BOOL CreateEx(
    DWORD dwExStyle,
    LPCTSTR lpszClassName,
    LPCTSTR lpszWindowName,
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID,
    LPVOID lpParam = NULL);

Параметры

dwExStyle
Побитовое сочетание (или) расширенных стилей окон; в противном случае — NULL для расширенного стиля окна по умолчанию.

lpszClassName
Указатель на строку, завершающуюся нулем, которая содержит имя зарегистрированного системного класса окна; или имя стандартного класса системного окна.

lpszWindowName
Указатель на строку, завершающуюся нулем, которая содержит отображаемое имя окна; в противном случае NULL не отображает отображаемое имя окна.

dwStyle
Побитовое сочетание (или) стилей окна; в противном случае — NULL для стиля окна по умолчанию.

x
Начальное расстояние по горизонтали окна с левой стороны экрана или родительского окна.

y
Начальное расстояние по вертикали окна от верхнего края экрана или родительского окна.

nWidth
Ширина окна в пикселях.

nHeight
Высота окна в пикселях.

hwndParent
Для дочернего окна — это маркер родительского окна; в противном случае — маркер окна владельца, если у окна есть владелец.

nIDorHMenu
Для дочернего окна — идентификатор окна; в противном случае — идентификатор меню для окна.

lpParam
Указатель на данные пользователя, которые передаются в CWnd::OnCreate метод в lpCreateParams поле.

rect
Размер и расположение окна относительно экрана или родительского окна.

pParentWnd
Для дочернего окна — Указатель на родительское окно; в противном случае — указатель на окно владельца, если у окна есть владелец.

nID
Для дочернего окна — идентификатор окна; в противном случае — идентификатор меню для окна.

Возвращаемое значение

TRUE значение, если метод был успешным; в противном случае — значение FALSE .

Remarks

Предупреждение

CWnd::PreCreateWindow Теперь присваивает hMenu элемент своего CREATESTRUCT параметра this указателю, если меню имеет значение NULL , а стиль содержит WS_CHILD . Для правильной работы убедитесь, что у элемента управления диалогового окна есть идентификатор, который не является NULL .

Это изменение устраняет сбой в сценариях управляемого и машинного взаимодействия. TRACEОператор в CWnd::Create предупреждает разработчика о проблеме.

По умолчанию расширенным стилем окна является WS_EX_LEFT . Стиль окна по умолчанию — WS_OVERLAPPED .

Используйте AfxRegisterWndClass функцию для регистрации классов окон. Пользовательские классы окон доступны в модуле, в котором они зарегистрированы.

Размеры дочерних окон задаются относительно левого верхнего угла клиентской области родительского окна. Измерения для окон верхнего уровня задаются относительно левого верхнего угла экрана.

CWnd::OnCreateМетод вызывается перед CreateEx возвратом метода и до того, как окно становится видимым.

Пример

void CMyDlg::OnCreateExtendedControl() 
{
   // m_pWndStaticEx is a CWnd* member of CMyDlg
   m_pWndStaticEx = new CStatic;
   m_pWndStaticEx->CreateEx(WS_EX_CLIENTEDGE, // Make a client edge label.
      _T("STATIC"), _T("Hi"),
      WS_CHILD | WS_TABSTOP | WS_VISIBLE,
      5, 5, 30, 30, m_hWnd, (HMENU)2345);
}

CWnd::CreateGrayCaret

Создает серый прямоугольник для системного курсора и владение утверждениями курсора.

void CreateGrayCaret(
    int nWidth,
    int nHeight);

Параметры

nWidth
Задает ширину курсора (в логических единицах). Если этот параметр равен 0, то ширина задается системой, заданной в окне.

nHeight
Задает высоту курсора (в логических единицах). Если этот параметр равен 0, то высота устанавливается в соответствии с заданной системой высотой границы окна.

Remarks

Фигура курсора может быть строкой или блоком.

Параметры nWidth и nHeight задают ширину и высоту курсора (в логических единицах); точные значения ширины и высоты (в пикселях) зависят от режима сопоставления.

Ширину или высоту окна системы можно получить с помощью GetSystemMetrics функции Windows с SM_CXBORDER SM_CYBORDER индексами и. Использование ширины окна и высоты гарантирует, что курсор будет отображаться на дисплее с высоким разрешением.

CreateGrayCaretФункция – член автоматически удаляет предыдущую фигуру курсора, если она есть, независимо от того, какое окно владеет курсором. После создания курсор изначально скрыт. Чтобы отобразить курсор, ShowCaret необходимо вызвать функцию члена.

Системный курсор — это общий ресурс. CWnd должен создавать курсор, только если он имеет фокус ввода или активен. Он должен уничтожить курсор до того, как он потерял фокус ввода или стал неактивным.

Пример

// Create a 5x10 gray caret in the edit control.
void CMyDlg::OnCreateGrayCaret()
{
   m_MyEdit.CreateGrayCaret(5, 10);
   m_MyEdit.ShowCaret();
}

CWnd::CreateSolidCaret

Создает сплошной прямоугольник для системного курсора и владельца курсора.

void CreateSolidCaret(
    int nWidth,
    int nHeight);

Параметры

nWidth
Задает ширину курсора (в логических единицах). Если этот параметр равен 0, то ширина задается системой, заданной в окне.

nHeight
Задает высоту курсора (в логических единицах). Если этот параметр равен 0, то высота устанавливается в соответствии с заданной системой высотой границы окна.

Remarks

Фигура курсора может быть строкой или блоком.

Параметры nWidth и nHeight задают ширину и высоту курсора (в логических единицах); точные значения ширины и высоты (в пикселях) зависят от режима сопоставления.

Ширину или высоту окна системы можно получить с помощью GetSystemMetrics функции Windows с SM_CXBORDER SM_CYBORDER индексами и. Использование ширины окна и высоты гарантирует, что курсор будет отображаться на дисплее с высоким разрешением.

CreateSolidCaretФункция – член автоматически удаляет предыдущую фигуру курсора, если она есть, независимо от того, какое окно владеет курсором. После создания курсор изначально скрыт. Чтобы отобразить курсор, ShowCaret необходимо вызвать функцию члена.

Системный курсор — это общий ресурс. CWnd должен создавать курсор, только если он имеет фокус ввода или активен. Он должен уничтожить курсор до того, как он потерял фокус ввода или стал неактивным.

Пример

// Create a 5x10 solid caret in the edit control.
void CMyDlg::OnCreateSolidCaret()
{
   m_MyEdit.CreateSolidCaret(5, 10);
   m_MyEdit.ShowCaret();
}

CWnd::CWnd

Формирует объект CWnd.

CWnd();

Remarks

Окно Windows не создается и не прикрепляется до CreateEx Create вызова функции-члена или.

CWnd::Default

Вызывает процедуру окна по умолчанию.

LRESULT Default();

Возвращаемое значение

Зависит от отправленного сообщения.

Remarks

Процедура окна по умолчанию предоставляет обработку по умолчанию для любого сообщения окна, которое не обрабатывается приложением. Эта функция-член гарантирует обработку каждого сообщения.

Пример

// This sample shows how to avoid any button handling in base class,
// if any, and call the default window procedure directly.
void CMyDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
   UNREFERENCED_PARAMETER(nFlags);
   UNREFERENCED_PARAMETER(point);

   CWnd::Default();
}

CWnd::DefWindowProc

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

virtual LRESULT DefWindowProc(
    UINT message,
    WPARAM wParam,
    LPARAM lParam);

Параметры

message
Указывает сообщение Windows для обработки.

wParam
Указывает дополнительные сведения, зависящие от сообщений.

lParam
Указывает дополнительные сведения, зависящие от сообщений.

Возвращаемое значение

Зависит от отправленного сообщения.

Remarks

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

CWnd::DeleteTempMap

Вызывается автоматически обработчиком времени простоя CWinApp объекта.

static void PASCAL DeleteTempMap();

Remarks

Удаляет все временные CWnd объекты, созданные FromHandle функцией члена.

Пример

// DeleteTempMap() is a static member and does not need 
// to be called within the scope of an instantiated CWnd object.
CWnd::DeleteTempMap();

CWnd::DestroyWindow

Уничтожает окно Windows, присоединенное к CWnd объекту.

virtual BOOL DestroyWindow();

Возвращаемое значение

Ненулевое значение, если окно уничтожается; в противном случае — 0.

Remarks

DestroyWindowФункция – член отправляет в окно соответствующие сообщения, чтобы отключить его и удалить фокус ввода. Он также уничтожает меню окна, очищает очередь приложений, уничтожает необработанные таймеры, удаляет владение буфером обмена и прерывает цепочку просмотра буфера, если CWnd находится в верхней части цепочки средств просмотра. Он отправляет WM_DESTROY WM_NCDESTROY в окно сообщения и. Он не уничтожает CWnd объект.

DestroyWindow заполнитель для выполнения очистки. Поскольку DestroyWindow является виртуальной функцией, она показана в представление классов в любом CWnd классе, производном от. Но даже при переопределении этой функции в CWnd классе, производном от, DestroyWindow метод не обязательно вызывается. Если метод DestroyWindow не вызывается в коде MFC, необходимо явно вызвать его в собственном коде, если его нужно вызвать.

Предположим, например, что вы переопределили DestroyWindow в CView классе, производном от. Поскольку исходный код MFC не вызывает DestroyWindow ни в одном из CFrameWnd производных от него классов, переопределенный метод DestroyWindow не будет вызываться, пока он не вызывается явным образом.

Если окно является родительским для любого окна, эти дочерние окна автоматически уничтожаются при уничтожении родительского окна. DestroyWindowФункция члена уничтожает сначала дочерние окна, а затем само окно.

DestroyWindowФункция Member также уничтожает немодальные диалоговые окна, созданные CDialog::Create .

Если CWnd удаляемый объект является дочерним окном и не имеет WS_EX_NOPARENTNOTIFY набора стилей, WM_PARENTNOTIFY сообщение отправляется родительскому элементу.

Пример

// CModeless is a CDialog class representing a modeless dialog
// Destruction of the modeless dialog involves calling DestroyWindow in 
// OnOK() & OnCancel() handlers
void CModeless::OnOK() 
{ 
   if (!UpdateData(TRUE)) 
   {
      TRACE(_T("UpdateData failed during dialog termination\n"));
      // The UpdateData routine will set focus to correct item
      return;
   }
   DestroyWindow();
}

void CModeless::OnCancel()
{
   DestroyWindow();
}

CWnd::Detach

Отсоединяет дескриптор Windows от объекта CWnd и возвращает дескриптор.

HWND Detach();

Возвращаемое значение

HWNDОбъект для объекта Windows.

Пример

См. пример для CWnd::Attach .

CWnd::DlgDirList

Заполняет список файлами или каталогами.

int DlgDirList(
    LPTSTR lpPathSpec,
    int nIDListBox,
    int nIDStaticPath,
    UINT nFileType);

Параметры

lpPathSpec
Указывает на строку, завершающуюся нулем, которая содержит путь или имя файла. DlgDirList изменяет эту строку, которая должна быть достаточно длинной для хранения изменений. Дополнительные сведения см. в следующем разделе "Примечания".

nIDListBox
Задает идентификатор поля списка. Если nIDListBox значение равно 0, DlgDirList предполагается, что список не существует и не пытается его заполнить.

nIDStaticPath
Задает идентификатор элемента управления "статический текст", используемый для вывода текущего диска и каталога. Если nIDStaticPath значение равно 0, DlgDirList предполагается, что такого элемента управления Text не существует.

nFileType
Задает атрибуты отображаемых файлов. Это может быть любое сочетание следующих значений:

  • DDL_READWRITE Файлы данных для чтения и записи без дополнительных атрибутов.

  • DDL_READONLY Файлы только для чтения.

  • DDL_HIDDEN Скрытые файлы.

  • DDL_SYSTEM Системные файлы.

  • DDL_DIRECTORY Каталогов.

  • DDL_ARCHIVE Копии.

  • DDL_POSTMSGS``LB_DIRфлаг. Если установлен LB_DIR флаг, Windows помещает сообщения, созданные DlgDirList в очереди приложения; в противном случае они отправляются непосредственно в процедуру диалогового окна.

  • DDL_DRIVES Управляет. Если установлен DDL_DRIVES флаг, DDL_EXCLUSIVE флаг устанавливается автоматически. Таким образом, чтобы создать список каталогов, включающий диски и файлы, необходимо вызвать DlgDirList дважды: один раз с DDL_DRIVES установленным флагом и один раз с флагами для остальной части списка.

  • DDL_EXCLUSIVE Эксклюзивный бит. Если задан эксклюзивный бит, отображаются только файлы указанного типа. в противном случае будут перечислены обычные файлы и файлы указанного типа.

Возвращаемое значение

Ненулевое значение, если функция выполнена успешно; в противном случае — 0.

Remarks

DlgDirList отправляет LB_RESETCONTENT LB_DIR сообщения и в список. Он заполняет список, заданный параметром, nIDListBox именами всех файлов, которые соответствуют пути, заданному параметром lpPathSpec .

lpPathSpec Параметр имеет следующий вид:

[drive:] [ [\u]directory[\idirectory]...\u] [filename]

В этом примере drive — это буква диска, которая является directory допустимым именем каталога, а filename — допустимыми именами, которые должны содержать по крайней мере один подстановочный знак. Подстановочные знаки — вопросительный знак (?), который означает совпадение любого символа, и звездочку ( * ), то есть соответствует любому числу символов.

Если указать строку нулевой длины для lpPathSpec или указать только имя каталога, но не включать ни одной спецификации файла, строка будет изменена на " * . * ".

Если lpPathSpec включает имя диска и/или каталога, текущий диск и каталог заменяются на указанный диск и каталог до заполнения списка. Элемент управления текстом, определенный с помощью, nIDStaticPath также обновляется новым диском и (или) именем каталога.

После заполнения списка lpPathSpec обновляется путем удаления части диска и (или) каталога в пути.

Пример

// If pDialog points to a CDialog object with a list box
// with the identifier IDC_DIRLIST, this call will populate
// the box with only the non-hidden subdirectories in the root
// directory of the C:\ drive.
TCHAR path[MAX_PATH];
_tcscpy_s(path, MAX_PATH, _T("C:\\"));

pDialog->DlgDirList(path, IDC_DIRLIST, 0, DDL_EXCLUSIVE | DDL_DIRECTORY);

CWnd::DlgDirListComboBox

Заполняет список элемента управления "Поле со списком" перечнем файлов или каталогов.

int DlgDirListComboBox(
    LPTSTR lpPathSpec,
    int nIDComboBox,
    int nIDStaticPath,
    UINT nFileType);

Параметры

lpPathSpec
Указывает на строку, завершающуюся нулем, которая содержит путь или имя файла. DlgDirListComboBox изменяет эту строку, поэтому данные не должны быть в виде строкового литерала. См. следующий раздел "Примечания".

nIDComboBox
Задает идентификатор поля со списком в диалоговом окне. Если nIDComboBox значение равно 0, DlgDirListComboBox предполагается, что поле со списком не существует и не пытается заполнить его.

nIDStaticPath
Задает идентификатор элемента управления "статический текст", используемый для вывода текущего диска и каталога. Если nIDStaticPath значение равно 0, DlgDirListComboBox предполагается, что такого элемента управления Text не существует.

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

  • DDL_READWRITE Файлы данных для чтения и записи без дополнительных атрибутов.

  • DDL_READONLY Файлы только для чтения.

  • DDL_HIDDEN Скрытые файлы.

  • DDL_SYSTEM Системные файлы.

  • DDL_DIRECTORY Каталогов.

  • DDL_ARCHIVE Копии.

  • DDL_POSTMSGS``CB_DIRфлаг. Если установлен CB_DIR флаг, Windows помещает сообщения, созданные DlgDirListComboBox в очереди приложения; в противном случае они отправляются непосредственно в процедуру диалогового окна.

  • DDL_DRIVES Управляет. Если установлен DDL_DRIVES флаг, DDL_EXCLUSIVE флаг устанавливается автоматически. Таким образом, чтобы создать список каталогов, включающий диски и файлы, необходимо вызвать DlgDirListComboBox дважды: один раз с DDL_DRIVES установленным флагом и один раз с флагами для остальной части списка.

  • DDL_EXCLUSIVE Эксклюзивный бит. Если задан эксклюзивный бит, отображаются только файлы указанного типа. в противном случае будут перечислены обычные файлы и файлы указанного типа.

Возвращаемое значение

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

Remarks

DlgDirListComboBox отправляет CB_RESETCONTENT CB_DIR сообщения в поле со списком. Он заполняет список поля со списком, заданным параметром, nIDComboBox именами всех файлов, которые соответствуют пути, заданному параметром lpPathSpec .

lpPathSpec Параметр имеет следующий вид:

[drive:] [ [\u]directory[\idirectory]...\u] [filename]

В этом примере drive — это буква диска, которая является directory допустимым именем каталога, а filename — допустимыми именами, которые должны содержать по крайней мере один подстановочный знак. Подстановочные знаки — вопросительный знак (?), который означает совпадение с любым символом, и звездочку ( * ), которая означает совпадение любого числа символов.

Если указать строку нулевой длины для lpPathSpec , то текущий каталог будет использоваться и lpPathSpec не будет изменен. Если указано только имя каталога, но не указана спецификация файла, строка будет изменена на " * ".

Если lpPathSpec включает имя диска и/или каталога, текущий диск и каталог заменяются на указанный диск и каталог до заполнения списка. Элемент управления текстом, определенный с помощью, nIDStaticPath также обновляется новым диском и (или) именем каталога.

После заполнения списка в поле со списком, lpPathSpec удаляя диск и (или) часть пути к каталогу.

Пример

// If pDialog points to a CDialog object with a combo box
// with the identifier IDC_DIRCOMBO, this call will populate
// the box with only the non-hidden subdirectories in the root
// directory of the C:\ drive.

TCHAR szPath[MAX_PATH];
_tcsncpy_s(szPath, MAX_PATH, _T("C:\\"), MAX_PATH);
pDialog->DlgDirListComboBox(szPath, IDC_DIRCOMBO, 0, DDL_EXCLUSIVE | DDL_DIRECTORY);

// Note that the first argument is a string and not a string
// literal. This is necessary because DlgDirListComboBox
// modifies the supplied string. Passing a string literal
// will result in an access violation.

CWnd::DlgDirSelect

Извлекает текущее выделение из списка.

BOOL DlgDirSelect(
    LPTSTR lpString,
    int nIDListBox);

Параметры

lpString
Указывает на буфер, который будет принимать текущее выделение в списке.

nIDListBox
Задает целочисленный идентификатор поля списка в диалоговом окне.

Возвращаемое значение

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Remarks

Предполагается, что поле со списком заполнено DlgDirList функцией-членом и выбрана буква диска, файл или имя каталога.

DlgDirSelectФункция – член копирует выделенный фрагмент в буфер, заданный параметром lpString . Если ничего не выбрано, не lpString изменяется.

DlgDirSelect отправляет LB_GETCURSEL LB_GETTEXT сообщения и в список.

Он не допускает возврата нескольких файлов из списка. Список не должен быть списком с множественным выбором.

CWnd::DlgDirSelectComboBox

Извлекает текущее выделение списка элемента управления "Поле со списком".

BOOL DlgDirSelectComboBox(
    LPTSTR lpString,
    int nIDComboBox);

Параметры

lpString
Указывает на буфер, который получает выбранный путь.

nIDComboBox
Задает целочисленный идентификатор поля со списком в диалоговом окне.

Возвращаемое значение

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Remarks

Предполагается, что поле со списком заполнено DlgDirListComboBox функцией-членом и выбрана буква диска, файл или имя каталога.

DlgDirSelectComboBoxФункция члена копирует выделенный фрагмент в указанный буфер. Если ничего не выбрано, содержимое буфера не изменяется.

DlgDirSelectComboBox отправляет CB_GETCURSEL CB_GETLBTEXT сообщения в поле со списком.

Он не допускает возврата нескольких файлов из поля со списком.

CWnd::DoDataExchange

Вызывается платформой для обмена и проверки данных диалогового окна.

virtual void DoDataExchange(CDataExchange* pDX);

Параметры

pDX
Указатель на объект CDataExchange.

Remarks

Никогда не вызывайте эту функцию напрямую. Он вызывается функцией- UpdateData членом. Вызов UpdateData для инициализации элементов управления диалогового окна или получения данных из диалогового окна.

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

Чтобы автоматически создать переопределенную версию этой функции-члена, сначала создайте ресурс диалогового окна с помощью редактора диалоговых окон, а затем произберете класс диалогового окна, зависящего от приложения. Затем с помощью мастера добавления переменной свяжите переменные, данные и диапазоны проверки с помощью различных элементов управления в диалоговом окне Создать. Затем мастер записывает переопределенный объект DoDataExchange , который содержит карту данных. Ниже приведен пример блока кода DDX/DDV, созданного мастером добавления переменной.

void CPenWidthsDlg::DoDataExchange(CDataExchange *pDX)
{
   CDialog::DoDataExchange(pDX);
   DDX_Text(pDX, IDC_THINPENWIDTH, m_nThinWidth);
   DDV_MinMaxInt(pDX, m_nThinWidth, 1, 20);
   DDX_Text(pDX, IDC_THICKPENWIDTH, m_nThickWidth);
   DDV_MinMaxInt(pDX, m_nThickWidth, 1, 20);
}

DoDataExchangeПереопределенная функция члена должна предшествовать операторам макроса в исходном файле.

Дополнительные сведения об обмене и проверке данных в диалоговых окнах см. в разделе Отображение и обработка данных в формах и диалоговых окнах обмена данными и проверки. Описание макросов DDX_ и DDV_, созданных мастером добавления переменных, см. в техническом примечании 26.

CWnd::DragAcceptFiles

Вызывайте эту функцию-член из окна с помощью CWnd указателя в функции приложения, CWinApp::InitInstance чтобы указать, что окно принимает удаленные файлы из диспетчера файлов Windows или проводника.

void DragAcceptFiles(BOOL bAccept = TRUE);

Параметры

BAccept
Флаг, указывающий, принимаются ли перетаскиваемые файлы.

Remarks

Только окно, которое вызывает DragAcceptFiles с bAccept параметром, имеющим значение, TRUE определено как способ обработки сообщения Windows WM_DROPFILES . Например, в приложении MDI, если CMDIFrameWnd указатель окна используется в DragAcceptFiles вызове функции, CMDIFrameWnd сообщение получает только окно WM_DROPFILES . Это сообщение не отправляется во все открытые CMDIChildWnd окна. CMDIChildWndЧтобы окно получало это сообщение, необходимо вызвать DragAcceptFiles с помощью CMDIChildWnd указателя окна.

Чтобы прекратить получение перетаскиваемых файлов, вызовите функцию члена с параметром bAccept FALSE .

CWnd::DragDetect

Захватывает мышь и отслеживает ее движение, пока пользователь не отпустит левую кнопку мыши, не нажмет клавишу ESC или не переместит мышь за пределы прямоугольника перетаскивания, в котором находится указанная точка.

BOOL DragDetect(POINT pt) const;

Параметры

pt
Начальное расположение мыши в экранных координатах. Функция определяет координаты прямоугольника перетаскивания с помощью этой точки.

Возвращаемое значение

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

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

Remarks

Эта функция члена эмулирует функциональность функции DragDetect , как описано в Windows SDK.

CWnd::DrawAnimatedRects

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

BOOL DrawAnimatedRects(
    int idAni,
    CONST RECT* lprcFrom,
    CONST RECT* lprcTo);

Параметры

idAni
Задает тип анимации. Если указать IDANI_CAPTION , заголовок окна будет анимироваться от расположения, заданного параметром, lprcFrom в положении, указанном параметром lprcTo . Этот результат аналогичен минимуму или разворачиванию окна.

lprcFrom
Указатель на RECT структуру, указывающую расположение и размер значка или сворачивания окна.

lprcTo
Указатель на RECT структуру, указывающую расположение и размер восстановленного окна

Возвращаемое значение

Ненулевое значение, если функция выполнена. в противном случае — 0.

Remarks

Эта функция члена эмулирует функциональность функции DrawAnimatedRects , как описано в Windows SDK.

CWnd::DrawCaption

Рисует заголовок окна.

BOOL DrawCaption(
    CDC* pDC,
    LPCRECT lprc,
    UINT uFlags);

Параметры

pDC
Указатель на контекст устройства. Функция рисует заголовок окна в этом контексте устройства.

lprc
Указатель на RECT структуру, указывающую ограничивающий прямоугольник для заголовка окна.

uFlags
Задает параметры рисования. Полный список значений см. в разделе DrawCaption .

Возвращаемое значение

Ненулевое значение, если функция выполнена. в противном случае — 0.

Remarks

Эта функция члена эмулирует функциональность функции DrawCaption , как описано в Windows SDK.

CWnd::DrawMenuBar

Перерисовывает строку меню.

void DrawMenuBar();

Remarks

Если строка меню изменяется после создания окна, вызовите эту функцию, чтобы нарисовать измененную строку меню.

Пример

См. пример для CWnd::GetMenu .

CWnd::EnableActiveAccessibility

Включает определяемые пользователем функции Active Accessibility.

void EnableActiveAccessibility();

Remarks

Поддержка Active Accessibility по умолчанию в MFC достаточно для стандартных окон и элементов управления, включая элементы управления ActiveX; Однако если класс, CWnd производный от класса, содержит неоконные элементы пользовательского интерфейса, MFC не имеет возможности знать о них. В этом случае необходимо переопределить соответствующие функции члена Active Accessibility в классе, и необходимо вызвать EnableActiveAccessibility в конструкторе класса.

CWnd::EnableDynamicLayout

Включает или отключает диспетчер динамического макета. Если динамический макет активен, положение и размеры дочерних окон можно динамически настраивать, изменяя размер родительского окна.

void EnableDynamicLayout(BOOL bEnable = TRUE);

Параметры

bEnable
TRUE для включения динамического макета; FALSE для отключения динамического макета.

Remarks

Чтобы включить динамический макет, наряду с вызовом этого метода необходимо выполнить дополнительные действия. Необходимо также предоставить сведения о динамическом макете, информирующие о поведении элементов управления в окне в ответ на изменения размеров. Эту информацию можно указать для каждого элемента управления в редакторе ресурсов или программным образом. См. динамический макет.

CWnd::EnableD2DSupport

Включает или отключает поддержку окнами D2D. Данный метод следует вызывать до инициализации основного окна.

void EnableD2DSupport(
    BOOL bEnable = TRUE,
    BOOL bUseDCRenderTarget = FALSE);

Параметры

bEnable
Указывает, следует включить или отключить поддержку D2D.

bUseDCRenderTarget
Виды цветов, следует ли использовать целевой объект отрисовки контекста устройства (DC) CDCRenderTarget . Если FALSE, используется CHwndRenderTarget.

CWnd::EnableScrollBar

Включает или выключает одну или обе стрелки полосы прокрутки.

BOOL EnableScrollBar(
    int nSBFlags,
    UINT nArrowFlags = ESB_ENABLE_BOTH);

Параметры

nSBFlags
Указывает тип полосы прокрутки. Может иметь одно из следующих значений:

  • SB_BOTH Включает или отключает стрелки горизонтальной и вертикальной полос прокрутки, связанные с окном.

  • SB_HORZ Включает или отключает стрелки горизонтальной полосы прокрутки, связанной с окном.

  • SB_VERT Включает или отключает стрелки вертикальной полосы прокрутки, связанной с окном.

nArrowFlags
Указывает, включены или отключены стрелки полосы прокрутки и какие стрелки включены или отключены. Может иметь одно из следующих значений:

  • ESB_ENABLE_BOTH Включает обе стрелки полосы прокрутки (по умолчанию).

  • ESB_DISABLE_LTUP Отключает левую стрелку горизонтальной полосы прокрутки или стрелку вверх вертикальной полосы прокрутки.

  • ESB_DISABLE_RTDN Отключает стрелку вправо на горизонтальной полосе прокрутки или стрелку вниз вертикальной полосы прокрутки.

  • ESB_DISABLE_BOTH Отключает обе стрелки полосы прокрутки.

Возвращаемое значение

Ненулевое значение, если стрелки включены или отключены, как указано. В противном случае он равен 0, что означает, что стрелки уже находятся в запрошенном состоянии или произошла ошибка.

CWnd::EnableScrollBarCtrl

Включает или отключает полосу прокрутки для этого окна.

void EnableScrollBarCtrl(
    int nBar,
    BOOL bEnable = TRUE);

Параметры

nBar
Идентификатор полосы прокрутки.

bEnable
Указывает, должна ли быть включена или отключена полоса прокрутки.

Remarks

Если в окне есть элемент управления полосы прокрутки, используется полоса прокрутки; в противном случае используется собственная полоса прокрутки окна.

CWnd::EnableToolTips

Включает всплывающие подсказки для заданного окна.

BOOL EnableToolTips(BOOL bEnable = TRUE);

Параметры

bEnable
Указывает, включен или отключен элемент управления "Подсказка". TRUE включает элемент управления; FALSE отключает элемент управления.

Возвращаемое значение

TRUE значение, если всплывающие подсказки включены. в противном случае — значение FALSE .

Remarks

Переопределите OnToolHitTest для предоставления TOOLINFO структуры или структур для окна.

Примечание

Некоторые окна, например CToolBar , предоставляют встроенную реализацию OnToolHitTest .

TOOLINFOДополнительные сведения об этой структуре см. в разделе Windows SDK.

Просто вызвать EnableToolTips недостаточно, чтобы отобразить подсказки для дочерних элементов управления, если только родительское окно не является производным от CFrameWnd . Это связано с тем, что CFrameWnd предоставляет обработчик по умолчанию для TTN_NEEDTEXT уведомления. Если родительское окно не является производным от CFrameWnd , то есть если это диалоговое окно или представление формы, подсказки для дочерних элементов управления будут отображаться неправильно, если не предоставить обработчик для TTN_NEEDTEXT уведомления о подсказке. См. всплывающие подсказки.

Подпрограммы по умолчанию, предоставляемые для окон, EnableToolTips не имеют связанного с ними текста. Чтобы получить текст для всплывающей подсказки, она будет TTN_NEEDTEXT отправлена в родительское окно элемента управления всплывающей подсказки непосредственно перед отображением окна подсказки. Если для этого сообщения нет обработчика, чтобы присвоить значение pszText элементу TOOLTIPTEXT структуры, для подсказки не будет отображаться текст.

Пример

// From message map for CMdiView, a CView-derived class
ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTW, 0, 0xFFFF, &CMdiView::OnToolTipNotify)
ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTA, 0, 0xFFFF, &CMdiView::OnToolTipNotify)
void CMdiView::OnInitialUpdate()
{
   CView::OnInitialUpdate();

   m_Edit.Create(ES_MULTILINE | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER,
                 CRect(10, 10, 100, 100), this, IDC_TTEDIT);
   EnableToolTips(TRUE); // enable tool tips for view
}

//Notification handler
BOOL CMdiView::OnToolTipNotify(UINT id, NMHDR *pNMHDR, LRESULT *pResult)
{
   UNREFERENCED_PARAMETER(id);
   UNREFERENCED_PARAMETER(pResult);

   // need to handle both ANSI and UNICODE versions of the message
   TOOLTIPTEXTA *pTTTA = (TOOLTIPTEXTA*)pNMHDR;
   TOOLTIPTEXTW *pTTTW = (TOOLTIPTEXTW*)pNMHDR;
   CStringA strTipText;
   UINT_PTR nID = pNMHDR->idFrom;
   if (pNMHDR->code == TTN_NEEDTEXTA && (pTTTA->uFlags & TTF_IDISHWND) ||
       pNMHDR->code == TTN_NEEDTEXTW && (pTTTW->uFlags & TTF_IDISHWND))
   {
      // idFrom is actually the HWND of the tool
      nID = ::GetDlgCtrlID((HWND)nID);
   }

   if (nID != 0) // will be zero on a separator
      strTipText.Format("Control ID = %d", nID);

   if (pNMHDR->code == TTN_NEEDTEXTA)
   {
      strncpy_s(pTTTA->szText, sizeof(pTTTA->szText), strTipText,
                strTipText.GetLength() + 1);
   }
   else
   {
      ::MultiByteToWideChar(CP_ACP, 0, strTipText, strTipText.GetLength() + 1,
                            pTTTW->szText, sizeof(pTTTW->szText) / (sizeof pTTTW->szText[0]));
   }

   return TRUE; // message was handled
}

CWnd::EnableTrackingToolTips

Включает или отключает отслеживание всплывающих подсказок.

BOOL EnableTrackingToolTips(BOOL bEnable = TRUE);

Параметры

bEnable
Указывает, включены или отключены подсказки по средствам отслеживания. Если этот параметр имеет значение TRUE , подсказки для средства отслеживания будут включены. Если этот параметр имеет значение FALSE , советы средства отслеживания будут отключены.

Возвращаемое значение

Указывает состояние до EnableWindow вызова функции члена. Если окно было ранее отключено, возвращаемое значение не равно нулю. Возвращаемое значение равно 0, если окно было включено ранее или произошла ошибка.

Remarks

Советы по инструментам отслеживания — это окна всплывающих подсказок, которые можно динамически разместить на экране. При быстром обновлении положения откроется окно подсказки, которое перемещается плавно, или «Track». Эта функция может оказаться полезной, если требуется текст подсказки для перехода к положению указателя при его перемещении.

CWnd::EnableWindow

Разрешает или запрещает ввод с помощью мыши и клавиатуры.

BOOL EnableWindow(BOOL bEnable = TRUE);

Параметры

bEnable
Указывает, следует ли включать или отключать заданное окно. Если этот параметр имеет значение TRUE , окно будет включено. Если этот параметр имеет значение FALSE , окно будет отключено.

Возвращаемое значение

Указывает состояние до EnableWindow вызова функции члена. Если окно было ранее отключено, возвращаемое значение не равно нулю. Возвращаемое значение равно 0, если окно было включено ранее или произошла ошибка.

Remarks

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

Если включенное состояние изменяется, WM_ENABLE перед возвратом этой функции отправляется сообщение.

Если этот элемент отключен, все дочерние окна неявно отключаются, несмотря на то, что они не отправляют WM_ENABLE сообщения.

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

По умолчанию окно включается при его создании. Приложение может указать WS_DISABLED стиль в Create функции- CreateEx члене или, чтобы создать окно, которое изначально отключено. После создания окна приложение также может использовать EnableWindow функцию-член для включения или отключения окна.

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

Пример

//CMyFileDialog is a CFileDialog-derived class
//OnInitDialog is the handler for WM_INITDIALOG
BOOL CMyFileDialog::OnInitDialog()
{
   CFileDialog::OnInitDialog();

   CWnd *pWndParent = GetParent();

   //make sure you add #include <dlgs.h> for IDs 'edt1' & 'stc3'

   //disables the 'file name' edit and static control
   //of the standard file open dialog

   //get handle of 'file name' combobox control & disable it
   CWnd *pWnd = pWndParent->GetDlgItem(cmb13);
   pWnd->EnableWindow(FALSE);

   //get handle of 'file name' static control & disable it
   pWnd = pWndParent->GetDlgItem(stc3);
   pWnd->EnableWindow(FALSE);

   return TRUE;
}

CWnd::EndModalLoop

Завершает вызов RunModalLoop .

virtual void EndModalLoop(int nResult);

Параметры

nResult
Содержит значение, возвращаемое вызывающему объекту RunModalLoop .

Remarks

nResult Параметр распространяется на возвращаемое значение из RunModalLoop .

CWnd::EndModalState

Данная функция-член вызывается для изменения состояния окна с модального на немодальное.

virtual void EndModalState();

CWnd::EndPaint

Помечает конец рисования в данном окне.

void EndPaint(LPPAINTSTRUCT lpPaint);

Параметры

lpPaint
Указывает на PAINTSTRUCT структуру, содержащую сведения о выкраске, полученные BeginPaint функцией-членом.

Remarks

EndPaintФункция-член является обязательной для каждого вызова BeginPaint функции-члена, но только после завершения рисования.

Если курсор был скрыт BeginPaint функцией члена, EndPaint восстанавливает курсор на экране.

Пример

См. пример для CWnd::BeginPaint .

CWnd::ExecuteDlgInit

Инициирует ресурс диалогового окна.

BOOL ExecuteDlgInit(LPCTSTR lpszResourceName);
BOOL ExecuteDlgInit(LPVOID lpResource);

Параметры

lpszResourceName
Указатель на строку с завершающим нулем, указывающую имя ресурса.

lpResource
Указатель на ресурс.

Возвращаемое значение

TRUE значение, если выполняется ресурс диалогового окна; в противном случае — значение FALSE .

Remarks

ExecuteDlgInit будет использовать ресурсы, привязанные к выполняющемуся модулю, или ресурсы из других источников. Для этого ExecuteDlgInit находит обработчик ресурсов путем вызова AfxFindResourceHandle . Если приложение MFC не использует общую библиотеку DLL (MFCx0 [U] [D]). DLL), AfxFindResourceHandle вызывает метод AfxGetResourceHandle , который возвращает текущий обработчик ресурсов для исполняемого объекта. Если приложение MFC использует MFCx0 [U] [D]. DLL, AfxFindResourceHandle проходит по CDynLinkLibrary списку объектов общих библиотек DLL расширения MFC и ищет правильный маркер ресурсов.

CWnd::FilterToolTipMessage

Вызывается платформой для вывода сообщений всплывающей подсказки.

void FilterToolTipMessage(MSG* pMsg);

Параметры

pMsg
Указатель на сообщение подсказки.

Remarks

В большинстве приложений MFC этот метод вызывается платформой из PreTranslateMessage и EnableToolTips , и вам не нужно вызывать его самостоятельно.

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

CWnd::FindWindow

Возвращает верхний уровень, CWnd класс окон которого предоставляется параметром, lpszClassName чье имя окна или заголовок имеет значение lpszWindowName .

static CWnd* PASCAL FindWindow(
    LPCTSTR lpszClassName,
    LPCTSTR lpszWindowName);

Параметры

lpszClassName
Указывает на строку, завершающуюся нулем, которая указывает имя класса окна ( WNDCLASS структура). Если lpClassName имеет значение NULL , все имена классов совпадают.

lpszWindowName
Указывает на строку, завершающуюся нулем, которая указывает имя окна (заголовок окна). Если lpWindowName имеет значение NULL , все имена окон совпадают.

Возвращаемое значение

Определяет окно с указанными именем класса и именем окна. Это значение, NULL если такое окно не найдено.

CWnd* Может быть временным и не должен храниться для последующего использования.

Remarks

Эта функция не выполняет поиск в дочерних окнах.

Пример

// activate an application with a window with a specific class name
BOOL CMyApp::FirstInstance()
{
   CWnd *pWndPrev, *pWndChild;

   // Determine if a window with the class name exists...
   pWndPrev = CWnd::FindWindow(_T("MyNewClass"), NULL);
   if (NULL != pWndPrev)
   {
      // If so, does it have any popups?
      pWndChild = pWndPrev->GetLastActivePopup();

      // If iconic, restore the main window
      if (pWndPrev->IsIconic())
         pWndPrev->ShowWindow(SW_RESTORE);

      // Bring the main window or its popup to the foreground
      pWndChild->SetForegroundWindow();

      // and you are done activating the other application
      return FALSE;
   }

   return TRUE;
}

CWnd::FindWindowEx

Извлекает объект Window, имя класса и имя окна которого совпадают с указанными строками.

static CWnd* FindWindowEx(
    HWND hwndParent,
    HWND hwndChildAfter,
    LPCTSTR lpszClass,
    LPCTSTR lpszWindow);

Параметры

hwndParent
Маркер родительского окна, для которого должны быть просмотрены дочерние окна.

hwndChildAfter
Обработчик для дочернего окна. Поиск начинается со следующего дочернего окна в порядке Z. Дочернее окно должно быть прямым дочерним окном hwndParent , а не просто окном-потомком.

lpszClass
Указатель на строку, завершающуюся нулем, которая указывает имя класса или класс Atom, созданный предыдущим вызовом метода RegisterClass или RegisterClassEx .

lpszWindow
Указатель на строку, завершающуюся нулем, которая указывает имя окна (заголовок окна). Если этот параметр имеет значение NULL , все имена окон совпадают.

Возвращаемое значение

Если функция выполнена, возвращаемое значение является указателем на объект Window с указанными именами класса и окна. Если функция завершается ошибкой, возвращается значение NULL .

Remarks

Эта функция члена эмулирует функциональность функции FindWindowEx , как описано в Windows SDK.

CWnd::FlashWindow

Заflash заданное окно один раз.

BOOL FlashWindow(BOOL bInvert);

Параметры

bInvert
Указывает, должен ли объект CWnd быть мигать или возвращен в исходное состояние. Объект CWnd будет мигать из одного состояния в другое, если bInvert имеет значение TRUE . Если bInvert имеет значение FALSE , окно возвращается в исходное состояние (активное или неактивное).

Возвращаемое значение

Ненулевое значение, если окно было активно до вызова FlashWindow функции члена; в противном случае 0.

Remarks

Для последующего мигания Создайте системный таймер и повторно вызовите FlashWindow . Мигание CWnd означает изменение внешнего вида строки заголовка так, как будто изменилось CWnd с неактивного на активное состояние, или наоборот. (Неактивная строка заголовка меняется на активную строку заголовка; активная строка заголовка меняется на неактивную строку заголовка.)

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

bInvert Параметр должен быть FALSE только тогда, когда окно получает фокус ввода и больше не будет мигать. TRUE при ожидании получения фокуса ввода он должен находиться в последовательных вызовах.

Эта функция всегда возвращает ненулевое значение для минимальных окон. Если окно является сведенным, то FlashWindow просто заflashет значок окна; bInvert игнорируется для сворачивания окон.

Пример

BOOL CPenWidthsDlg::OnInitDialog()
{
   CDialog::OnInitDialog();

   // set timer to cause dialog to flash
   SetTimer(1, 500, NULL);
   return TRUE; // return TRUE unless you set the focus to a control
}

void CPenWidthsDlg::OnTimer(UINT_PTR nIDEvent)
{
   // cause the dialog to flash
   FlashWindow(TRUE);
   CDialog::OnTimer(nIDEvent);
}

CWnd::FlashWindowEx

Завспышки в заданном окне.

BOOL FlashWindowEx(
    DWORD dwFlags,
    UINT uCount,
    DWORD dwTimeout);

Параметры

*dwFlags*
Указывает состояние флэш-памяти. Полный список значений см. в разделе FLASHWINFO структура.

uCount
Указывает количество попыток мигания окна.

dwTimeout
Указывает скорость в миллисекундах, с которой окно будет мигать. Если значение dwTimeout равно нулю, функция использует частоту мерцания курсора по умолчанию.

Возвращаемое значение

Возвращаемое значение задает состояние окна перед вызовом FlashWindowEx функции. Если заголовок окна был нарисован как активный перед вызовом, возвращаемое значение не равно нулю. В противном случае возвращаемое значение равно нулю.

Remarks

Этот метод эмулирует функциональность функции FlashWindowEx , как описано в Windows SDK.

CWnd::FromHandle

Возвращает указатель на объект CWnd, когда дескриптор передается окну. Если объект CWnd не прикреплен к дескриптору, создается и прикрепляется временный объект CWnd.

static CWnd* PASCAL FromHandle(HWND hWnd);

Параметры

hWnd
HWNDОкно окна.

Возвращаемое значение

Возвращает указатель на объект CWnd, когда дескриптор передается окну. Если объект CWnd не прикреплен к дескриптору, создается и прикрепляется временный объект CWnd.

Указатель может быть временным. Его не требуется сохранять для дальнейшего использования.

CWnd::FromHandlePermanent

Возвращает указатель на объект CWnd, когда дескриптор передается окну.

static CWnd* PASCAL FromHandlePermanent(HWND hWnd);

Параметры

hWnd
HWNDОкно окна.

Возвращаемое значение

Указатель на объект CWnd.

Remarks

Если CWnd объект не присоединен к маркеру, NULL возвращается значение.

Эта функция, в отличие от FromHandle , не создает временные объекты.

CWnd::get_accChild

Вызывается платформой для извлечения адреса интерфейса IDispatch для указанного дочернего элемента.

virtual HRESULT get_accChild(
    VARIANT varChild,
    IDispatch** ppdispChild);

Параметры

varChild
Определяет дочерний элемент, интерфейс которого необходимо IDispatch извлечь.

ppdispChild
Получает адрес интерфейса дочернего объекта IDispatch .

Возвращаемое значение

Возвращает S_OK значение on Success, код ошибки COM при сбое. См. раздел возвращаемые значения в IAccessible::get_accChild в Windows SDK.

Remarks

Эта функция является частью поддержки Active ACCESSIBILITY MFC.

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

Дополнительные сведения см IAccessible::get_accChild . в разделе Windows SDK.

CWnd::get_accChildCount

Вызывается платформой для извлечения количества дочерних элементов, принадлежащих этому объекту.

virtual HRESULT get_accChildCount(long* pcountChildren);

Параметры

pcountChildren
Получает число дочерних элементов.

Возвращаемое значение

Возвращает S_OK значение on Success, код ошибки COM при сбое. См. раздел возвращаемые значения в IAccessible::get_accChildCount в Windows SDK.

Remarks

Эта функция является частью поддержки Active ACCESSIBILITY MFC.

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

Дополнительные сведения см IAccessible::get_accChildCount . в разделе Windows SDK.

CWnd::get_accDefaultAction

Вызывается платформой для извлечения строки, описывающей действие объекта по умолчанию.

virtual HRESULT get_accDefaultAction(
    VARIANT varChild,
    BSTR* pszDefaultAction);

Параметры

varChild
Указывает, является ли возвращаемое действие по умолчанию объектом или одним из дочерних элементов объекта. Этот параметр может быть либо CHILDID_SELF (для получения сведений об объекте), либо с помощью идентификатора дочернего элемента (для получения сведений о дочернем элементе объекта).

pszDefaultAction
Адрес BSTR , который получает локализованную строку, описывающую действие по умолчанию для указанного объекта, или NULL значение, если этот объект не имеет действия по умолчанию.

Возвращаемое значение

Возвращает S_OK при успешном выполнении — код ошибки COM при сбое. См. раздел возвращаемые значения в IAccessible:: get_accDefaultAction в Windows SDK.

Remarks

Эта функция является частью поддержки Active ACCESSIBILITY MFC.

Переопределите эту функцию в CWnd классе, производном от, чтобы описать действие по умолчанию для объекта.

Дополнительные сведения см IAccessible::get_accDefaultAction . в разделе Windows SDK.

CWnd::get_accDescription

Вызывается платформой для извлечения строки, описывающей внешний вид указанного объекта.

virtual HRESULT get_accDescription(
    VARIANT varChild,
    BSTR* pszDescription);

Параметры

varChild
Указывает, является ли извлекаемое описание объектом или одним из дочерних элементов объекта. Этот параметр может быть либо CHILDID_SELF (для получения сведений об объекте), либо с помощью идентификатора дочернего элемента (для получения сведений о дочернем элементе объекта).

pszDescription
Адрес объекта BSTR , который получает локализованную строку, описывающую указанный объект, или значение, NULL Если описание для этого объекта недоступно.

Возвращаемое значение

Возвращает S_OK значение on Success, код ошибки COM при сбое. См. раздел возвращаемые значения в IAccessible::get_accDescription в Windows SDK.

Remarks

Эта функция является частью поддержки Active ACCESSIBILITY MFC.

Переопределите эту функцию в CWnd классе, производном от, чтобы описать объект. Вызовите версию базового класса и добавьте описание.

Дополнительные сведения см IAccessible::get_accDescription . в разделе Windows SDK.

CWnd::get_accFocus

Вызывается платформой для извлечения объекта, имеющего фокус клавиатурного ввода.

virtual HRESULT get_accFocus(VARIANT* pvarChild);

Параметры

pvarChild
Получает сведения об объекте, который находится в фокусе. См pvarID . раздел в в IAccessible::get_accFocus Windows SDK.

Возвращаемое значение

Возвращает S_OK значение on Success, код ошибки COM при сбое. См. раздел возвращаемые значения в IAccessible::get_accFocus в Windows SDK.

Remarks

Эта функция является частью поддержки Active ACCESSIBILITY MFC.

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

Дополнительные сведения см IAccessible::get_accFocus . в разделе Windows SDK.

CWnd::get_accHelp

Вызывается платформой для получения строки свойства справки объекта.

virtual HRESULT get_accHelp(
    VARIANT varChild,
    BSTR* pszHelp);

Параметры

varChild
Указывает, должны ли извлекаться справочные сведения — объект или один из дочерних элементов объекта. Этот параметр может быть либо CHILDID_SELF (для получения сведений об объекте), либо с помощью идентификатора дочернего элемента (для получения сведений о дочернем элементе объекта).

pszHelp
Адрес объекта BSTR , который получает локализованную строку, содержащую справочные сведения для указанного объекта, или значение, NULL Если справочная информация недоступна.

Возвращаемое значение

Возвращает S_OK значение on Success, код ошибки COM при сбое. См. раздел возвращаемые значения в IAccessible::get_accHelp в Windows SDK.

Remarks

Эта функция является частью поддержки Active ACCESSIBILITY MFC.

Переопределите эту функцию в CWnd классе, производном от, чтобы предоставить текст справки для объекта.

Дополнительные сведения см IAccessible::get_accHelp . в разделе Windows SDK.

CWnd::get_accHelpTopic

Вызвано платформой для получения полного пути к файлу WinHelp , связанному с указанным объектом, и идентификатором соответствующего раздела в этом файле.

virtual HRESULT get_accHelpTopic(
    BSTR* pszHelpFile,
    VARIANT varChild,
    long* pidTopic);

Параметры

pszHelpFile
Адрес BSTR , который получает полный путь к WinHelp файлу, связанному с указанным объектом, если он есть.

varChild
Указывает, должен ли раздел справки извлекаться из объекта или одного из дочерних элементов объекта. Этот параметр может быть либо CHILDID_SELF (для получения раздела справки по объекту), либо с помощью идентификатора дочернего элемента (для получения раздела справки для одного из дочерних элементов объекта).

pidTopic
Определяет раздел файла справки, связанный с указанным объектом. См pidTopic . раздел в в IAccessible::get_accHelpTopic Windows SDK.

Возвращаемое значение

Возвращает S_OK значение on Success, код ошибки COM при сбое. См. раздел возвращаемые значения в IAccessible::get_accHelpTopic в Windows SDK.

Remarks

Эта функция является частью поддержки Active ACCESSIBILITY MFC.

Переопределите эту функцию в CWnd классе, производном от, чтобы предоставить справочную информацию об объекте.

Дополнительные сведения см IAccessible::get_accHelpTopic . в разделе Windows SDK.

CWnd::get_accKeyboardShortcut

Вызывается платформой для извлечения сочетания клавиш указанного объекта или клавиши доступа к нему.

virtual HRESULT get_accKeyboardShortcut(
    VARIANT varChild,
    BSTR* pszKeyboardShortcut);

Параметры

varChild
Указывает, следует ли получать сочетание клавиш для объекта или для одного из дочерних элементов объекта. Этот параметр может быть либо CHILDID_SELF (для получения сведений об объекте), либо с помощью идентификатора дочернего элемента (для получения сведений о дочернем элементе объекта).

pszKeyboardShortcut
Адрес BSTR , который получает локализованную строку, идентифицирующую сочетание клавиш, или значение, если сочетание клавиш не NULL связано с указанным объектом.

Возвращаемое значение

Возвращает S_OK значение on Success, код ошибки COM при сбое. См. раздел возвращаемые значения в IAccessible::get_accKeyboardShortcut в Windows SDK.

Remarks

Эта функция является частью Active Accessibility поддержки MFC.

Переопределите эту функцию в CWnd классе, производном от, чтобы обозначить сочетание клавиш для объекта.

Дополнительные сведения см IAccessible::get_accKeyboardShortcut . в разделе Windows SDK.

CWnd::get_accName

Вызывается платформой для извлечения имени указанного объекта.

virtual HRESULT get_accName(
    VARIANT varChild,
    BSTR* pszName);

Параметры

varChild
Указывает, является ли извлекаемое имя объектом или одним из дочерних элементов объекта. Этот параметр может быть либо CHILDID_SELF (для получения сведений об объекте), либо с помощью идентификатора дочернего элемента (для получения сведений о дочернем элементе объекта).

pszName
Адрес объекта BSTR , который получает строку, содержащую имя указанного объекта.

Возвращаемое значение

Возвращает S_OK значение on Success, код ошибки COM при сбое. См. раздел возвращаемые значения в IAccessible::get_accName в Windows SDK.

Remarks

Эта функция является частью поддержки Active ACCESSIBILITY MFC.

Переопределите эту функцию в CWnd классе, производном от, чтобы вернуть имя объекта.

Дополнительные сведения см IAccessible::get_accName . в разделе Windows SDK.

CWnd::get_accParent

Вызывается платформой для извлечения интерфейса IDispatch родительского элемента данного объекта.

virtual HRESULT get_accParent(IDispatch** ppdispParent);

Параметры

ppdispParent
Получает адрес интерфейса родительского объекта IDispatch . Переменная имеет значение NULL , если родительский объект не существует, или если дочерний элемент не может получить доступ к родительскому элементу.

Возвращаемое значение

Возвращает значение S_OK Success, COM код ошибки в случае сбоя. См. раздел возвращаемые значения в IAccessible::get_accParent в Windows SDK.

Remarks

Эта функция является частью поддержки Active ACCESSIBILITY MFC.

В большинстве случаев переопределение этой функции не требуется.

Дополнительные сведения см IAccessible::get_accParent . в разделе Windows SDK.

CWnd::get_accRole

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

virtual HRESULT get_accRole(
    VARIANT varChild,
    VARIANT* pvarRole);

Параметры

varChild
Указывает, являются ли извлекаемые сведения о роли объектом или одним из дочерних элементов объекта. Этот параметр может быть либо CHILDID_SELF (для получения сведений об объекте), либо с помощью идентификатора дочернего элемента (для получения сведений о дочернем элементе объекта).

pvarRole
Получает сведения о роли. См pvarRole . раздел в в IAccessible::get_accRole Windows SDK.

Возвращаемое значение

Возвращает S_OK значение on Success, код ошибки COM при сбое. См. раздел возвращаемые значения в IAccessible::get_accRole в Windows SDK.

Remarks

Эта функция является частью поддержки Active ACCESSIBILITY MFC.

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

Дополнительные сведения см IAccessible::get_accRole . в разделе Windows SDK.

CWnd::get_accSelection

Вызывается платформой для извлечения выбранного дочернего элемента этого объекта.

virtual HRESULT get_accSelection(VARIANT* pvarChildren);

Параметры

pvarChildren
Получает сведения о том, какие дочерние элементы выбраны. См pvarChildren . раздел в в IAccessible::get_accSelection Windows SDK.

Возвращаемое значение

Возвращает S_OK при успешном выполнении — код ошибки COM при сбое. См. раздел возвращаемые значения в IAccessible::get_accSelection в Windows SDK.

Remarks

Эта функция является частью поддержки Active ACCESSIBILITY MFC.

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

Дополнительные сведения см IAccessible::get_accSelection . в разделе Windows SDK.

CWnd::get_accState

Вызывается платформой для извлечения текущего состояния указанного объекта.

virtual HRESULT get_accState(
    VARIANT varChild,
    VARIANT* pvarState);

Параметры

varChild
Указывает, являются ли извлекаемые сведения о состоянии объектом или одним из дочерних элементов объекта. Этот параметр может быть либо CHILDID_SELF (для получения сведений об объекте), либо с помощью идентификатора дочернего элемента (для получения сведений о дочернем элементе объекта).

pvarState
Получает сведения о состоянии объекта. См pvarState . раздел в в IAccessible::get_accState Windows SDK.

Возвращаемое значение

Возвращает S_OK значение on Success, код ошибки COM при сбое. См. раздел возвращаемые значения в IAccessible::get_accState в Windows SDK.

Remarks

Эта функция является частью поддержки Active ACCESSIBILITY MFC.

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

Дополнительные сведения см IAccessible::get_accState . в разделе Windows SDK.

CWnd::get_accValue

Вызывается платформой для извлечения значения указанного объекта.

virtual HRESULT get_accValue(
    VARIANT varChild,
    BSTR* pszValue);

Параметры

varChild
Указывает, являются ли получаемые сведения о значениях объектом или одним из дочерних элементов объекта. Этот параметр может быть либо CHILDID_SELF (для получения сведений об объекте), либо с помощью идентификатора дочернего элемента (для получения сведений о дочернем элементе объекта).

pszValue
Адрес объекта BSTR , который получает локализованную строку, содержащую текущее значение объекта.

Возвращаемое значение

Возвращает S_OK значение on Success, код ошибки COM при сбое. См. раздел возвращаемые значения в IAccessible::get_accValue в Windows SDK.

Remarks

Эта функция является частью поддержки Active ACCESSIBILITY MFC.

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

Дополнительные сведения см IAccessible::get_accValue . в разделе Windows SDK.

CWnd::GetActiveWindow

Получает указатель на активное окно.

static CWnd* PASCAL GetActiveWindow();

Возвращаемое значение

Активное окно или, NULL Если во время вызова не было активно ни одного окна. Указатель может быть временным. Его не требуется сохранять для дальнейшего использования.

Remarks

Активным окном является либо окно, имеющее текущий фокус ввода, либо окно, явно активное SetActiveWindow функцией-членом.

CWnd::GetAncestor

Извлекает объект окна-предка для указанного окна.

CWnd* GetAncestor(UINT gaFlags) const;

Параметры

gaFlags
Указывает извлекаемый предок. Полный список возможных значений см. в разделе GetAncestor .

Возвращаемое значение

Если функция выполнена, возвращаемое значение является указателем на объект окна-предка. Если функция завершается ошибкой, возвращается значение NULL .

Remarks

Эта функция члена эмулирует функциональность функции GetAncestor , как описано в Windows SDK.

CWnd::GetCapture

Извлекает окно с захватом мыши.

static CWnd* PASCAL GetCapture();

Возвращаемое значение

Определяет окно, в котором находится захват мыши. NULLЕсли ни одно из окон не содержит захват мыши.

Возвращаемое значение может быть временным и не должно храниться для последующего использования.

Remarks

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

CWnd::GetCaretPos

Возвращает клиентские координаты текущей позиции курсора и возвращает их в виде CPoint .

static CPoint PASCAL GetCaretPos();

Возвращаемое значение

CPoint Объект, содержащий координаты позиции курсора.

Remarks

Позиции курсора задаются в клиентских координатах CWnd окна.

CWnd::GetCheckedRadioButton

Возвращает идентификатор выбранного переключателя в указанной группе.

int GetCheckedRadioButton(
    int nIDFirstButton,
    int nIDLastButton);

Параметры

nIDFirstButton
Задает целочисленный идентификатор для первого переключателя в группе.

nIDLastButton
Задает целочисленный идентификатор последнего переключателя в группе.

Возвращаемое значение

Идентификатор проверяемого переключателя или значение 0, если ничего не выбрано.

CWnd::GetClientRect

Копирует клиентские координаты CWnd клиентской области в структуру, на которую указывает lpRect .

void GetClientRect(LPRECT lpRect) const;

Параметры

lpRect
Указывает на RECT структуру или CRect объект для получения клиентских координат. leftЧлены и top будут иметь значение 0. rightЭлементы и bottom будут содержать ширину и высоту окна.

Remarks

Клиентские координаты указывают верхний левый и нижний правый угол клиентской области. Так как координаты клиента зависят от верхнего левого угла CWnd клиентской области, координаты левого верхнего угла равны (0, 0).

Пример

См. пример для CWnd::IsIconic .

CWnd::GetClipboardOwner

Извлекает текущего владельца буфера обмена.

static CWnd* PASCAL GetClipboardOwner();

Возвращаемое значение

Определяет окно, которому принадлежит буфер обмена, если функция выполнена успешно. В противном случае значение равно NULL.

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

Remarks

Буфер обмена по-прежнему может содержать данные, даже если в настоящее время они не принадлежат.

CWnd::GetClipboardViewer

Извлекает первое окно в цепочке средства просмотра буфера обмена.

static CWnd* PASCAL GetClipboardViewer();

Возвращаемое значение

Определяет окно, которое в настоящее время отвечает за отображение буфера обмена в случае успеха; в противном случае NULL (например, если средство просмотра отсутствует).

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

CWnd::GetControlUnknown

Вызовите эту функцию-член, чтобы получить указатель на неизвестный элемент управления OLE.

LPUNKNOWN GetControlUnknown();

Возвращаемое значение

Указатель на IUnknown интерфейс элемента управления OLE, представленный этим CWnd объектом. Если этот объект не представляет элемент управления OLE, возвращается значение NULL .

Remarks

Не следует освобождать этот IUnknown указатель. Как правило, для получения определенного интерфейса элемента управления используется.

Указатель интерфейса, возвращенный, GetControlUnknown не подсчитывается по ссылке. Не вызывайте IUnknown::Release указатель для указателя, если для него не был вызван ранее IUnknown::AddRef .

Пример

// The following code fragment is taken from CMyDlg::OnInitDialog
// CMyDlg is a CDialog-derived class.

// IDC_MSACALCTRL1 is the ID of the Calendar control OCX embedded
// on this dialog
CWnd *pWndCal = GetDlgItem(IDC_MSACALCTRL1);

// Use the IUnknown of the control
LPUNKNOWN pUnk = pWndCal->GetControlUnknown();

// From there get the IDispatch interface of control
LPDISPATCH pDisp = NULL;
pUnk->QueryInterface(IID_IDispatch, (LPVOID*)&pDisp);

// use IDispatch method to invoke the control's functionality

CWnd::GetCurrentMessage

Возвращает указатель на сообщение, обрабатываемое этим окном в настоящий момент. Должен вызываться только в функции-члене обработчика сообщения OnMessage .

static const MSG* PASCAL GetCurrentMessage();

Возвращаемое значение

Возвращает указатель на MSG структуру, содержащую сообщение, которое окно обрабатывает в данный момент. Должен вызываться только в обработчике сообщений on.

Пример

См. пример для CMDIFrameWnd::MDICascade .

CWnd::GetDC

Извлекает указатель на общий контекст устройства, класса или частного контекста для клиентской области в зависимости от стиля класса, указанного для CWnd .

CDC* GetDC();

Возвращаемое значение

Определяет контекст устройства для CWnd клиентской области в случае успеха; в противном случае возвращается значение NULL . Указатель может быть временным. Его не требуется сохранять для дальнейшего использования.

Remarks

Для общих контекстов устройств GetDC назначает атрибуты по умолчанию для контекста при каждом извлечении. Для классов и частных контекстов GetDC оставляет ранее назначенные атрибуты без изменений. Контекст устройства можно использовать в последующих функциях интерфейса графических устройств (GDI) для рисования в клиентской области.

Если контекст устройства не принадлежит классу окна, ReleaseDC необходимо вызвать функцию-член, чтобы освободить контекст после рисования.

Контекст устройства, принадлежащий CWnd классу, возвращается функцией- GetDC членом CS_CLASSDC , если CS_OWNDC , или CS_PARENTDC была указана в качестве стиля в WNDCLASS структуре при регистрации класса.

CWnd::GetDCEx

Получает маркер контекста устройства для CWnd окна.

CDC* GetDCEx(
    CRgn* prgnClip,
    DWORD flags);

Параметры

prgnClip
Определяет область обрезки, которая может быть объединена с видимой областью окна клиента.

flags
Может иметь одно из следующих предустановленных значений:

  • DCX_CACHE Возвращает контекст устройства из кэша, а не OWNDC CLASSDC окна или. Переопределяет CS_OWNDC и CS_CLASSDC.

  • DCX_CLIPCHILDREN Исключает видимые области всех дочерних окон под CWnd окном.

  • DCX_CLIPSIBLINGS Исключает видимые области всех одноуровневого окна над CWnd окном.

  • DCX_EXCLUDERGN Исключает область обрезки, обозначенную, prgnClip из видимой области возвращаемого контекста устройства.

  • DCX_INTERSECTRGN Пересекает область обрезки, обозначенную prgnClip в видимой области возвращаемого контекста устройства.

  • DCX_LOCKWINDOWUPDATE Позволяет рисовать даже при наличии LockWindowUpdate вызова, который в противном случае исключит это окно. Это значение используется для рисования во время отслеживания.

  • DCX_PARENTCLIP Использует видимую область родительского окна и игнорирует WS_CLIPCHILDREN разрядность родительского окна и WS_PARENTDC стиля. Это значение задает начало координат контекста устройства в левом верхнем углу CWnd окна.

  • DCX_WINDOW Возвращает контекст устройства, соответствующий прямоугольнику окна, а не прямоугольнику клиента.

Возвращаемое значение

Контекст устройства для указанного окна, если функция выполнена успешно; в противном случае — значение NULL .

Remarks

Контекст устройства можно использовать в последующих функциях GDI для отрисовки в клиентской области.

Эта функция, которая является расширением GetDC функции, предоставляет приложению более полный контроль над тем, как и как обрезается контекст устройства для окна.

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

Чтобы получить контекст кэшированного устройства, необходимо указать приложение DCX_CACHE . Если DCX_CACHE не указан и окно не имеет ни CS_OWNDC CS_CLASSDC , эта функция возвращает NULL .

Контекст устройства с особыми характеристиками возвращается функцией, GetDCEx Если CS_CLASSDC CS_OWNDC CS_PARENTDC при регистрации класса в структуре был указан стиль, или WNDCLASS .

Дополнительные сведения об этих характеристиках см. в описании WNDCLASS структуры в Windows SDK.

CWnd::GetDCRenderTarget

Извлекает целевой объект отрисовки из контекста устройства для окна CWnd.

CDCRenderTarget* GetDCRenderTarget();

Возвращаемое значение

Контекст устройства отрисовка целевого объекта для указанного окна, если функция выполнена успешно; в противном случае — значение NULL .

Remarks

CWnd::GetDescendantWindow

Вызовите эту функцию-член для поиска дочернего окна, указанного с помощью заданного идентификатора.

CWnd* GetDescendantWindow(
    int nID,
    BOOL bOnlyPerm = FALSE) const;

Параметры

nID
Указывает идентификатор элемента управления или дочернего окна для извлечения.

bOnlyPerm
Указывает, может ли возвращаемое окно быть временным. Если значение TRUE равно, может возвращаться только постоянное окно. Если FALSE , функция может возвращать временное окно. Дополнительные сведения о временных окнах см. в техническом примечании 3.

Возвращаемое значение

Указатель на CWnd объект или, NULL Если дочернее окно не найдено.

Remarks

Эта функция члена выполняет поиск по всему дереву дочерних окон, а не только к окнам, которые являются непосредственными дочерними элементами.

CWnd::GetDesktopWindow

Возвращает окно рабочего стола Windows.

static CWnd* PASCAL GetDesktopWindow();

Возвращаемое значение

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

Remarks

Окно рабочего стола охватывает весь экран и является областью, на которой рисуются все значки и другие окна.

CWnd::GetDlgCtrlID

Возвращает значение идентификатора окна или элемента управления для любого дочернего окна, а не только для элемента управления в диалоговом окне.

int GetDlgCtrlID() const;

Возвращаемое значение

Числовой идентификатор CWnd дочернего окна, если функция выполнена успешно; в противном случае — значение 0.

Remarks

Так как окна верхнего уровня не имеют значения идентификатора, возвращаемое значение этой функции является недопустимым, если CWnd является окном верхнего уровня.

Пример

См. пример для CWnd::OnCtlColor .

CWnd::GetDlgItem

Извлекает указатель на указанный элемент управления или дочернее окно в диалоговом окне или другом окне.

CWnd* GetDlgItem(int nID) const;

void GetDlgItem(
    int nID,
    HWND* phWnd) const;

Параметры

nID
Указывает идентификатор элемента управления или дочернего окна для извлечения.

phWnd
Указатель на дочернее окно.

Возвращаемое значение

Указатель на заданный элемент управления или дочернее окно. Если отсутствует элемент управления с целочисленным ИДЕНТИФИКАТОРом, заданным nID параметром, значение равно NULL .

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

Remarks

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

Пример

// uses GetDlgItem to return a pointer to a user interface control
CEdit *pBoxOne;
pBoxOne = (CEdit*)GetDlgItem(IDC_MYEDIT);
GotoDlgCtrl(pBoxOne);

CWnd::GetDlgItemInt

Извлекает текст элемента управления, определенного параметром nID .

UINT GetDlgItemInt(
    int nID,
    BOOL* lpTrans = NULL,
    BOOL bSigned = TRUE) const;

Параметры

nID
Задает целочисленный идентификатор элемента управления "диалоговое окно" для перевода.

lpTrans
Указывает на логическую переменную, которая будет принимать переведенный флаг.

bSigned
Указывает, подписывается ли возвращаемое значение.

Возвращаемое значение

Задает переведенное значение текста элемента диалогового окна. Поскольку 0 является допустимым возвращаемым значением, lpTrans для обнаружения ошибок необходимо использовать. Если требуется возвращаемое значение со знаком, приведите его как int тип.

Функция возвращает 0, если переведенное число больше INT_MAX (для чисел со знаком) или UINT_MAX (для неподписанного числа).

При возникновении ошибок, например при обнаружении нецифровых символов и превышении указанного выше максимального значения, GetDlgItemInt копирует 0 в расположение, на которое указывает lpTrans . Если ошибок нет, lpTrans получает ненулевое значение. Если lpTrans имеет значение NULL , не GetDlgItemInt предупреждает об ошибках.

Remarks

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

Если bSigned имеет значение TRUE , GetDlgItemInt проверяет наличие знака минуса (-) в начале текста и преобразует текст в число со знаком. В противном случае создается значение без знака.

Он отправляет WM_GETTEXT сообщение элементу управления.

CWnd::GetDlgItemText

Вызовите эту функцию-член для получения заголовка или текста, связанного с элементом управления в диалоговом окне.

int GetDlgItemText(
    int nID,
    LPTSTR lpStr,
    int nMaxCount) const;

int GetDlgItemText(
    int nID,
    CString& rString) const;

Параметры

nID
Задает целочисленный идентификатор элемента управления, заголовок которого необходимо получить.

lpStr
Указывает на буфер для получения заголовка или текста элемента управления.

nMaxCount
Задает максимальную длину строки (в символах), в которую будет выполнено копирование lpStr . Если строка длиннее nMaxCount , она усекается.

rString
Ссылка на CString .

Возвращаемое значение

Задает фактическое число символов, копируемых в буфер, не включая завершающий символ null. Если текст не копируется, значение равно 0.

Remarks

GetDlgItemTextФункция-член копирует текст в расположение, на которое указывает, lpStr и возвращает количество байтов, которое он копирует.

CWnd::GetDSCCursor

Вызовите эту функцию-член, чтобы получить указатель на базовый курсор, определяемый DataSource свойствами, UserName , Password и SQL элемента управления источника данных.

IUnknown* GetDSCCursor();

Возвращаемое значение

Указатель на курсор, определенный элементом управления источника данных. MFC выполняет вызов AddRef для указателя.

Remarks

Используйте возвращаемый указатель, чтобы задать ICursor свойство сложного элемента управления с привязкой к данным, например элемент управления сетки с привязкой к данным. Элемент управления источника данных не станет активным до тех пор, пока первый привязанный элемент управления не запросит его курсор. Это может произойти либо явно, либо путем вызова GetDSCCursor или неявно диспетчером привязок MFC. В любом случае можно принудительно активировать элемент управления источником данных, вызвав метод GetDSCCursor , а затем вызвав Release возвращаемый указатель на IUnknown . Активация приведет к тому, что система управления источниками данных попытается подключиться к базовому источнику данных. Возвращаемый указатель может использоваться в следующем контексте:

Пример

BOOL CMyDlg::OnInitDialog()
{
   // Find the child controls on the dialog
   HRESULT hr = E_FAIL;
   CWnd *pDSC = GetDlgItem(IDC_DATASOURCE);
   CWnd *pListWnd = GetDlgItem(IDC_DBLIST1);
   IUnknown *punkList = pListWnd->GetControlUnknown();
   IDBList *pList = NULL;

   if (NULL != punkList)
   {
      hr = punkList->QueryInterface(__uuidof(IDBList), (void **)&pList);
   }

   if (SUCCEEDED(hr))
   {
      // Tell the MFC binding manager that we are
      // binding DISPID 3 to the data-source control.
      pListWnd->BindProperty(0x3, pDSC);

      // Tell the listbox which field to expose as its bound column
      pList->put_BoundColumn(_T("ContactFirstName"));

      // Tell the listbox which cursor and column to populate its list from
      pList->put_ListField(_T("ContactFirstName"));

      IUnknown *punkCursor = pDSC->GetDSCCursor();
      if (NULL != punkCursor)
      {
         punkCursor->Release();
      }

      pList->Release();
      return TRUE;
   }

CWnd::GetDynamicLayout

Извлекает указатель на объект диспетчера динамического макета.

CMFCDynamicLayout* GetDynamicLayout();

Возвращаемое значение

Указатель на объект диспетчера динамической компоновки или значение, NULL Если динамический макет не включен.

Remarks

Объект окна владеет и управляет временем жизни возвращаемого указателя, поэтому его следует использовать только для доступа к этому объекту. Не удаляйте указатель или сохраняйте его перманентно.

CWnd::GetExStyle

Возвращает расширенный стиль окна.

DWORD GetExStyle() const;

Возвращаемое значение

Расширенный стиль окна. Дополнительные сведения о расширенных стилях окон, используемых в MFC, см. в разделе Расширенные стили окон.

CWnd::GetFocus

Получает указатель на объект CWnd , на который в данный момент находится фокус ввода.

static CWnd* PASCAL GetFocus();

Возвращаемое значение

Указатель на окно, имеющее текущий фокус, или значение, NULL Если окно фокуса отсутствует.

Указатель может быть временным. Его не требуется сохранять для дальнейшего использования.

CWnd::GetFont

Отправляет WM_GETFONT сообщение в окно для получения текущего шрифта.

CFont* GetFont() const;

Возвращаемое значение

Указатель на CFont объект, присоединенный к текущему шрифту окна.

Remarks

Этот метод не действует, если только окно не обрабатывает WM_GETFONT сообщение. Многие классы MFC, производные от CWnd обработки данного сообщения, так как они присоединены к предопределенному классу окна, содержащему обработчик сообщений для WM_GETFONT сообщения. Для использования этого метода классы, производные от, CWnd должны определять обработчик метода для WM_GETFONT сообщения.

CWnd::GetForegroundWindow

Возвращает указатель на окно переднего плана (окно, с которым пользователь работает в данный момент).

static CWnd* PASCAL GetForegroundWindow();

Возвращаемое значение

Указатель на окно переднего плана. Это может быть временный CWnd объект.

Remarks

Окно переднего плана применяется только к окнам верхнего уровня (окнам фрейма или диалоговым окнам).

CWnd::GetIcon

Вызовите эту функцию-член, чтобы получить маркер для большого (32x32) или маркера на маленький значок (16x16), как показано в bBigIcon .

HICON GetIcon(BOOL bBigIcon) const;

Параметры

bBigIcon
Задает значок 32 пикселей на 32 пикселей, если TRUE ; задает значок 16 пикселей на 16 пикселей, если FALSE .

Возвращаемое значение

Дескриптор для значка. В случае неудачи возвращает NULL .

CWnd::GetLastActivePopup

Определяет последнее проявлявшее активность всплывающее окно, принадлежащее классу CWnd.

CWnd* GetLastActivePopup() const;

Возвращаемое значение

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

  • Последнее окно было активно.

  • Окно не владеет всплывающими окнами.

  • Окно не является окном верхнего уровня или принадлежит другому окну.

Указатель может быть временным. Его не требуется сохранять для дальнейшего использования.

Пример

См. пример для CWnd::FindWindow .

CWnd::GetLayeredWindowAttributes

Получает ключ цвета прозрачности многослойного окна.

BOOL GetLayeredWindowAttributes(
    COLORREF* pcrKey,
    BYTE* pbAlpha,
    DWORD* pdwFlags) const;

Параметры

pcrKey
Указатель на COLORREF значение, получающее ключ цвета прозрачности, используемый при создании многоуровневого окна. Все пиксели, закрашенные окном этого цвета, будут прозрачными. Это может быть NULL , если аргумент не требуется.

pbAlpha
Указатель на объект BYTE , который получает альфа-значение, используемое для описания прозрачности многоуровневого окна. Если переменная, на которую ссылается, pbAlpha имеет значение 0, окно полностью прозрачно. Если переменная, на которую ссылается, pbAlpha имеет значение 255, окно является непрозрачным. Это может быть NULL , если аргумент не требуется.

pdwFlags
Указатель на объект DWORD , который получает флаг слоя. Это может быть NULL , если аргумент не требуется. Полный список возможных значений см. в разделе "жетлайередвиндоваттрибутес.

Возвращаемое значение

Ненулевое значение, если функция выполнена. в противном случае — 0.

Remarks

Эта функция члена эмулирует функциональность функции GetLayeredWindowAttributes , как описано в Windows SDK.

CWnd::GetMenu

Получает указатель на меню для этого окна.

CMenu* GetMenu() const;

Возвращаемое значение

Определяет меню. Значение равно, NULL если не CWnd имеет меню. Возвращаемое значение не определено, если CWnd является дочерним окном.

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

Remarks

Эта функция не должна использоваться для дочерних окон, так как у них нет меню.

Пример

void CMainFrame::OnCwndDeletefilemenu()
{
   // This example deletes the leftmost popup menu or leftmost
   // popup menu item from the application's main window.
   CWnd *pMain = AfxGetMainWnd();

   // The main window _can_ be NULL, so this code
   // doesn't ASSERT and actually tests.
   if (pMain != NULL)
   {
      // Get the main window's menu
      CMenu *pMenu = pMain->GetMenu();

      // If there is a menu and it has items, we'll
      // delete the first one.
      if (pMenu != NULL && pMenu->GetMenuItemCount() > 0)
      {
         pMenu->DeleteMenu(0, MF_BYPOSITION);
         // force a redraw of the menu bar
         pMain->DrawMenuBar();
      }

      // No need to delete pMenu because it is an MFC
      // temporary object.
   }
}

CWnd::GetMenuBarInfo

Извлекает сведения о указанной строке меню.

BOOL GetMenuBarInfo(
    LONG idObject,
    LONG idItem,
    PMENUBARINFO pmbi) const;

Параметры

idObject
Указывает объект меню. Список возможных значений см. в разделе GetMenuBarInfo .

idItem
Указывает элемент, для которого требуется получить сведения. Если этот параметр равен нулю, функция получает сведения о самом меню. Если этот параметр равен 1, функция получает сведения о первом элементе в меню и т. д.

pmbi
Указатель на MENUBARINFO структуру, которая получает сведения.

Возвращаемое значение

Ненулевое значение, если функция выполнена. в противном случае — 0.

Remarks

Эта функция члена эмулирует функциональность функции GetMenuBarInfo , как описано в Windows SDK.

CWnd::GetNextDlgGroupItem

Выполняет поиск предыдущего или следующего элемента управления в группе элементов управления в диалоговом окне.

CWnd* GetNextDlgGroupItem(
    CWnd* pWndCtl,
    BOOL bPrevious = FALSE) const;

COleControlSiteOrWnd* GetNextDlgGroupItem(
    COleControlSiteOrWnd* pCurSiteOrWnd = NULL) const;

Параметры

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

bPrevious
Указывает, как функция должна выполнять поиск в группе элементов управления в диалоговом окне. Если TRUE значение равно, функция выполняет поиск предыдущего элемента управления в группе FALSE . значение, если выполняется поиск следующего элемента управления в группе.

pCurSiteOrWnd
Определяет COleControlSiteOrWnd элемент управления. Дополнительные сведения о COleControlSiteOrWnd см. в разделе Примечания.

Возвращаемое значение

Указатель на предыдущий или следующий элемент управления в группе, если функция-член успешно выполнена.

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

Remarks

Группа элементов управления начинается с элемента управления, созданного с использованием WS_GROUP стиля, и заканчивается последним элементом управления, который не был создан с помощью WS_GROUP стиля.

По умолчанию GetNextDlgGroupItem функция-член возвращает указатель на следующий элемент управления в группе. Если pWndCtl определяет первый элемент управления в группе и bPrevious имеет значение TRUE , GetNextDlgGroupItem возвращает указатель на последний элемент управления в группе.

Примечание

Поскольку MFC поддерживает безоконные элементы управления ActiveX, стандартные элементы управления ActiveX и окна, ссылающиеся на элемент управления только с HWND более недостаточным пределом. COleControlSiteOrWndОбъект содержит сведения, определяющие объект как оконный элемент ActiveX, безоконный элемент управления ActiveX или окно, как показано ниже:

Тип элемента управления или окна Идентифицирующие сведения
Оконный элемент управления ActiveX Содержит HWND и связывает с ним объект колеконтролсите . m_hWndЧлен COleControlSiteOrWnd имеет значение элемента HWND управления, а m_pSite член указывает на элемент управления COleControlSite .
Элемент управления ActiveX без окон Не содержит HWND . m_pSiteЧленом COleControlSiteOrWnd точек является элемент управления COleControlSite , а m_hWnd член — NULL .
Стандартное окно Содержит только HWND . m_hWndЧлен класса COleControlSiteOrWnd имеет значение HWND окна, а m_pSite член — NULL .

CWnd::GetNextDlgTabItem

Извлекает указатель на первый элемент управления, созданный с использованием WS_TABSTOP стиля и предшествующий или после указанного элемента управления.

CWnd* GetNextDlgTabItem(
    CWnd* pWndCtl,
    BOOL bPrevious = FALSE) const;

COleControlSiteOrWnd* GetNextDlgTabItem(
    COleControlSiteOrWnd* pCurSiteOrWnd,
    BOOL bPrevious) const;

Параметры

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

pCurSiteOrWnd
Определяет COleControlSiteOrWnd элемент управления. Дополнительные сведения о COleControlSiteOrWnd см. в разделе CWnd::GetNextDlgGroupItem .

bPrevious
Указывает, как функция должна выполнять поиск в диалоговом окне. Если TRUE значение равно, функция выполняет поиск предыдущего элемента управления в диалоговом окне; Если FALSE он выполняет поиск следующего элемента управления.

Возвращаемое значение

Указатель на предыдущий или следующий элемент управления, имеющий WS_TABSTOP стиль, если функция-член выполнена успешно.

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

Дополнительные сведения о COleControlSiteOrWnd см. в разделе CWnd::GetNextDlgGroupItem .

CWnd::GetNextWindow

Выполняет поиск следующего (или предыдущего) окна в списке диспетчера окон.

CWnd* GetNextWindow(UINT nFlag = GW_HWNDNEXT) const;

Параметры

nFlag
Указывает, возвращает ли функция указатель на следующее окно или предыдущее окно. Он может быть либо GW_HWNDNEXT , который возвращает окно, следующее за CWnd объектом в списке диспетчера окон, либо GW_HWNDPREV , которое возвращает предыдущее окно в списке диспетчера окон.

Возвращаемое значение

Определяет следующее (или предыдущее) окно в списке диспетчера окон, если функция-член успешно выполнена.

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

Remarks

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

Если CWnd является окном верхнего уровня, функция ищет следующее (или предыдущее) окно верхнего уровня; если CWnd является дочерним окном, функция выполняет поиск следующего (или предыдущего) дочернего окна.

CWnd::GetOleControlSite

Извлекает настраиваемый сайт для указанного элемента управления ActiveX.

COleControlSite* GetOleControlSite(UINT idControl) const;

Параметры

idControl
Идентификатор элемента управления ActiveX.

CWnd::GetOpenClipboardWindow

Получает маркер окна, в котором в данный момент открыт буфер обмена.

static CWnd* PASCAL GetOpenClipboardWindow();

Возвращаемое значение

Маркер окна, в котором в данный момент открыт буфер обмена, если функция выполнена успешно; в противном случае — значение NULL .

CWnd::GetOwner

Получает указатель на владельца окна.

CWnd* GetOwner() const;

Возвращаемое значение

Указатель на объект CWnd.

Remarks

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

Понятие владения этой функцией отличается от концепции владения GetWindow .

CWnd::GetParent

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

CWnd* GetParent() const;

Возвращаемое значение

См. раздел возвращаемые значения в разделе GetParent Windows SDK.

Remarks

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

CWnd::GetParentFrame

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

CFrameWnd* GetParentFrame() const;

Возвращаемое значение

Указатель на окно фрейма в случае успеха; в противном случае — значение NULL .

Remarks

Функция-член выполняет поиск по родительской цепочке до тех пор, пока CFrameWnd не будет найден объект (или производный класс).

CWnd::GetParentOwner

Вызовите эту функцию-член, чтобы получить указатель на родительское окно или окно-владелец дочернего окна.

CWnd* GetParentOwner() const;

Возвращаемое значение

Указатель на объект CWnd. Если объект CWnd не прикреплен к дескриптору, создается и прикрепляется временный объект CWnd. Указатель может быть временным. Его не требуется сохранять для дальнейшего использования.

Remarks

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

В отличие от этого GetParent функция возвращает указатель на ближайший родительский элемент, будь это дочернее окно. Если у вас есть дочернее окно в дочернем окне GetParent и GetParentOwner возвращены другие результаты.

CWnd::GetProperty

Вызовите эту функцию члена, чтобы получить свойство элемента управления ActiveX, заданное параметром dwDispID .

void GetProperty(
    DISPID dwDispID,
    VARTYPE vtProp,
    void* pvProp)const;

Параметры

dwDispID
Определяет извлекаемое свойство.

vtProp
Указывает тип извлекаемого свойства. Возможные значения см. в разделе "Примечания" для COleDispatchDriver::InvokeHelper .

pvProp
Адрес переменной, которая будет принимать значение свойства. Он должен соответствовать типу, указанному параметром vtProp .

Remarks

GetProperty Возвращает значение с помощью pvProp .

Примечание

Эта функция должна вызываться только для CWnd объекта, представляющего элемент управления ActiveX.

Дополнительные сведения об использовании этой функции – члена с контейнерами элементов управления ActiveX см. в статье контейнеры элементов управления ActiveX: Программирование элементов управления ActiveX в контейнере элементов управления ActiveX.

CWnd::GetRenderTarget

Возвращает целевой объект отрисовки, связанный с данным окном.

CHwndRenderTarget* GetRenderTarget();

Возвращаемое значение

Указатель на целевой объект прорисовки или NULL .

CWnd::GetSafeHwnd

Возвращает значение m_hWnd , или, NULL Если this указатель имеет значение NULL .

HWND GetSafeHwnd() const;

Возвращаемое значение

Возвращает маркер окна. Возвращает NULL , если CWnd не присоединен к окну или используется с NULL CWnd указателем.

Пример

См. пример для CWnd::SubclassWindow .

CWnd::GetSafeOwner

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

static CWnd* GetSafeOwner(
    CWnd* pParent = NULL,
    HWND* pWndTop = NULL);

Параметры

pParent
Указатель на родительское CWnd окно. Может иметь значение NULL.

pWndTop
Указатель на окно, находящегося в данный момент в верхней части. Может иметь значение NULL.

Возвращаемое значение

Указатель на безопасного владельца для данного окна.

Remarks

Владелец безопасности — это первое, не дочернее родительское окно pParent . Если pParent имеет значение NULL , то для поиска владельца используется главное окно потока (получено AfxGetMainWnd с помощью).

Примечание

Сама платформа использует эту функцию для определения правильного окна владельца для диалоговых окон и страниц свойств, в которых не указан владелец.

CWnd::GetScrollBarCtrl

Вызовите эту функцию-член, чтобы получить указатель на указанную родственную полосу прокрутки или окно-разделитель.

virtual CScrollBar* GetScrollBarCtrl(int nBar) const;

Параметры

nBar
Указывает тип полосы прокрутки. Параметр может принимать одно из следующих значений:

  • SB_HORZ Извлекает расположение горизонтальной полосы прокрутки.

  • SB_VERT Получает расположение вертикальной полосы прокрутки.

Возвращаемое значение

Элемент управления "полоса прокрутки" или " NULL нет".

Remarks

Эта функция-член не работает с полосами прокрутки, созданными, когда WS_HSCROLL WS_VSCROLL биты задаются во время создания окна. CWndРеализация этой функции просто возвращает значение NULL . Производные классы, такие как CView , реализуют описанную функциональность.

CWnd::GetScrollBarInfo

Извлекает сведения об указанной полосе прокрутки.

BOOL GetScrollBarInfo(
    LONG idObject,
    PSCROLLBARINFO psbi) const;

Параметры

idObject
Указывает объект меню. Список возможных значений см. в разделе GetScrollBarInfo .

psbi
Указатель на SCROLLBARINFO структуру, которая получает сведения.

Возвращаемое значение

Ненулевое значение, если функция выполнена. в противном случае — 0.

Remarks

Эта функция члена эмулирует функциональность функции GetScrollBarInfo , как описано в Windows SDK.

CWnd::GetScrollInfo

Вызовите эту функцию-член, чтобы получить сведения, которые SCROLLINFO хранятся в структуре, о полосе прокрутки.

BOOL GetScrollInfo(
    int nBar,
    LPSCROLLINFO lpScrollInfo,
    UINT nMask = SIF_ALL);

Параметры

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

  • SB_CTL Получает параметры для элемента управления "полоса прокрутки". m_hWndЭлемент данных должен быть маркером элемента управления "полоса прокрутки".

  • SB_HORZ Получает параметры для стандартной горизонтальной полосы прокрутки окна.

  • SB_VERT Получает параметры для стандартной вертикальной полосы прокрутки окна.

lpScrollInfo
Указатель на SCROLLINFO структуру. Дополнительные сведения об этой структуре см. в Windows SDK.

nMask
Задает параметры полосы прокрутки для извлечения. По умолчанию задано сочетание SIF_PAGE , SIF_POS , SIF_TRACKPOS и SIF_RANGE . SCROLLINFOДополнительные сведения о nMask значениях см. в разделе.

Возвращаемое значение

Если сообщение получает какие-либо значения, возвращается значение TRUE . В противном случае значение равно FALSE.

Remarks

GetScrollInfo позволяет приложениям использовать 32-разрядные позиции прокрутки.

SCROLLINFOСтруктура содержит сведения о полосе прокрутки, включая минимальные и максимальные положения прокрутки, размер страницы и положение ползунка (бегунка). SCROLLINFOДополнительные сведения об изменении структуры по умолчанию см. в разделе "структура" в Windows SDK.

Обработчики сообщений Windows MFC, указывающие расположение полосы прокрутки, CWnd:: онхскролл и CWnd:: онвскролл, предоставляют только 16 бит данных о положении. GetScrollInfo и SetScrollInfo предоставляют 32 бит данных о положении полосы прокрутки. Таким же, приложение может вызвать GetScrollInfo во время обработки либо, CWnd::OnHScroll CWnd::OnVScroll чтобы получить 32-разрядные данные о положении полосы прокрутки.

CWnd::GetScrollLimit

Вызовите эту функцию члена, чтобы получить максимальную точку прокрутки полосы прокрутки.

int GetScrollLimit(int nBar);

Параметры

nBar
Указывает тип полосы прокрутки. Параметр может принимать одно из следующих значений:

  • SB_HORZ Возвращает ограничение прокрутки горизонтальной полосы прокрутки.

  • SB_VERT Возвращает ограничение прокрутки вертикальной полосы прокрутки.

Возвращаемое значение

Задает максимальную точку полосы прокрутки при успешном выполнении; в противном случае — 0.

CWnd::GetScrollPos

Извлекает текущее расположение бегунка полосы прокрутки.

int GetScrollPos(int nBar) const;

Параметры

nBar
Указывает полосу прокрутки для проверки. Параметр может принимать одно из следующих значений:

  • SB_HORZ Извлекает расположение горизонтальной полосы прокрутки.

  • SB_VERT Получает расположение вертикальной полосы прокрутки.

Возвращаемое значение

Задает текущую точку прокрутки на полосе прокрутки в случае успешного выполнения; в противном случае — 0.

Remarks

Текущая величина — это относительное значение, которое зависит от текущего диапазона прокрутки. Например, если диапазон прокрутки находится в диапазоне от 50 до 100, а поле прокрутки находится в середине линейки, текущее расположение равно 75.

CWnd::GetScrollRange

Копирует текущие минимальные и максимальные позиции полосы прокрутки для заданной полосы прокрутки в расположения, заданные lpMinPos и lpMaxPos .

void GetScrollRange(
    int nBar,
    LPINT lpMinPos,
    LPINT lpMaxPos) const;

Параметры

nBar
Указывает полосу прокрутки для проверки. Параметр может принимать одно из следующих значений:

  • SB_HORZ Извлекает расположение горизонтальной полосы прокрутки.

  • SB_VERT Получает расположение вертикальной полосы прокрутки.

lpMinPos
Указывает на целочисленную переменную, которая должна принимать минимальную позиции.

lpMaxPos
Указывает на целочисленную переменную, которая должна принимать максимальную позиции.

Remarks

Если не CWnd имеет полосы прокрутки, функция- GetScrollRange член копирует 0 в lpMinPos и lpMaxPos .

По умолчанию для стандартной полосы прокрутки используется диапазон от 0 до 100. Диапазон по умолчанию для элемента управления "полоса прокрутки" пуст (оба значения равны 0).

CWnd::GetStyle

Возвращает стиль текущего окна.

DWORD GetStyle() const;

Возвращаемое значение

Стиль окна. Дополнительные сведения о стилях окон, используемых в MFC, см. в разделе стили окон.

CWnd::GetSystemMenu

Позволяет приложению получить доступ к оконному меню для копирования и изменения.

CMenu* GetSystemMenu(BOOL bRevert) const;

Параметры

bRevert
Указывает выполняемое действие. Если bRevert имеет значение FALSE , функция GetSystemMenu возвращает маркер копии меню элемента управления, используемой в данный момент. Эта копия изначально идентична меню Control, но может быть изменена. Если bRevert имеет значение TRUE , GetSystemMenu восстанавливает меню управления до состояния по умолчанию. Предыдущее, возможно, измененное меню управления (при наличии) уничтожается. В этом случае возвращаемое значение не определено.

Возвращаемое значение

Определяет копию меню элемента управления, если bRevert имеет значение FALSE . Если bRevert равно TRUE , возвращаемое значение не определено.

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

Remarks

Любое окно, которое не использует GetSystemMenu для создания собственной копии меню элемента управления, получает стандартное меню управления.

Указатель, возвращаемый GetSystemMenu функцией члена, может использоваться с CMenu::AppendMenu CMenu::InsertMenu функциями, или CMenu::ModifyMenu для изменения меню элемента управления.

Меню элемент управления изначально содержит элементы, определенные с помощью различных значений идентификатора SC_CLOSE , таких как, SC_MOVE и SC_SIZE . Элементы в меню управления создают WM_SYSCOMMAND сообщения. Все предопределенные элементы меню элементов управления имеют номера ИДЕНТИФИКАТОРов больше число 0xF000 не. Если приложение добавляет элементы в меню управления, оно должно использовать номера ИДЕНТИФИКАТОРов меньше, чем F000.

Windows может автоматически сделать элементы недоступными в стандартном меню управления. CWnd может выполнять собственный выбор или недоступность, отвечая на WM_INITMENU сообщения, которые отправляются перед отображением меню.

Пример

// The following code fragment is taken from CMyDlg::OnInitDialog
// CMyDlg is derived from CDialog

// Add "About..." menu item to system menu.

// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);

CMenu *pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
   CString strAboutMenu;
   strAboutMenu.LoadString(IDS_ABOUT);
   if (!strAboutMenu.IsEmpty())
   {
      pSysMenu->AppendMenu(MF_SEPARATOR);
      pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
   }
}

// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE);  // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon

CWnd::GetTitleBarInfo

Извлекает сведения об указанной строке заголовка.

BOOL GetTitleBarInfo(PTITLEBARINFO pti) const;

Параметры

pti
Указатель на TITLEBARINFO структуру, которая получает сведения.

Remarks

Эта функция члена эмулирует функциональность функции GetTitleBarInfo , как описано в Windows SDK.

CWnd::GetTopLevelFrame

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

CFrameWnd* GetTopLevelFrame() const;

Возвращаемое значение

Определяет окно фрейма верхнего уровня окна.

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

Remarks

Если не CWnd имеет присоединенного окна или его родителя верхнего уровня не является CFrameWnd производным объектом, эта функция возвращает NULL .

CWnd::GetTopLevelOwner

Вызовите эту функцию-член для получения окна верхнего уровня.

CWnd* GetTopLevelOwner() const;

Возвращаемое значение

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

Remarks

Окно верхнего уровня — это окно, которое является дочерним по отношению к рабочему столу. Если CWnd не имеет присоединенного окна, эта функция возвращает NULL .

CWnd::GetTopLevelParent

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

CWnd* GetTopLevelParent() const;

Возвращаемое значение

Определяет родительское окно верхнего уровня окна.

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

Remarks

GetTopLevelParent параметр похож на GetTopLevelFrame и GetTopLevelOwner , но не учитывает значение, заданное в качестве текущего окна владельца.

CWnd::GetTopWindow

Выполняет поиск дочернего окна верхнего уровня, принадлежащего CWnd .

CWnd* GetTopWindow() const;

Возвращаемое значение

Определяет дочернее окно верхнего уровня в CWnd связанном списке дочерних окон. Если дочерние окна не существуют, значение равно NULL .

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

Remarks

Если не CWnd имеет дочерних элементов, эта функция возвращает NULL .

CWnd::GetUpdateRect

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

BOOL GetUpdateRect(
    LPRECT lpRect,
    BOOL bErase = FALSE);

Параметры

lpRect
Указывает на CRect объект или RECT структуру , которая получает клиентские координаты обновления, охватывающего регион обновления.

Установите этот параметр в значение, NULL чтобы определить, существует ли область обновления в CWnd . Если lpRect имеет значение NULL , GetUpdateRect функция-член возвращает ненулевое значение, если существует регион обновления, и 0, если таковая нет. Это позволяет определить, WM_PAINT привело ли сообщение из недопустимой области. Не присвойте этому параметру значение NULL в Windows версии 3,0 и более ранних.

bErase
Указывает, следует ли стирать фон в области обновления.

Возвращаемое значение

Указывает состояние области обновления. Если область обновления не пуста, значение не равно нулю; в противном случае — 0.

Если lpRect параметр имеет значение NULL , то возвращаемое значение будет ненулевым, если область обновления существует; в противном случае — 0.

Remarks

Если CWnd был создан с использованием CS_OWNDC стиля, а режим сопоставления — нет MM_TEXT , GetUpdateRect функция-член предоставляет прямоугольник в логических координатах. В противном случае GetUpdateRect предоставляет прямоугольник в клиентских координатах. Если регион обновления отсутствует, GetUpdateRect устанавливает прямоугольник как пустой (устанавливает все координаты в 0).

bErase Параметр указывает, GetUpdateRect следует ли удалять фон области обновления. Если bErase параметр имеет значение, TRUE а область обновления не пуста, фон удаляется. Чтобы стереть фон, GetUpdateRect отправляет WM_ERASEBKGND сообщение.

Прямоугольник обновления, полученный BeginPaint функцией-членом, идентичен тому, который извлекается GetUpdateRect функцией-членом.

BeginPaintФункция-член автоматически проверяет область обновления, поэтому любой вызов, GetUpdateRect сделанный сразу после вызова, BeginPaint получает пустую область обновления.

CWnd::GetUpdateRgn

Извлекает регион обновления в регион, определенный параметром pRgn .

int GetUpdateRgn(
    CRgn* pRgn,
    BOOL bErase = FALSE);

Параметры

pRgn
Определяет регион обновления.

bErase
Указывает, будет ли отображаться фон и неклиентские области дочерних окон. Если значение равно FALSE , прорисовка не выполняется.

Возвращаемое значение

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

  • SIMPLEREGION У региона нет перекрывающихся границ.

  • COMPLEXREGION Область содержит перекрывающиеся границы.

  • NULLREGION Регион пуст.

  • ERROR Регион не создан.

Remarks

Координаты этой области задаются относительно левого верхнего угла (клиентские координаты).

BeginPaintФункция-член автоматически проверяет область обновления, поэтому любой вызов, GetUpdateRgn сделанный сразу после вызова, BeginPaint получает пустую область обновления.

CWnd::GetWindow

Возвращает указатель на запрошенное окно или NULL значение None.

CWnd* GetWindow(UINT nCmd) const;

Параметры

*nCmd*
Задает связь между CWnd и возвращаемым окном. Может принимать одно из следующих значений:

  • GW_CHILD Определяет CWnd первое дочернее окно.

  • GW_HWNDFIRST Если CWnd является дочерним окном, возвращает первое родственное окно. В противном случае возвращается первое окно верхнего уровня в списке.

  • GW_HWNDLAST Если CWnd является дочерним окном, возвращает последнее одноуровневый окно. В противном случае возвращается Последнее окно верхнего уровня в списке.

  • GW_HWNDNEXT Возвращает следующее окно в списке диспетчера окон.

  • GW_HWNDPREV Возвращает предыдущее окно в списке диспетчера окон.

  • GW_OWNER Определяет CWnd владельца.

Возвращаемое значение

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

CWnd::GetWindowContextHelpId

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

DWORD GetWindowContextHelpId() const;

Возвращаемое значение

Идентификатор контекста справки. Возвращает 0, если окно отсутствует.

CWnd::GetWindowedChildCount

Вызовите эту функцию члена, чтобы получить количество связанных дочерних окон.

long GetWindowedChildCount();

Возвращаемое значение

Количество дочерних окон, связанных с CWnd объектом.

CWnd::GetWindowDC

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

CDC* GetWindowDC();

Возвращаемое значение

Определяет контекст вывода для данного окна, если функция выполнена успешно; в противном случае — значение NULL .

Возвращаемый указатель может быть временным и не должен храниться для последующего использования. ReleaseDC должен вызываться один раз для каждого успешного вызова GetWindowDC .

Remarks

Контекст отображения окна позволяет рисовать в любом месте CWnd , так как источником контекста является верхний левый угол CWnd вместо клиентской области.

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

GetWindowDC предназначен для использования в CWnd неклиентской области для специальных эффектов рисования. Рисование в неклиентских областях любого окна не рекомендуется.

GetSystemMetricsФункцию Windows можно использовать для получения измерений различных частей неклиентской области, таких как строка заголовка, меню и полосы прокрутки.

После завершения рисования ReleaseDC необходимо вызвать функцию-член, чтобы освободить контекст отображения. Невозможность освободить контекст отображения сильно повлияет на оформление, запрошенное приложениями из-за ограничений на количество контекстов устройств, которые могут быть открыты одновременно.

CWnd::GetWindowInfo

Извлекает сведения о окне.

BOOL GetWindowInfo(PWINDOWINFO pwi) const;

Параметры

pwi
Указатель на WINDOWINFO структуру.

Remarks

Эта функция члена эмулирует функциональность функции GetWindowInfo , как описано в Windows SDK.

CWnd::GetWindowlessChildCount

Возвращает количество связанных безоконных дочерних окон.

long GetWindowlessChildCount();

Возвращаемое значение

Количество безоконных дочерних окон, связанных с CWnd объектом.

CWnd::GetWindowPlacement

Получает состояние отображения, а также обычное (восстановленное), свернутое и развернутое состояния окна.

BOOL GetWindowPlacement(WINDOWPLACEMENT* lpwndpl) const;

Параметры

lpwndpl
Указывает на WINDOWPLACEMENT структуру, которая получает сведения о состоянии и позиции.

Возвращаемое значение

Ненулевое значение, если функция выполнена успешно; в противном случае — 0.

Remarks

flagsЧленом структуры, WINDOWPLACEMENT полученной этой функцией, всегда является 0. Если CWnd развернут, showCmd член WINDOWPLACEMENT имеет значение SW_SHOWMAXIMIZED . Если окно является сведенным, это SW_SHOWMINIMIZED . SW_SHOWNORMALВ противном случае —.

CWnd::GetWindowRect

Копирует размеры ограничивающего прямоугольника CWnd объекта в структуру, на которую указывает lpRect .

void GetWindowRect(LPRECT lpRect) const;

Параметры

lpRect
Указывает на CRect объект или RECT структуру , которая будет принимать экранные координаты верхнего левого и правого нижнего угла.

Remarks

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

CWnd::GetWindowRgn

Вызовите эту функцию-член, чтобы получить область окна.

int GetWindowRgn(HRGN hRgn)const;

Параметры

hRgn
Маркер области окна.

Возвращаемое значение

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

  • NULLREGION Регион пуст.

  • SIMPLEREGION Регион является отдельным прямоугольником.

  • COMPLEXREGION Регион является более чем одним прямоугольником.

  • ERROR Произошла ошибка; область не затрагивается.

Remarks

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

Координаты области окна окна задаются относительно левого верхнего угла окна, а не клиентской области окна.

Чтобы задать область окна окна, вызовите CWnd::SetWindowRgn .

CWnd::GetWindowText

Копирует CWnd заголовок заголовка (если он имеется) в буфер, на который указывает, lpszStringBuf или в строку назначения rString .

int GetWindowText(
    LPTSTR lpszStringBuf,
    int nMaxCount) const;

void GetWindowText(
    CString& rString) const;

Параметры

lpszStringBuf
Указывает на буфер, который получает скопированную строку заголовка окна.

nMaxCount
Указывает максимальное число символов, копируемых в буфер, включая завершающий нуль. Если строка длиннее, чем число символов, указанных в параметре nMaxCount , она усекается.

rString
CStringОбъект, который получает скопированную строку заголовка окна.

Возвращаемое значение

Задает длину копируемой строки в символах, не включая завершающий символ null. Он равен 0, если не CWnd имеет заголовка или если заголовок пуст.

Remarks

Если CWnd объект является элементом управления, то GetWindowText функция-член копирует текст внутри элемента управления вместо копирования заголовка.

Эта функция члена вызывает WM_GETTEXT отправку сообщения CWnd объекту.

Пример

См. пример для CWnd::SetWindowText .

CWnd::GetWindowTextLength

Возвращает длину CWnd заголовка заголовка объекта.

int GetWindowTextLength() const;

Возвращаемое значение

Задает длину текста в символах, не включая завершающий символ null. Если такого текста не существует, значение равно 0.

Remarks

Если CWnd является элементом управления, GetWindowTextLength функция-член возвращает длину текста внутри элемента управления, а не заголовка.

Эта функция члена вызывает WM_GETTEXTLENGTH отправку сообщения CWnd объекту.

Пример

См. пример для CWnd::SetWindowText .

CWnd::HideCaret

Скрывает курсор, удалив его из отображаемой области.

void HideCaret();

Remarks

Хотя курсор больше не отображается, он может быть снова отображен с помощью ShowCaret функции-члена. При скрытии курсора текущая фигура не уничтожается.

Скрытие является накопительным. Если HideCaret в строке вызывалось пять раз, ShowCaret функция-член должна вызываться пять раз, прежде чем будет отображаться курсор.

CWnd::HiliteMenuItem

Выделение или удаление выделения из пункта меню верхнего уровня (панели меню).

BOOL HiliteMenuItem(
    CMenu* pMenu,
    UINT nIDHiliteItem,
    UINT nHilite);

Параметры

pMenu
Определяет меню верхнего уровня, содержащее элемент для выделения.

nIDHiliteItem
Указывает пункт меню, который должен быть выделен в зависимости от значения nHilite параметра.

nHilite
Указывает, выделен ли пункт меню или удаляется выделение. Он может быть сочетанием MF_HILITE или MF_UNHILITE с MF_BYCOMMAND или MF_BYPOSITION . Значения можно комбинировать с помощью побитового OR оператора. Данные величины имеют следующие значения:

  • MF_BYCOMMAND Интерпретируется nIDHiliteItem как идентификатор элемента меню (интерпретация по умолчанию).

  • MF_BYPOSITION Интерпретируется nIDHiliteItem как отсчитываемое от нуля смещение элемента меню.

  • MF_HILITE Выделяет элемент. Если это значение не задано, выделение удаляется из элемента.

  • MF_UNHILITE Удаляет выделение из элемента.

Возвращаемое значение

Указывает, выделен ли пункт меню. Ненулевое значение, если элемент был выделен; в противном случае — 0.

Remarks

MF_HILITE MF_UNHILITE Флаги и можно использовать только с этой функцией члена. они не могут использоваться с CMenu::ModifyMenu функцией члена.

CWnd::HtmlHelp

Вызовите эту функцию члена, чтобы вызвать приложение HTMLHelp.

virtual void HtmlHelp(
    DWORD_PTR dwData,
    UINT nCmd = 0x000F);

Параметры

dwData
Указывает дополнительные данные. Используемое значение зависит от значения nCmd параметра.

nCmd
Задает тип запрошенной справки. Список возможных значений и их влияние на dwData параметр см uCommand . в описании параметра в справочнике по API справки HTML в Windows SDK.

Remarks

Дополнительные сведения см. по ссылке CWinApp::HtmlHelp.

CWnd::InitDynamicLayout

Вызывается платформой для инициализации динамического макета окна.

void InitDynamicLayout();

Remarks

Не вызывайте этот метод напрямую.

CWnd::Invalidate

Делает недействительным всю клиентскую область CWnd .

void Invalidate(BOOL bErase = TRUE);

Параметры

bErase
Указывает, следует ли стирать фон в области обновления.

Remarks

Клиентская область помечается для рисования при WM_PAINT возникновении следующего сообщения. Кроме того, область можно проверить до того, как WM_PAINT сообщение поступает ValidateRect функцией- ValidateRgn членом или.

bErase Параметр указывает, следует ли удалять фон в области обновления при обработке области обновления. Если bErase имеет значение TRUE , фон удаляется при BeginPaint вызове функции-члена; если bErase имеет значение FALSE , фон остается неизменным. Если bErase имеет значение TRUE для любой части области обновления, то фон во всем регионе, а не только в заданной части, удаляется.

Windows отправляет WM_PAINT сообщение CWnd , когда регион обновления не пуст и в очереди приложения для этого окна нет других сообщений.

Пример

См. пример для CWnd::UpdateWindow .

CWnd::InvalidateRect

Делает недействительным клиентскую область в пределах данного прямоугольника, добавляя этот прямоугольник в CWnd область обновления.

void InvalidateRect(
    LPCRECT lpRect,
    BOOL bErase = TRUE);

Параметры

lpRect
Указывает на CRect объект или RECT структуру , содержащую прямоугольник (в клиентских координатах), добавляемый в область обновления. Если lpRect имеет значение NULL , вся клиентская область добавляется в регион.

bErase
Указывает, следует ли стирать фон в области обновления.

Remarks

Недействительный прямоугольник, а также все остальные области в области обновления помечаются для рисования при WM_PAINT отправке следующего сообщения. Недействительные области накапливаются в области обновления до тех пор, пока не будет обработана область при следующем WM_PAINT вызове или пока область не будет проверена ValidateRect ValidateRgn функцией-членом или.

bErase Параметр указывает, следует ли удалять фон в области обновления при обработке области обновления. Если bErase имеет значение TRUE , фон удаляется при BeginPaint вызове функции-члена; если bErase имеет значение FALSE , фон остается неизменным. Если bErase имеет значение TRUE для любой части области обновления, фон во всем регионе удаляется, а не только в данной части.

Windows отправляет WM_PAINT сообщение CWnd , когда регион обновления не пуст и в очереди приложения для этого окна нет других сообщений.

CWnd::InvalidateRgn

Делает недействительным клиентскую область в заданном регионе, добавляя ее в текущую область обновления CWnd .

void InvalidateRgn(
    CRgn* pRgn,
    BOOL bErase = TRUE);

Параметры

pRgn
Указатель на CRgn объект, определяющий область, добавляемую в область обновления. Предполагается, что для региона заданы клиентские координаты. Если этот параметр имеет значение NULL , вся клиентская область добавляется в регион обновления.

bErase
Указывает, следует ли стирать фон в области обновления.

Remarks

Недействительная область, а также все остальные области в области обновления помечаются для рисования при WM_PAINT следующей отправке сообщения. Недействительные области накапливаются в области обновления до тех пор, пока регион не будет обработан при WM_PAINT следующей отправке сообщения или пока область не будет проверена ValidateRect функцией- ValidateRgn членом или.

bErase Параметр указывает, следует ли удалять фон в области обновления при обработке области обновления. Если bErase имеет значение TRUE , фон удаляется при BeginPaint вызове функции-члена; если bErase имеет значение FALSE , фон остается неизменным. Если bErase имеет значение TRUE для любой части области обновления, то фон во всем регионе, а не только в заданной части, удаляется.

Windows отправляет WM_PAINT сообщение CWnd , когда регион обновления не пуст и в очереди приложения для этого окна нет других сообщений.

Заданный регион должен быть ранее создан одной из функций Region.

CWnd::InvokeHelper

Вызовите эту функцию члена, чтобы вызвать метод или свойство элемента управления ActiveX, заданное параметром dwDispID , в контексте, указанном параметром wFlags .

void AFX_CDECL InvokeHelper(
    DISPID dwDispID,
    WORD wFlags,
    VARTYPE vtRet,
    void* pvRet,
    const BYTE* pbParamInfo,
    ... );

Параметры

dwDispID
Задает вызываемый метод или свойство.

wFlags
Флаги, описывающие контекст вызова IDispatch::Invoke .

vtRet
Указывает тип возвращаемого значения. Возможные значения см. в разделе "Примечания" для COleDispatchDriver::InvokeHelper .

pvRet
Адрес переменной, которая будет принимать значение свойства или возвращаемое значение. Он должен соответствовать типу, указанному параметром vtRet .

pbParamInfo
Указатель на строку байтов, заканчивающуюся нулем, указывающую типы параметров ниже pbParamInfo . Возможные значения см. в разделе "Примечания" для COleDispatchDriver::InvokeHelper .

...
Список переменных параметров типов, указанных в pbParamInfo .

Remarks

pbParamInfo Параметр задает типы параметров, передаваемых методу или свойству. Список переменных аргументов представлен ... в объявлении синтаксиса.

Эта функция преобразует параметры в VARIANTARG значения, а затем вызывает IDispatch::Invoke метод для элемента управления ActiveX. Если вызов IDispatch::Invoke завершается сбоем, эта функция создает исключение. Если значение SCODE (код состояния), возвращенное функцией IDispatch::Invoke , имеет значение DISP_E_EXCEPTION , эта функция создает COleException объект, в противном случае вызывает исключение COleDispatchException .

Примечание

Эта функция должна вызываться только для CWnd объекта, представляющего элемент управления ActiveX.

Дополнительные сведения об использовании этой функции – члена с контейнерами элементов управления ActiveX см. в статье контейнеры элементов управления ActiveX: Программирование элементов управления ActiveX в контейнере элементов управления ActiveX.

CWnd::IsChild

Указывает, является ли окно, заданное, pWnd дочерним окном или другим прямым потомком CWnd .

BOOL IsChild(const CWnd* pWnd) const;

Параметры

pWnd
Определяет тестируемое окно.

Возвращаемое значение

Указывает результат функции. Значение равно нулю, если окно, идентифицируемое, pWnd является дочерним окном CWnd ; в противном случае — 0.

Remarks

Дочернее окно является прямым потомком, CWnd Если CWnd объект находится в цепочке родительских окон, ведущих от исходного всплывающего окна к дочернему окну.

CWnd::IsD2DSupportEnabled

Определяет, включена ли поддержка D2D.

BOOL IsD2DSupportEnabled();

Возвращаемое значение

TRUE значение, если функция включена; в противном случае — значение FALSE .

CWnd::IsDialogMessage

Вызовите эту функцию-член, чтобы определить, предназначено ли данное сообщение для немодального диалогового окна. Если это так, эта функция обрабатывает сообщение.

BOOL IsDialogMessage(LPMSG lpMsg);

Параметры

lpMsg
Указывает на MSG структуру, содержащую сообщение для проверки.

Возвращаемое значение

Указывает, обрабатывало ли данное сообщение функция члена. Если сообщение было обработано, оно не равно нулю. в противном случае — 0. Если возвращается значение 0, вызовите CWnd::PreTranslateMessage функцию-член базового класса, чтобы обработать сообщение. В переопределении CWnd::PreTranslateMessage функции члена код выглядит следующим образом:

BOOL CAboutDlg::PreTranslateMessage(MSG *pMsg)
{
   if (IsDialogMessage(pMsg))
      return TRUE;
   else
      return CDialog::PreTranslateMessage(pMsg);
}

Remarks

Когда IsDialogMessage функция обрабатывает сообщение, она проверяет наличие сообщений клавиатуры и преобразует их в команды выбора для соответствующего диалогового окна. Например, клавиша TAB выбирает следующий элемент управления или группу элементов управления, а клавиша со стрелкой вниз выбирает следующий элемент управления в группе.

Не следует передавать сообщение, обрабатываемое IsDialogMessage TranslateMessage DispatchMessage функциями или Windows, так как оно уже обработано.

CWnd::IsDlgButtonChecked

Определяет, установлен ли рядом с элементом управления "Кнопка" галочку.

UINT IsDlgButtonChecked(int nIDButton) const;

Параметры

nIDButton
Задает целочисленный идентификатор элемента управления "Кнопка".

Возвращаемое значение

Ненулевое значение, если данный элемент управления установлен, и 0, если он не установлен. Можно проверять только переключатели и флажки. Для кнопок с тремя состояниями возвращаемое значение может быть равно 2, если кнопка является неопределенной. Эта функция-член возвращает 0 для кнопки.

Remarks

Если кнопка является элементом управления с тремя состояниями, функция-член определяет, является ли она недоступной, установленной или ни одной.

CWnd::IsDynamicLayoutEnabled

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

BOOL IsDynamicLayoutEnabled() const;

Возвращаемое значение

TRUE значение, если включен динамический макет. в противном случае — значение FALSE .

Remarks

CWnd::IsIconic

Указывает CWnd , является ли элемент сведенным (значком).

BOOL IsIconic() const;

Возвращаемое значение

Ненулевое CWnd значение, если является минимальным; в противном случае 0.

Пример

void CAboutDlg::OnPaint()
{
   // This code, normally emitted by the Application Wizard for a dialog-
   // based project for the dialog's WM_PAINT handler, runs only if the
   // window is iconic. The window erases the icon's area, then
   // paints the icon referenced by m_hIcon.
   if (IsIconic())
   {
      CPaintDC dc(this); // device context for painting

      SendMessage(WM_ICONERASEBKGND, (WPARAM)dc.GetSafeHdc(), 0);

      // Center icon in client rectangle
      int cxIcon = GetSystemMetrics(SM_CXICON);
      int cyIcon = GetSystemMetrics(SM_CYICON);
      CRect rect;
      GetClientRect(&rect);
      int x = (rect.Width() - cxIcon + 1) / 2;
      int y = (rect.Height() - cyIcon + 1) / 2;

      // Draw the icon
      dc.DrawIcon(x, y, m_hIcon);
   }
   else
   {
      CDialog::OnPaint();
   }
}

CWnd::IsTouchWindow

Указывает, поддерживает ли объект CWnd сенсорный ввод.

BOOL IsTouchWindow() const;

Возвращаемое значение

TRUE``CWnd, если имеет поддержку сенсорного ввода; в противном случае — FALSE .

Remarks

CWnd::IsWindowEnabled

Указывает CWnd , разрешено ли ввод с клавиатуры и мыши.

BOOL IsWindowEnabled() const;

Возвращаемое значение

Ненулевое CWnd значение, если включено; в противном случае — 0.

Пример

//change the background color of an edit control on the dialog
HBRUSH CMyDlg::OnCtlColor(CDC *pDC, CWnd *pWnd, UINT nCtlColor)
{
   HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

   if (pWnd->GetDlgCtrlID() == IDC_MYEDIT)
   {
      if (pWnd->IsWindowEnabled())
      {
         // Red brush for the background...
         pDC->SetBkColor(RGB(255, 0, 0));
         // m_pRedBrush is the CBrush object initialized with a red brush
         // using CreateSolidBrush
         return (HBRUSH)m_RedBrush.GetSafeHandle();
      }
      else
      {
         // Blue brush for the background...
         pDC->SetBkColor(RGB(0, 0, 255));
         // m_pBlueBrush is the CBrush object initialized with a blue
         // brush using CreateSolidBrush
         return (HBRUSH)m_BlueBrush.GetSafeHandle();
      }
   }

   return hbr;
}

CWnd::IsWindowVisible

Определяет состояние видимости данного окна.

BOOL IsWindowVisible() const;

Возвращаемое значение

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

Remarks

Окно имеет состояние видимости, определяемое WS_VISIBLE битом стиля. Если этот бит стиля задан с помощью вызова ShowWindow функции-члена, окно отображается, а последующее рисование в окне отображается, пока для окна задан бит стиля.

Любой рисунок в окне, имеющий WS_VISIBLE стиль, не будет отображаться, если окно охватывается другими окнами или обрезается родительским окном.

Пример

// This example uses the CWnd::IsWindowVisible() function to
// determine if a dialog box is visible. If it is not, it calls
// CWnd::ShowWindow with the SW_SHOWNORMAL command.
void CMainFrame::DisplayModeless()
{
   if(!m_Modeless.IsWindowVisible())
   {
      m_Modeless.ShowWindow(SW_SHOWNORMAL);
   }
}

// This example uses the CWnd::IsWindowVisible() function to
// determine if a dialog box is visible. If it is, it calls
// CWnd::ShowWindow with the SW_HIDE command.
void CMainFrame::HideModeless()
{
   if(m_Modeless.IsWindowVisible())
   {
      m_Modeless.ShowWindow(SW_HIDE);
   }
}

CWnd::IsZoomed

Определяет CWnd , было ли развернуто.

BOOL IsZoomed() const;

Возвращаемое значение

Ненулевое CWnd значение, если разворачивается; в противном случае — 0.

CWnd::KillTimer

Ликвидирует событие таймера, определенное в nIDEvent результате предыдущего вызова метода SetTimer .

BOOL KillTimer(UINT_PTR nIDEvent);

Параметры

nIDEvent
Значение события таймера, переданного в SetTimer .

Возвращаемое значение

Указывает результат функции. Если событие было уничтожено, значение не равно нулю. Значение 0, если KillTimer функции-члену не удается найти указанное событие таймера.

Remarks

Ожидающие WM_TIMER сообщения, связанные с таймером, не удаляются из очереди сообщений.

Пример

См. пример для CWnd::SetTimer .

CWnd::LoadDynamicLayoutResource

Вызывается платформой для загрузки из файла ресурсов сведений о динамическом макете.

BOOL LoadDynamicLayoutResource(LPCTSTR lpszResourceName);

Параметры

lpszResourceName
Имя ресурса, содержащего необходимые сведения о динамическом макете для этого окна.

Возвращаемое значение

Ненулевое значение, если функция выполнена успешно. В случае ошибки — 0.

Remarks

Не вызывайте этот метод напрямую.

CWnd::LockWindowUpdate

Отключает рисование в данном окне.

BOOL LockWindowUpdate();

Возвращаемое значение

Ненулевое значение, если функция выполнена успешно. Он равен 0, если происходит сбой или если LockWindowUpdate функция использовалась для блокировки другого окна.

Remarks

Невозможно переместить заблокированное окно. Одновременно может быть заблокировано только одно окно. Чтобы разблокировать окно, заблокированное с помощью LockWindowUpdate , вызовите UnlockWindowUpdate .

Если приложение с заблокированным окном (или любыми закрытыми дочерними окнами) вызывает GetDC GetDCEx BeginPaint функцию Windows, или, вызываемая функция возвращает контекст устройства, видимая область которого пуста. Это произойдет до тех пор, пока приложение не разблокирует окно, вызвав UnlockWindowUpdate функцию члена.

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

LockWindowUpdateФункция члена не делает данное окно невидимым и не очищает WS_VISIBLE бит стиля.

CWnd::m_hWnd

Маркер окна Windows, присоединенного к этому объекту CWnd .

HWND m_hWnd;

Remarks

m_hWndЭлемент данных является открытой переменной типа HWND .

CWnd::MapWindowPoints

Преобразует набор точек из координатного пространства объекта CWnd в координатное пространство другого окна.

void MapWindowPoints(
    CWnd* pwndTo,
    LPRECT lpRect) const;

void MapWindowPoints(
    CWnd* pwndTo,
    LPPOINT lpPoint,
    UINT nCount) const;

Параметры

pwndTo
Определяет окно, в котором преобразуются точки. Если этот параметр имеет значение NULL , точки преобразуются в экранные координаты.

lpRect
Задает прямоугольник, точки которого должны быть преобразованы. Первая версия этой функции доступна только для Windows 3,1 и более поздних версий.

lpPoint
Указатель на массив POINT структуры , содержащий набор точек для преобразования.

nCount
Указывает количество POINT структур в массиве, на которое указывает lpPoint .

CWnd::MessageBox

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

int MessageBox(
    LPCTSTR lpszText,
    LPCTSTR lpszCaption = NULL,
    UINT nType = MB_OK);

Параметры

lpszText
Указывает на CString объект или строку, завершающуюся нулем, содержащую сообщение, которое должно быть отображено.

lpszCaption
Указывает на CString объект или строку, завершающуюся нулем, используемую для подписи в окне сообщения. Если lpszCaption имеет значение NULL , то используется заголовок по умолчанию "ошибка".

nType
Задает содержимое и поведение окна сообщения.

Возвращаемое значение

Этот метод использует функцию, MessageBox определенную в Windows SDK. Этот метод возвращает результат вызова этой функции.

Remarks

AfxMessageBoxДля реализации окна сообщения в приложении используйте глобальную функцию вместо этой функции-члена.

Ниже показаны различные системные значки, которые можно использовать в окне сообщения.

Значок Макрос
Значок завершения (x) MB_ICONHAND, MB_ICONSTOP и MB_ICONERROR.
( справки? значок ) MB_ICONQUESTION
Значок важного (!) MB_ICONEXCLAMATION и MB_ICONWARNING
() значок сведений MB_ICONASTERISK и MB_ICONINFORMATION

Пример

void CMainFrame::OnDisplayErrorMessage()
{
   // This displays a message box with the title "Error"
   // and the message "Help, Something went wrong."
   // The error icon is displayed in the message box, along with
   // an OK button.
   MessageBox(_T("Help, Something went wrong."), _T("Error"),
              MB_ICONERROR | MB_OK);
}

CWnd::ModifyStyle

Вызовите эту функцию-член, чтобы изменить стиль окна.

BOOL ModifyStyle(
    DWORD dwRemove,
    DWORD dwAdd,
    UINT nFlags = 0);

Параметры

dwRemove
Задает стили окна, которые будут удалены во время изменения стиля.

dwAdd
Задает стили окна, добавляемые во время изменения стиля.

nFlags
Флаги, которые должны быть переданы SetWindowPos , или нуль, если SetWindowPos не следует вызывать. По умолчанию используется значение ноль. Список предустановленных флагов см. в разделе "Примечания".

Возвращаемое значение

Ненулевое значение, если стиль изменен успешно. в противном случае — значение 0.

Remarks

Добавляемые или удаляемые стили можно объединять с помощью побитового оператора OR (|). Сведения о доступных стилях окна см. в разделе стили окна разделов и CreateWindow в Windows SDK.

Если nFlags значение не равно нулю, ModifyStyle вызывает функцию Windows API SetWindowPos и перерисовывает окно путем объединения nFlags со следующими четырьмя предустановленными флагами:

  • SWP_NOSIZE Оставляет текущий размер.

  • SWP_NOMOVE Оставляет текущую точку.

  • SWP_NOZORDER Оставляет текущий Z порядок.

  • SWP_NOACTIVATE Не активирует окно.

Сведения об изменении расширенных стилей окна см. в разделе ModifyStyleEx .

Примечание

Для некоторых стилей в некоторых элементах управления ( ES_READONLY например, стиль в элементе управления "поле ввода") ModifyStyle может неправильно изменить стиль, так как элементу управления может потребоваться выполнить специальную внутреннюю обработку. В таких случаях будет доступно соответствующее сообщение для изменения стиля ( EM_SETREADONLY в приведенном выше примере).

Пример

// This example adds the WS_CLIPCHILDREN style to the window.
// No Styles are removed from the window.
void CMyView::OnInitialUpdate()
{
   CView::OnInitialUpdate();
   ModifyStyle(0, WS_CLIPCHILDREN);
}

CWnd::ModifyStyleEx

Вызовите эту функцию-член для изменения расширенного стиля окна.

BOOL ModifyStyleEx(
    DWORD dwRemove,
    DWORD dwAdd,
    UINT nFlags = 0);

Параметры

dwRemove
Задает расширенные стили, которые будут удалены во время изменения стиля.

dwAdd
Задает расширенные стили, добавляемые во время изменения стиля.

nFlags
Флаги, которые должны быть переданы SetWindowPos , или нуль, если SetWindowPos не следует вызывать. По умолчанию используется значение ноль. Список предустановленных флагов см. в разделе "Примечания".

Возвращаемое значение

Ненулевое значение, если стиль изменен успешно. в противном случае — значение 0.

Remarks

Добавляемые или удаляемые стили можно объединять с помощью побитового OR оператора (|). Дополнительные сведения о доступных расширенных стилях см. в разделах, посвященных расширенным стилям окон этой книги и CreateWindowEx Windows SDK.

Если nFlags значение не равно нулю, ModifyStyleEx вызывает функцию Windows API SetWindowPos и перерисовывает окно путем объединения nFlags со следующими четырьмя предустановленными флагами:

  • SWP_NOSIZE Оставляет текущий размер.

  • SWP_NOMOVE Оставляет текущую точку.

  • SWP_NOZORDER Оставляет текущий Z порядок.

  • SWP_NOACTIVATE Не активирует окно.

Сведения об изменении окон с помощью обычных стилей окна см. в разделе ModifyStyle .

Пример

// This example would make the dialog box transparent by
// changing the dialog window's extended styles.
int CAboutDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
   if (CDialog::OnCreate(lpCreateStruct) == -1)
      return -1;

   ModifyStyleEx(0, WS_EX_TRANSPARENT);   
   
   return 0;
}

CWnd::MoveWindow

Изменяет расположение и размеры.

void MoveWindow(
    int x,
    int y,
    int nWidth,
    int nHeight,
    BOOL bRepaint = TRUE);

void MoveWindow(
    LPCRECT lpRect,
    BOOL bRepaint = TRUE);

Параметры

x
Задает новое расположение левой стороны CWnd .

y
Задает новое расположение верхнего края CWnd .

nWidth
Задает новую ширину CWnd .

nHeight
Задает новую высоту CWnd .

bRepaint
Указывает, следует ли CWnd перерисовать. Если TRUE CWnd имеет значение, WM_PAINT в обработчике сообщений получается сообщение, OnPaint как обычно. Если этот параметр имеет значение FALSE , перерисовка какого-либо вида не происходит. Это относится к клиентской области, неклиентской области (включая заголовок и полосы прокрутки), а также к любой части родительского окна, обнаруженной в результате CWnd перемещения. Если этот параметр имеет значение FALSE , приложение должно явно сделать недействительным или перерисовывать любые части CWnd и родительское окно, которые необходимо перерисовать.

lpRect
CRectОбъект или RECT Структура , указывающие новый размер и расположение.

Remarks

Для объекта верхнего уровня CWnd x y Параметры и задаются относительно левого верхнего угла экрана. Для дочернего CWnd объекта они задаются относительно левого верхнего угла клиентской области родительского окна.

MoveWindowФункция отправляет WM_GETMINMAXINFO сообщение. Обработка этого сообщения дает CWnd возможность изменить значения по умолчанию для самых крупных и наименьших возможных окон. Если параметры MoveWindow функции члена превышают эти значения, их значения могут быть заменены минимальными или максимальными значениями в WM_GETMINMAXINFO обработчике.

Пример

См. пример для CWnd::ClientToScreen .

CWnd::NotifyWinEvent

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

void NotifyWinEvent(
    DWORD event,
    LONG idObjectType,
    LONG idObject);

Параметры

event
Указывает произошедшее событие. Это значение должно быть одной из констант событий.

idObjectType
Определяет тип объекта, создавшего событие. Это значение представляет собой один из стандартных идентификаторов объекта или значение идентификатора пользовательского объекта.

idObject
Определяет, было ли событие создано объектом или дочерним элементом объекта. Если это значение равно CHILDID_SELF , событие было создано самим объектом. Если нет, это значение является дочерним ИДЕНТИФИКАТОРом элемента, создавшего событие.

Remarks

Эта функция члена эмулирует функциональность функции NotifyWinEvent , как описано в Windows SDK.

CWnd::OnActivate

Платформа вызывает эту функцию-член, когда CWnd объект активируется или деактивируется.

afx_msg void OnActivate(
    UINT nState,
    CWnd* pWndOther,
    BOOL bMinimized);

Параметры

nState
Указывает, CWnd активируется ли или деактивируется. Может иметь одно из следующих значений.

  • WA_INACTIVE Окно деактивируется.

  • WA_ACTIVE Окно активируется с помощью какого-либо метода, отличного от щелчка мышью (например, с помощью интерфейса клавиатуры для выбора окна).

  • WA_CLICKACTIVE Окно активируется щелчком мыши.

pWndOther
Указатель на CWnd активируемый или Деактивируемый. Указатель может быть NULL , и он может быть временным.

bMinimized
Задает минимальное состояние CWnd активируемого или отключенного. Значение указывает, что TRUE окно является сведенным.

Значение TRUE , если CWnd активируется; в противном случае — деактивируется.

Remarks

Если CWnd объект активируется нажатием кнопки мыши, он также получает OnMouseActivate вызов функции-члена.

Примечание

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

CWnd::OnActivateApp

Платформа вызывает эту функцию-член для всех окон верхнего уровня активируемой задачи и для всех окон верхнего уровня, для которых выполняется деактивация задачи.

afx_msg void OnActivateApp(
    BOOL bActive,
    DWORD dwThreadID);

Параметры

bActive
Указывает, CWnd активируется ли или деактивируется. TRUE означает, что CWnd активируется. FALSE означает, что CWnd деактивируется.

dwThreadID
Указывает значение идентификатора потока. Если bActive параметр имеет значение TRUE , dwThreadID идентифицирует поток, которому принадлежит CWnd Деактивируемый объект. Если bActive имеет значение FALSE , dwThreadID идентифицирует поток, которому принадлежит CWnd активируемый объект.

Remarks

Примечание

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

CWnd::OnAmbientProperty

Платформа вызывает эту функцию-член для получения значений свойств окружения из окна, содержащего элементы управления OLE.

virtual BOOL OnAmbientProperty(
    COleControlSite* pSite,
    DISPID dispid,
    VARIANT* pvar);

Параметры

pSite
Указатель на сайт элемента управления, который запросил внешнее свойство.

dispid
Идентификатор диспетчеризации запрошенного внешнего свойства.

pvar
Указатель на структуру, выделенную вызывающим объектом VARIANT , через которую будет возвращено значение свойства окружения.

Возвращаемое значение

TRUE значение, если свойство окружения поддерживается; FALSE Если нет.

Remarks

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

CWnd::OnAppCommand

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

afx_msg void OnAppCommand(
    CWnd* pWnd,
    UINT nCmd,
    UINT nDevice,
    UINT nKey);

Параметры

pWnd
окне Указатель на CWnd объект, представляющий окно, в котором пользователь щелкнул кнопку или нажал на клавишу команды. Это окно может быть дочерним окном окна, получающего сообщение.

nCmd
окне Указывает команду приложения. Список возможных значений см. в разделах команды в cmd разделе lParam параметра WM_APPCOMMAND .

nDevice
окне Устройство ввода, создавшее событие ввода. Список возможных значений см. на устройствах в uDevice разделе lParam параметра WM_APPCOMMAND .

nKey
окне Указывает все виртуальные клавиши, которые не работают, например клавишу CTRL или левую кнопку мыши. Список возможных значений см. в разделе ключи dwKeys раздела lParam параметра WM_APPCOMMAND . Дополнительные сведения см. в подразделе "Параметры сообщения" статьи о вводес помощью мыши.

Remarks

Этот метод получает WM_APPCOMMAND уведомление, которое описано в Windows SDK.

Примечание

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

CWnd::OnAskCbFormatName

Платформа вызывает эту функцию-член, когда буфер обмена содержит маркер данных для CF_OWNERDISPLAY формата (то есть когда владелец буфера обмена будет отображать содержимое буфера обмена).

afx_msg void OnAskCbFormatName(
    UINT nMaxCount,
    LPTSTR lpszString);

Параметры

nMaxCount
Указывает максимальное число копируемых байтов.

lpszString
Указывает на буфер, где будет храниться копия имени формата.

Remarks

Владелец буфера обмена должен предоставить имя для своего формата.

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

Примечание

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

CWnd::OnCancelMode

Платформа вызывает эту функцию члена, чтобы сообщить о CWnd необходимости отмены любого внутреннего режима.

afx_msg void OnCancelMode();

Remarks

Если CWnd объект имеет фокус, его OnCancelMode функция-член вызывается при отображении диалогового окна или поля сообщения. Это дает CWnd возможность отменять такие режимы, как захват мыши.

Реализация по умолчанию отвечает вызовом ReleaseCapture функции Windows. Переопределите эту функцию члена в производном классе для работы с другими режимами.

CWnd::OnCaptureChanged

Платформа вызывает эту функцию-член, чтобы уведомить окно, которое теряет захват мыши.

afx_msg void OnCaptureChanged(CWnd* pWnd);

Параметры

pWnd
Указатель на окно для получения захвата мыши

Remarks

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

Сведения о ReleaseCapture функции Windows см. в Windows SDK.

Примечание

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

CWnd::OnChangeCbChain

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

afx_msg void OnChangeCbChain(
    HWND hWndRemove,
    HWND hWndAfter);

Параметры

hWndRemove
Задает маркер окна, удаляемый из цепочки средства просмотра буфера обмена.

hWndAfter
Задает маркер окна, который следует за окном, удаляемым из цепочки средства просмотра буфера обмена.

Remarks

Каждый CWnd объект, получающий OnChangeCbChain вызов, должен использовать SendMessage функцию Windows для отправки WM_CHANGECBCHAIN сообщения в следующее окно в цепочке окна просмотра буфера обмена (маркер, возвращаемый SetClipboardViewer ). Если hWndRemove является следующим окном в цепочке, окно, указанное, hWndAfter становится следующим окном, и к нему передаются сообщения буфера обмена.

Примечание

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

CWnd::OnChangeUIState

Вызывается, когда необходимо изменить состояние пользовательского интерфейса.

afx_msg void OnChangeUIState(
    UINT nAction,
    UINT nUIElement);

Параметры

nAction
Указывает выполняемое действие. Может иметь одно из следующих значений:

  • UIS_CLEAR Элемент состояния пользовательского интерфейса (заданный параметром nUIElement ) должен быть скрытым.

  • UIS_INITIALIZE Элемент состояния пользовательского интерфейса (заданный параметром nUIElement ) должен быть изменен на основе последнего события ввода. Дополнительные сведения см. в подразделе "Примечания" раздела WM_CHANGEUISTATE .

  • UIS_SET Элемент состояния пользовательского интерфейса (заданный параметром nUIElement ) должен быть видимым.

nUIElement
Указывает, какие элементы состояния пользовательского интерфейса затрагиваются, или стиль элемента управления. Может иметь одно из следующих значений:

  • UISF_HIDEACCEL Сочетания клавиш.

  • UISF_HIDEFOCUS Индикаторы фокуса.

  • UISF_ACTIVE Windows XP: элемент управления должен быть нарисован в стиле, используемом для активных элементов управления.

Remarks

Эта функция члена эмулирует функциональность WM_CHANGEUISTATE сообщения, как описано в Windows SDK.

CWnd::OnChar

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

afx_msg void OnChar(
    UINT nChar,
    UINT nRepCnt,
    UINT nFlags);

Параметры

nChar
Содержит значение кода символа для ключа.

nRepCnt
Содержит число повторов, количество повторов нажатия клавиши, когда пользователь удерживает нажатой клавишу.

nFlags
Содержит код сканирования, код перехода на ключ, предыдущее состояние ключа и код контекста, как показано в следующем списке:

Значение Значение
0—15 Указывает число повторов. Значение — это количество повторений нажатия клавиши в результате нажатия пользователем клавиши.
16—23 Указывает код сканирования. Это значение зависит от изготовителя оборудования (OEM)
24 Указывает, является ли ключ расширенным ключом, таким как правая клавиша ALT и CTRL, отображаемые на расширенной клавиатуре 101 или 102. Значение равно 1, если это расширенный ключ; в противном случае — 0.
25-28 Используется внутри Windows.
29 Указывает код контекста. Значение равно 1, если клавиша ALT удерживается при нажатии клавиши; в противном случае значение равно 0.
30 Указывает предыдущее состояние ключа. Значение равно 1, если ключ не работает до отправки сообщения, или 0, если ключ работает.
31 Задает состояние перехода. Значение равно 1, если ключ освобождается, или 0, если клавиша нажата.

Remarks

Эта функция вызывается перед OnKeyUp функцией-членом и после OnKeyDown вызова функции-члена. OnChar содержит значение нажатой или освобожденной клавиши клавиатуры.

Поскольку между нажатиями и вызовами ключей не обязательно соответствие "один к одному OnChar ", сведения в nFlags обычно не полезны для приложений. Сведения в nFlags применяются только к последнему вызову OnKeyUp функции члена или к OnKeyDown функции члена, предшествующей вызову OnChar .

Для клавиатуры IBM с улучшенными 101-и 102-клавишами расширенными ключами являются правая клавиша ALT и правые клавиши CTRL в основном разделе клавиатуры. клавиши INS, DEL, ДОМАШНяя, КОНЕЧная страница вверх, PAGE DOWN и стрелка в кластерах слева от цифровой клавиатуры; и косая черта (/) и введите клавиши на цифровой клавиатуре. Некоторые другие клавиатуры могут поддерживать бит расширенного ключа в nFlags .

Примечание

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

CWnd::OnCharToItem

Вызывается, когда поле со списком со LBS_WANTKEYBOARDINPUT стилем отправляет владельцу WM_CHARTOITEM сообщение в ответ на WM_CHAR сообщение.

afx_msg int OnCharToItem(
    UINT nChar,
    CListBox* pListBox,
    UINT nIndex);

Параметры

nChar
Задает значение клавиши, нажатой пользователем.

pListBox
Указывает указатель на поле со списком. Это может быть временным.

nIndex
Задает текущую точку курсора.

Возвращаемое значение

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

Remarks

Примечание

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

CWnd::OnChildActivate

Если CWnd объект является дочерним окном многодокументного интерфейса (MDI), OnChildActivate вызывается платформой, когда пользователь щелкает заголовок окна или когда окно активируется, перемещается или изменяется размер.

afx_msg void OnChildActivate();

CWnd::OnChildNotify

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

virtual BOOL OnChildNotify(
    UINT message,
    WPARAM wParam,
    LPARAM lParam,
    LRESULT* pResult);

Параметры

message
Номер сообщения Windows, отправленный в родительское окно.

wParam
Параметр wParam , связанный с сообщением.

lParam
LParam , связанный с сообщением.

pLResult
Указатель на значение, возвращаемое из процедуры родительского окна. NULLЕсли возвращаемое значение не ожидается, этот указатель будет равен.

Возвращаемое значение

Ненулевое значение, если это окно отвечает за обработку сообщения, отправленного его родителю; в противном случае — 0.

Remarks

Никогда не вызывайте эту функцию члена напрямую.

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

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

CWnd::OnClipboardUpdate

Платформа вызывает эту функцию члена, когда содержимое буфера обмена изменилось.

afx_msg void OnClipboardUpdate();

CWnd::OnClose

Платформа вызывает эту функцию-член как сигнал о том, что CWnd приложение или завершает работу.

afx_msg void OnClose();

Remarks

Реализация по умолчанию вызывает DestroyWindow .

CWnd::OnColorizationColorChanged

Платформа вызывает этот элемент при изменении политики отрисовки неклиентской области.

afx_msg void OnColorizationColorChanged(
    DWORD dwColorizationColor,
    BOOL bOpacity);

Параметры

dwColorizationColor
окне Указывает новый цвет раскраски. Цветовой формат представляет собой шестнадцатеричное число в формате 0xAARRGGBB, где каждый из четырех компонентов находится в диапазоне от 0x00 до 0xFF. Компонент AA — это значение альфа, RR — красный цвет, GG — зеленый, а BB — синий.

bOpacity
[входные] TRUE значение, если новый цвет смешивается с непрозрачностью; FALSE если это не так.

Remarks

Этот метод получает WM_DWMNCRENDERINGCHANGED сообщение уведомления, которое описано в Windows SDK.

Примечание

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

CWnd::OnCommand

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

virtual BOOL OnCommand(
    WPARAM wParam,
    LPARAM lParam);

Параметры

wParam
Слово с низким приоритетом wParam определяет идентификатор команды для элемента меню, элемента управления или ускорителя. В высоком порядке слово wParam указывает сообщение уведомления, если оно получено из элемента управления. Если сообщение получено от ускорителя, то его значение в высоком порядке равно 1. Если сообщение находится в меню, то в верхнем порядке слово имеет значение 0.

lParam
Определяет элемент управления, который отправляет сообщение, если сообщение получено из элемента управления. В противном случае lParam — значение 0.

Возвращаемое значение

Приложение возвращает ненулевое значение, если обрабатывает это сообщение; в противном случае — 0.

Remarks

OnCommand обрабатывает схему сообщений для управляющих уведомлений и ON_COMMAND записей и вызывает соответствующую функцию члена.

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

Примечание

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

CWnd::OnCompacting

Платформа вызывает эту функцию-член для всех окон верхнего уровня, когда Windows обнаруживает, что в течение 30 – 60-секундного времени в течение интервала, в течение которого более 12,5 процентов системное время тратится на сжатие памяти.

afx_msg void OnCompacting(UINT nCpuTime);

Параметры

nCpuTime
Указывает отношение времени ЦП, которое в настоящее время потратило памятью сжатия Windows, к времени ЦП, затраченному на выполнение других операций. Например, 8000h представляет 50 процента времени ЦП, затраченного на сжатие памяти.

Remarks

Это означает, что недостаточно памяти системы.

Когда CWnd объект получает этот вызов, он должен освободить максимально возможный объем памяти, принимая во внимание текущий уровень активности приложения и общее число приложений, выполняющихся в Windows. Приложение может вызвать функцию Windows, чтобы определить, сколько приложений выполняется.

Примечание

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

CWnd::OnCompareItem

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

afx_msg int OnCompareItem(
    int nIDCtl,
    LPCOMPAREITEMSTRUCT lpCompareItemStruct);

Параметры

nIDCtl
Идентификатор элемента управления, отправившего WM_COMPAREITEM сообщение.

lpCompareItemStruct
Содержит длинный указатель на COMPAREITEMSTRUCT структуру данных, содержащую идентификаторы и данные, предоставляемые приложением, для двух элементов в поле со списком или в списке.

Возвращаемое значение

Указывает относительное расположение двух элементов. Может принимать любое из следующих значений:

Значение Значение
-1 Элемент 1 сортируется до элемента 2.
0 Элемент 1 и элемент 2 сортируются одинаково.
1 Элемент 1 сортируется после элемента 2.

Remarks

Если поле со списком или список создается со CBS_SORT LBS_SORT стилем или, Windows отправляет сообщение с полем со списком или владельцем, WM_COMPAREITEM когда приложение добавляет новый элемент.

Два элемента в поле со списком или списка изменяются в COMPAREITEMSTRUCT структуре, на которую указывает lpCompareItemStruct . OnCompareItem должен возвращать значение, указывающее, какие элементы должны располагаться перед другим. Как правило, Windows делает этот вызов несколько раз, пока он не определит точную позицию для нового элемента.

Если hwndItem член COMPAREITEMSTRUCT структуры принадлежит к CListBox CComboBox объекту или, то CompareItem вызывается виртуальная функция соответствующего класса. Переопределите CComboBox::CompareItem или CListBox::CompareItem в производном CListBox классе или, CComboBox чтобы выполнить сравнение элементов.

Примечание

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

CWnd::OnCompositionChanged

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

afx_msg void OnCompositionChanged();

Remarks

Этот метод получает WM_DWMCOMPOSITIONCHANGED уведомление, которое описано в Windows SDK.

Примечание

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

CWnd::OnContextMenu

Вызывается структурой, когда пользователь щелкнул правой кнопкой мыши в окне.

afx_msg void OnContextMenu(
    CWnd* pWnd,
    CPoint pos);

Параметры

pWnd
Указатель на окно, в котором пользователь щелкнул мышью. Это может быть дочернее окно окна, получающего сообщение. Дополнительные сведения об обработке этого сообщения см. в разделе "Примечания".

pos
Расположение курсора в экранных координатах во время щелчка мышью.

Remarks

Это сообщение можно обработать, выполнив контекстное меню с помощью TrackPopupMenu .

Если контекстное меню не отображается, это сообщение следует передать в DefWindowProc функцию. Если окно является дочерним, DefWindowProc отправляет сообщение родительскому окну. В противном случае DefWindowProc отображает контекстное меню по умолчанию, если указанное расположение находится в заголовке окна.

CWnd::OnCopyData

Эта функция-член вызывается платформой для копирования данных из одного приложения в другое.

afx_msg BOOL OnCopyData(
    CWnd* pWnd,
    COPYDATASTRUCT* pCopyDataStruct);

Параметры

pWnd
Указатель на CWnd объект, который отправляет данные.

pCopyDataStruct
Указатель на COPYDATASTRUCT структуру, содержащую отправляемые данные.

Возвращаемое значение

Возвращает значение, TRUE Если принимающее приложение успешно принимает данные. В противном случае возвращается FALSE.

Remarks

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

Во время копирования данные не должны изменяться другим потоком отправляющего процесса.

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

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

Примечание

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

CWnd::OnCreate

Платформа вызывает эту функцию члена, когда приложение запрашивает создание окна Windows путем вызова Create CreateEx функции члена или.

afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);

Параметры

lpCreateStruct
Указывает на CREATESTRUCT структуру, содержащую сведения о CWnd создаваемом объекте.

Возвращаемое значение

OnCreate должен возвращать значение 0, чтобы продолжить создание CWnd объекта. Если приложение возвращает значение-1, окно будет уничтожено.

Remarks

CWndОбъект получает этот вызов после создания окна, но до того, как он станет видимым. OnCreate вызывается перед Create CreateEx возвратом функции-члена или.

Переопределите эту функцию-член, чтобы выполнить необходимую инициализацию производного класса.

CREATESTRUCTСтруктура содержит копии параметров, используемых для создания окна.

Примечание

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

CWnd::OnCtlColor

Платформа вызывает эту функцию-член при прорисовке дочернего элемента управления.

afx_msg HBRUSH OnCtlColor(
    CDC* pDC,
    CWnd* pWnd,
    UINT nCtlColor);

Параметры

pDC
Содержит указатель на контекст вывода для дочернего окна. Может быть временным.

pWnd
Содержит указатель на элемент управления, запрашивающий цвет. Может быть временным.

nCtlColor
Содержит одно из следующих значений, определяющее тип элемента управления:

  • CTLCOLOR_BTN Элемент управления Button

  • CTLCOLOR_DLG Диалоговое окно

  • CTLCOLOR_EDIT Изменить элемент управления

  • CTLCOLOR_LISTBOX Элемент управления "список"

  • CTLCOLOR_MSGBOX Окно сообщения

  • CTLCOLOR_SCROLLBAR Элемент управления "полоса прокрутки"

  • CTLCOLOR_STATIC Статический элемент управления

Возвращаемое значение

OnCtlColor должен возвращать дескриптор кисти, которая будет использоваться для рисования фона элемента управления.

Remarks

Большинство элементов управления отправляют это сообщение своим родительским (обычно диалоговому окну) для подготовки к pDC рисованию элемента управления с использованием правильных цветов.

Чтобы изменить цвет текста, вызовите SetTextColor функцию-член с нужными значениями красного, зеленого и синего (RGB).

Чтобы изменить цвет фона однострочного элемента управления "поле ввода", установите маркер кисти в CTLCOLOR_EDIT CTLCOLOR_MSGBOX кодах сообщений и и вызовите CDC::SetBkColor функцию в ответ на CTLCOLOR_EDIT код.

OnCtlColor не будет вызываться для поля со списком раскрывающегося списка, так как раскрывающийся список на самом деле является дочерним элементом поля со списком, а не дочерним элементом окна. Чтобы изменить цвет раскрывающегося списка, создайте CComboBox с переопределением OnCtlColor , которое проверяет CTLCOLOR_LISTBOX в nCtlColor параметре. В этом обработчике SetBkColor для задания цвета фона для текста необходимо использовать функцию члена.

Примечание

Это функция-член вызывается платформой, чтобы разрешить приложению обработать сообщение Windows. Параметры, передаваемые в функцию, отражают параметры, полученные платформой при поступлении сообщения. При вызове реализации базового класса этой функции эта реализация будет использовать параметры, изначально переданные с сообщением, а не параметры, передаваемые в функции. Чтобы добавить следующий метод в класс диалогового окна, используйте панель свойств Visual Studio, чтобы добавить обработчик сообщений для WM_CTLCOLOR . Кроме того, можно вручную добавить ON_WM_CTLCOLOR() запись в схему сообщений.

Пример

// This OnCtlColor handler will change the color of a static control
// with the ID of IDC_MYSTATIC. The code assumes that the CPenWidthsDlg
// class has an initialized and created CBrush member named m_brush.
// The control will be painted with red text and a background
// color of m_brush.
HBRUSH CPenWidthsDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
   // Call the base class implementation first! Otherwise, it may
   // undo what we're trying to accomplish here.
   HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

   // Are we painting the IDC_MYSTATIC control? We can use
   // CWnd::GetDlgCtrlID() to perform the most efficient test.
   if (pWnd->GetDlgCtrlID() == IDC_MYSTATIC)
   {
      // Set the text color to red
      pDC->SetTextColor(RGB(255, 0, 0));

      // Set the background mode for text to transparent 
      // so background will show thru.
      pDC->SetBkMode(TRANSPARENT);

      // Return handle to our CBrush object
      hbr = m_brush;
   }

   return hbr;
}

CWnd::OnDeadChar

Платформа вызывает эту функцию члена при OnKeyUp вызове функции члена и OnKeyDown функций члена.

afx_msg void OnDeadChar(
    UINT nChar,
    UINT nRepCnt,
    UINT nFlags);

Параметры

nChar
Задает значение символа неработающего ключа.

nRepCnt
Указывает число повторов.

nFlags
Указывает код сканирования, код перехода на ключ, предыдущее состояние ключа и код контекста, как показано в следующем списке:

Значение Описание
0-7 Код сканирования (значение, зависящее от изготовителя оборудования). Младший байт для слова высокого порядка.
8 Расширенный ключ, например ключ функции или клавиша на цифровой клавиатуре (1, если это расширенный ключ; в противном случае 0).
9-10 Не используется.
11-12 Используется внутри Windows.
13 Контекстный код (1, если клавиша ALT удерживается при нажатии клавиши; в противном случае — 0).
14 Предыдущее состояние ключа (1, если ключ не работает до вызова, 0, если ключ работает).
15 Состояние перехода (1, если ключ освобождается, 0 при нажатии клавиши).

Remarks

Эта функция-член может использоваться для указания значения символа неработающего ключа. Мертвый ключ — это ключ, такой как умляут (двойная точка), который объединяется с другими символами для формирования составного символа. Например, символ умляут-O состоит из неработающего ключа, умляут и ключа O.

Приложение обычно использует OnDeadChar , чтобы дать пользователю отзыв о каждом нажатии клавиши. Например, приложение может отображать диакритические знаки в текущей позиции символа без перемещения курсора.

Так как между нажатиями и вызовами ключей не обязательно соответствие "один к одному OnDeadChar ", информация в nFlags обычно не полезна для приложений. Сведения в nFlags применяются только к последнему вызову OnKeyUp функции члена или к OnKeyDown функции члена, предшествующей OnDeadChar вызову.

Для клавиатуры IBM с улучшенными 101-и 102-клавишами расширенными ключами являются правая клавиша ALT и правые клавиши CTRL в основном разделе клавиатуры. клавиши INS, DEL, ДОМАШНяя, КОНЕЧная страница вверх, PAGE DOWN и стрелка в кластерах слева от цифровой клавиатуры; и косая черта (/) и введите клавиши на цифровой клавиатуре. Некоторые другие клавиатуры могут поддерживать бит расширенного ключа в nFlags .

Примечание

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

CWnd::OnDeleteItem

Платформа вызывает эту функцию-член для информирования владельца списка или поля со списком, рисуемого владельцем, о том, что список или поле со списком уничтожаются, или что элементы были удалены с помощью CComboBox::DeleteString , CListBox::DeleteString , CComboBox::ResetContent или CListBox::ResetContent .

afx_msg void OnDeleteItem(
    int nIDCtl,
    LPDELETEITEMSTRUCT lpDeleteItemStruct);

Параметры

nIDCtl
Идентификатор элемента управления, отправившего WM_DELETEITEM сообщение.

lpDeleteItemStruct
Задает длинный указатель на DELETEITEMSTRUCT структуру данных, содержащую сведения об удаленном элементе списка.

Remarks

Если hwndItem элемент DELETEITEMSTRUCT структуры принадлежит полю со списком или списку, то DeleteItem вызывается виртуальная функция соответствующего класса. Переопределите DeleteItem функцию-член соответствующего класса элемента управления, чтобы удалить данные, относящиеся к элементу.

Примечание

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

CWnd::OnDestroy

Платформа вызывает эту функцию-член для информирования CWnd объекта о том, что он уничтожается.

afx_msg void OnDestroy();

Remarks

OnDestroy вызывается после CWnd удаления объекта с экрана.

OnDestroy вызывается первым для CWnd уничтожения, а затем для дочерних окон CWnd при их уничтожении. Можно предположить, что во время выполнения все еще существуют все дочерние окна OnDestroy .

Если CWnd удаляемый объект является частью цепочки просмотра буфера обмена (задается вызовом SetClipboardViewer функции-члена), компонент CWnd должен удалить саму себя из цепочки просмотра буфера обмена, вызвав ChangeClipboardChain функцию-член перед возвратом из OnDestroy функции.

CWnd::OnDestroyClipboard

Платформа вызывает эту функцию-член для владельца буфера обмена, когда буфер обмена очищается с помощью вызова EmptyClipboard функции Windows.

afx_msg void OnDestroyClipboard();

CWnd::OnDeviceChange

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

afx_msg BOOL OnDeviceChange(
    UINT nEventType,
    DWORD_PTR dwData);

Параметры

nEventType
Тип события. Описание доступных значений см. в разделе "Примечания".

dwData
Адрес структуры, содержащей данные, относящиеся к конкретному событию. Его значение зависит от заданного события.

Remarks

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

Если операционная система принудительно удаляет устройство, это может привести к невозможности отправки DBT_DEVICEQUERYREMOVE сообщения.

nEvent Параметр может принимать одно из следующих значений:

  • DBT_DEVICEARRIVAL Устройство было вставлено и теперь доступно.

  • DBT_DEVICEQUERYREMOVE Запрошено разрешение на удаление устройства. Любое приложение может отклонить этот запрос и отменить удаление.

  • DBT_DEVICEQUERYREMOVEFAILED Запрос на удаление устройства отменен.

  • DBT_DEVICEREMOVEPENDING Устройство будет удалено. Нельзя запретить.

  • DBT_DEVICEREMOVECOMPLETE Устройство удалено.

  • DBT_DEVICETYPESPECIFIC Событие для конкретного устройства.

  • DBT_CONFIGCHANGED Текущая конфигурация изменена.

  • DBT_DEVNODES_CHANGED Узел устройства изменился.

Примечание

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

CWnd::OnDevModeChange

Платформа вызывает эту функцию-член для всех объектов верхнего уровня CWnd , когда пользователь изменяет параметры режима устройства.

afx_msg void OnDevModeChange(LPTSTR lpDeviceName);

Параметры

lpDeviceName
Указывает имя устройства, указанное в файле инициализации Windows, WIN.INI .

Remarks

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

Эта функция не вызывается, когда пользователь изменяет принтер по умолчанию из панели управления. В этом случае OnWinIniChange вызывается функция.

Примечание

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

CWnd::OnDrawClipboard

Платформа вызывает эту функцию-член для каждого окна в цепочке окна просмотра буфера обмена при изменении содержимого буфера обмена.

afx_msg void OnDrawClipboard();

Remarks

Только приложения, Объединенные в цепочку просмотра буфера обмена путем вызова SetClipboardViewer функции-члена, должны отвечать на этот вызов.

Каждое окно, получающее OnDrawClipboard вызов, должно вызывать SendMessage функцию Windows для передачи WM_DRAWCLIPBOARD сообщения в следующее окно в цепочке окна просмотра буфера обмена. Маркер следующего окна возвращается SetClipboardViewer функцией-членом. он может быть изменен в ответ на OnChangeCbChain вызов функции-члена.

CWnd::OnDrawIconicThumbnailOrLivePreview

Вызывается платформой, когда необходимо отобразить растровое изображение на эскизе вкладки Windows 7 или клиенте для быстрого просмотра приложения.

virtual void OnDrawIconicThumbnailOrLivePreview(
    CDC& dc,
    CRect rect,
    CSize szRequiredThumbnailSize,
    BOOL bIsThumbnail,
    BOOL& bAlphaChannelSet);

Параметры

dc
Указывает контекст устройства.

rect
Задает ограничивающий прямоугольник области для отображения.

szRequiredThumbnailSize
Задает размер целевого эскиза. Следует игнорировать, если bIsThumbnail имеет значение FALSE .

bIsThumbnail
Указывает, вызывается ли этот метод для значка эскиза или динамической предварительной версии (считывание).

bAlphaChannelSet
заполняет Задайте значение, TRUE Если ваша реализация инициализирует альфа-канал точечного рисунка, выбранного в dc .

Remarks

Переопределите этот метод в производном классе и нарисуйте в указанном контексте устройства для настройки эскиза и просмотра. Если bThumbnail имеет значение TRUE , то szRequiredThumbnailSize можно пропустить. В этом случае следует иметь в виду, что рисуется полный точечный рисунок (то есть битовая карта, охватывающая всю клиентскую область). Контекст устройства ( dc ) поставляется с выбранным битовым рисунком 32 битов. Реализация по умолчанию отправляет WM_PRINT в это окно PRF_CLIENT PRF_CHILDREN PRF_NONCLIENT Флаги, и.

CWnd::OnDrawItem

Платформа вызывает эту функцию-член для владельца элемента управления "кнопка-прорисовка", элемента управления "поле со списком", элемента управления "список" или меню при изменении визуального аспекта элемента управления или меню.

afx_msg void OnDrawItem(
    int nIDCtl,
    LPDRAWITEMSTRUCT lpDrawItemStruct);

Параметры

nIDCtl
Содержит идентификатор элемента управления, отправившего WM_DRAWITEM сообщение. Если меню отправило сообщение, nIDCtl содержит значение 0.

lpDrawItemStruct
Задает длинный указатель на DRAWITEMSTRUCT структуру данных, содержащую сведения о рисуемом элементе, и требуемый тип рисования.

Remarks

itemActionЭлемент DRAWITEMSTRUCT структуры определяет операцию рисования, которую необходимо выполнить. Данные в этом элементе позволяют владельцу элемента определить, какое действие по отрисовке требуется.

Перед возвратом из обработки этого сообщения приложение должно обеспечить восстановление контекста устройства, определенного hDC членом структуры, в DRAWITEMSTRUCT состояние по умолчанию.

Если hwndItem элемент принадлежит к CButton объекту,, CMenu CListBox или CComboBox , то DrawItem вызывается виртуальная функция соответствующего класса. Переопределите DrawItem функцию члена соответствующего класса элемента управления для рисования элемента.

Примечание

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

CWnd::OnDropFiles

Платформа вызывает эту функцию-член, когда пользователь отпускает левую кнопку мыши над окном, которое зарегистрировалось как получатель удаленных файлов.

afx_msg void OnDropFiles(HDROP hDropInfo);

Параметры

hDropInfo
Указатель на внутреннюю структуру данных, описывающую удаленные файлы. Этот маркер используется DragFinish DragQueryFile функциями, и DragQueryPoint Windows для получения сведений об удаленных файлах.

Remarks

Как правило, производный класс предназначен для поддержки удаленных файлов, и он регистрируется во время создания окна.

Примечание

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

CWnd::OnEnable

Платформа вызывает эту функцию члена, когда приложение изменяет включенное состояние CWnd объекта.

afx_msg void OnEnable(BOOL bEnable);

Параметры

bEnable
Указывает, CWnd был ли объект включен или отключен. Этот параметр имеет значение, TRUE Если CWnd включен. это значение, FALSE Если элемент был CWnd отключен.

Remarks

OnEnable вызывается перед EnableWindow возвратом функции-члена, но после изменения состояния окна ( WS_DISABLED бит стиля).

Примечание

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

CWnd::OnEndSession

Платформа вызывает эту функцию-член после того, как CWnd объект вернул ненулевое значение из OnQueryEndSession вызова функции-члена.

afx_msg void OnEndSession(BOOL bEnding);

Параметры

bEnding
Указывает, завершается ли сеанс. TRUEЕсли сеанс завершается, в противном случае — значение FALSE .

Remarks

Вызов информирует объект о том, что OnEndSession CWnd сеанс фактически завершается.

Если bEnding имеет значение TRUE , Windows может завершиться в любое время после того, как все приложения возвращали этот вызов. Следовательно, приложение должно выполнять все задачи, необходимые для завершения в OnEndSession .

DestroyWindowПри завершении сеанса вызов функции-члена или PostQuitMessage функции Windows не требуется.

Примечание

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

CWnd::OnEnterIdle

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

afx_msg void OnEnterIdle(
    UINT nWhy,
    CWnd* pWho);

Параметры

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

  • MSGF_DIALOGBOX Система бездействует, так как отображается диалоговое окно.

  • MSGF_MENU Система бездействует, поскольку отображается меню.

pWho
Задает указатель на диалоговое окно (если nWhy имеет значение MSGF_DIALOGBOX ) или окно, содержащее отображаемое меню (если nWhy имеет значение MSGF_MENU ). Этот указатель может быть временным и не должен храниться для последующего использования.

Remarks

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

Примечание

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

CWnd::OnEnterMenuLoop

Платформа вызывает эту функцию-член, когда был введен модальный цикл меню.

afx_msg void OnEnterMenuLoop(BOOL bIsTrackPopupMenu);

Параметры

bIsTrackPopupMenu
Указывает, является ли используемое меню всплывающим меню. Имеет ненулевое значение, если функция выполнена успешно; в противном случае — 0.

Remarks

Примечание

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

CWnd::OnEnterSizeMove

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

afx_msg void OnEnterSizeMove();

Remarks

Этот метод получает WM_ENTERSIZEMOVE уведомление, которое описано в Windows SDK.

Окно перемещается в модальный цикл перемещения или изменения размера, когда пользователь щелкает заголовок окна или границу изменения размера, или когда окно передает WM_SYSCOMMAND сообщение в функцию, CWnd::DefWindowProc а параметр wParam этого сообщения указывает SC_MOVE или SC_SIZE .

Примечание

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

CWnd::OnEraseBkgnd

Платформа вызывает эту функцию-член, если CWnd для фона объекта требуется стирание (например, при изменении размера).

afx_msg BOOL OnEraseBkgnd(CDC* pDC);

Параметры

pDC
Указывает объект контекста устройства.

Возвращаемое значение

Ненулевое значение, если удаляет фон. в противном случае — 0.

Remarks

Он вызывается для подготовки недействительного региона для рисования.

Реализация по умолчанию удаляет фон с помощью кисти фона класса окна, заданной hbrBackground элементом структуры класса Window.

Если hbrBackground член имеет значение NULL , переопределенная версия OnEraseBkgnd должна стереть цвет фона. Ваша версия должна также согласовать происхождение предполагаемой кисти с CWnd координатами, сначала вызвав UnrealizeObject кисть, а затем выбрав кисть.

Переопределенный объект OnEraseBkgnd должен возвращать ненулевое значение в ответ на WM_ERASEBKGND обработку сообщения и удаление фона; это означает, что дальнейшая очистка не требуется. Если он возвращает 0, окно остается помеченным, как требуется стереть. (Как правило, это означает, что fErase элемент PAINTSTRUCT структуры будет иметь значение TRUE .)

Windows предполагает, что фон вычисляется с использованием MM_TEXT режима сопоставления. Если контекст устройства использует любой другой режим сопоставления, то область стирания может не находиться в видимой части клиентской области.

Примечание

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

CWnd::OnExitMenuLoop

Платформа вызывает эту функцию-член при завершении модального цикла меню.

afx_msg void OnExitMenuLoop(BOOL bIsTrackPopupMenu);

Параметры

bIsTrackPopupMenu
Указывает, является ли используемое меню всплывающим меню. Имеет ненулевое значение, если функция выполнена успешно; в противном случае — 0.

Remarks

Примечание

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

CWnd::OnExitSizeMove

Платформа вызывает эту функцию-член один раз после того, как затронутое окно выходит из модального цикла перемещения или изменения размера.

afx_msg void OnExitSizeMove();

Remarks

Этот метод получает WM_EXITSIZEMOVE уведомление, которое описано в Windows SDK.

Окно перемещается в модальный цикл перемещения или изменения размера, когда пользователь щелкает заголовок окна или границу изменения размера, или когда окно передает WM_SYSCOMMAND сообщение в функцию, CWnd::DefWindowProc а параметр этого wParam сообщения указывает SC_MOVE или SC_SIZE .

Примечание

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

CWnd::OnFontChange

Все окна верхнего уровня в системе получают OnFontChange вызов от платформы после того, как приложение изменяет пул ресурсов шрифтов.

afx_msg void OnFontChange();

Remarks

Приложение, которое добавляет или удаляет шрифты из системы (например, с помощью AddFontResource RemoveFontResource функции Windows или), должно отправить WM_FONTCHANGE сообщение всем окнам верхнего уровня.

Чтобы отправить это сообщение, используйте SendMessage функцию Windows с hWnd параметром, имеющим значение HWND_BROADCAST .

CWnd::OnGetDlgCode

Вызывается, чтобы элемент управления мог самостоятельно обрабатывать нажатия на клавиши со стрелками и клавишу TAB.

afx_msg UINT OnGetDlgCode();

Возвращаемое значение

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

  • DLGC_BUTTON Кнопка (универсальная).

  • DLGC_DEFPUSHBUTTON Кнопка по умолчанию.

  • DLGC_HASSETSEL``EM_SETSELсообщения.

  • DLGC_UNDEFPUSHBUTTON Обработка кнопок по умолчанию отсутствует. (Приложение может использовать этот флаг с, DLGC_BUTTON чтобы указать, что он обрабатывает входные данные кнопки, но использует систему для обработки кнопок по умолчанию.)

  • DLGC_RADIOBUTTON Переключатель.

  • DLGC_STATIC Статический элемент управления.

  • DLGC_WANTALLKEYS Все входные данные с клавиатуры.

  • DLGC_WANTARROWS Клавиши со стрелками.

  • DLGC_WANTCHARS``WM_CHARсообщения.

  • DLGC_WANTMESSAGE Все входные данные с клавиатуры. Приложение передает это сообщение элементу управления.

  • DLGC_WANTTAB Клавиша TAB.

Remarks

Как правило, Windows обрабатывает все вводные клавиши со стрелками и клавишей TAB для CWnd элемента управления. При переопределении OnGetDlgCode CWnd элемент управления может выбрать конкретный тип входных данных для обработки самого себя.

Функции по умолчанию OnGetDlgCode для стандартных классов элементов управления возвращают код, соответствующий каждому классу.

CWnd::OnGetMinMaxInfo

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

afx_msg void OnGetMinMaxInfo(MINMAXINFO* lpMMI);

Параметры

lpMMI
Указывает на MINMAXINFO структуру, содержащую сведения о максимальном размере окна и его положении, минимальном и максимальном размере отслеживания. Дополнительные сведения об этой структуре см. в разделе MINMAXINFO структура.

Remarks

Развернутый размер — это размер окна, когда его границы полностью расширены. Максимальный размер для отслеживания окна — наибольший размер окна, который можно достигнуть с помощью границ для изменения размера окна. Минимальный размер для отслеживания окна — это наименьший размер окна, который можно достигнуть с помощью границ для изменения размера окна.

Windows заполняет массив точек, указывая значения по умолчанию для различных позиций и измерений. Приложение может изменить эти значения в OnGetMinMaxInfo .

Примечание

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

CWnd::OnHelp

Обрабатывает справку F1 в приложении (с использованием текущего контекста).

afx_msg void OnHelp();

Remarks

Дополнительные сведения см. по ссылке CWinApp::OnHelp.

CWnd::OnHelpFinder

Обрабатывает ID_HELP_FINDER команды и ID_DEFAULT_HELP .

afx_msg void OnHelpFinder();

Remarks

Дополнительные сведения см. по ссылке CWinApp::OnHelpFinder.

CWnd::OnHelpIndex

Обрабатывает ID_HELP_INDEX команду и предоставляет раздел справки по умолчанию.

afx_msg void OnHelpIndex();

Remarks

Дополнительные сведения см. по ссылке CWinApp::OnHelpIndex.

CWnd::OnHelpInfo

Вызывается платформой, когда пользователь нажимает клавишу F1.

afx_msg BOOL OnHelpInfo(HELPINFO* lpHelpInfo);

Параметры

lpHelpInfo
Указатель на HELPINFO структуру, содержащую сведения о пункте меню, элементе управления, диалоговом окне или окне, для которого запрашивается справка.

Возвращаемое значение

Возвращает TRUE , если окно имеет фокус клавиатуры или если меню активно в пределах окна. Если ни одно окно не имеет фокуса клавиатуры, возвращает FALSE .

Remarks

Если меню активно при нажатии клавиши F1, WM_HELP отправляется в окно, связанное с меню; в противном случае WM_HELP отправляется в окно, имеющее фокус клавиатуры. Если ни одно окно не имеет фокуса клавиатуры, WM_HELP отправляется в текущее активное окно.

CWnd::OnHelpUsing

Обрабатывает команду ID_HELP_USING.

afx_msg void OnHelpUsing();

Remarks

Дополнительные сведения см. по ссылке CWinApp::OnHelpUsing.

CWnd::OnHotKey

Платформа вызывает эту функцию-член, когда пользователь нажимает на уровне системы сочетание клавиш.

afx_msg void OnHotKey(
    UINT nHotKeyId,
    UINT nKey1,
    UINT nKey2);

Параметры

nHotKeyId
окне Идентификатор для сочетания клавиш, создавшего сообщение. Если сообщение было создано системой с помощью сочетания клавиш, этот параметр будет иметь одно из следующих значений:

  • IDHOT_SNAPDESKTOP -Была нажата клавиша "привязать" к рабочему столу.
  • IDHOT_SNAPWINDOW -Была нажата клавиша "окно привязки".

nKey1
окне Побитовое сочетание (или) флагов, указывающих клавиши, которые были нажаты в сочетании с ключом, заданным nKey2 параметром. Допустимые значения:

  • MOD_ALT — Клавиша ALT была удержана.
  • MOD_CONTROL — Клавиша CTRL была удержана.
  • MOD_SHIFT — Клавиша SHIFT была удержана.
  • MOD_WIN — Ключ WINDOWS был удержан. Эти ключи помечены эмблемой Microsoft Windows.

nKey2
окне Код виртуального ключа для сочетания клавиш.

Remarks

Этот метод получает WM_HOTKEY уведомление, которое описано в Windows SDK. Это сообщение помещается в верхней части очереди сообщений, связанной с потоком, который зарегистрировал горячую клавишу. Используйте RegisterHotKey функцию для регистрации сочетания клавиш для всей системы.

Примечание

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

CWnd::OnHScroll

Платформа вызывает эту функцию-член, когда пользователь щелкает горизонтальную полосу прокрутки окна.

afx_msg void OnHScroll(
    UINT nSBCode,
    UINT nPos,
    CScrollBar* pScrollBar);

Параметры

nSBCode
Указывает код полосы прокрутки, который указывает на запрос прокрутки пользователя. Возможные значения этого параметра:

  • SB_LEFT Прокрутить до левого края.

  • SB_ENDSCROLL Завершить прокрутку.

  • SB_LINELEFT Прокрутка влево.

  • SB_LINERIGHT Прокрутка вправо.

  • SB_PAGELEFT Прокрутить на одну страницу влево.

  • SB_PAGERIGHT Прокрутка на одну страницу вправо.

  • SB_RIGHT Прокрутить до правого края.

  • SB_THUMBPOSITION Прокрутить к абсолютному положению. Текущая позицией задается nPos параметром.

  • SB_THUMBTRACK Перетащите ползунок полосы прокрутки в указанную точку. Текущая позицией задается nPos параметром.

nPos
Задает точку прокрутки, если код полосы прокрутки имеет значение SB_THUMBPOSITION или SB_THUMBTRACK ; в противном случае не используется. В зависимости от начального диапазона прокрутки nPos может быть отрицательным и при необходимости приводить к типу int .

pScrollBar
Если сообщение с прокруткой поступило из элемента управления полосы прокрутки, содержит указатель на элемент управления. Если пользователь щелкнул полосу прокрутки окна, этот параметр имеет значение NULL . Указатель может быть временным. Его не требуется сохранять для дальнейшего использования.

Remarks

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

Если приложение прокручивает содержимое, управляемое полосой прокрутки, оно должно также сбрасывать точку прокрутки с помощью SetScrollPos функции – члена.

Примечание

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

Пример

void CMdiView::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar *pScrollBar)
{
   // Get the minimum and maximum scroll-bar positions.
   int minpos;
   int maxpos;
   GetScrollRange(SB_HORZ, &minpos, &maxpos);
   maxpos = GetScrollLimit(SB_HORZ);

   // Get the current position of scroll box.
   int curpos = GetScrollPos(SB_HORZ);

   // Determine the new position of scroll box.
   switch (nSBCode)
   {
   case SB_LEFT: // Scroll to far left.
      curpos = minpos;
      break;

   case SB_RIGHT: // Scroll to far right.
      curpos = maxpos;
      break;

   case SB_ENDSCROLL: // End scroll.
      break;

   case SB_LINELEFT: // Scroll left.
      if (curpos > minpos)
         curpos--;
      break;

   case SB_LINERIGHT: // Scroll right.
      if (curpos < maxpos)
         curpos++;
      break;

   case SB_PAGELEFT: // Scroll one page left.
   {
      // Get the page size.
      SCROLLINFO info;
      GetScrollInfo(SB_HORZ, &info, SIF_ALL);

      if (curpos > minpos)
         curpos = max(minpos, curpos - (int)info.nPage);
   }
   break;

   case SB_PAGERIGHT: // Scroll one page right.
   {
      // Get the page size.
      SCROLLINFO info;
      GetScrollInfo(SB_HORZ, &info, SIF_ALL);

      if (curpos < maxpos)
         curpos = min(maxpos, curpos + (int)info.nPage);
   }
   break;

   case SB_THUMBPOSITION: // Scroll to absolute position. nPos is the position
      curpos = nPos;      // of the scroll box at the end of the drag operation.
      break;

   case SB_THUMBTRACK: // Drag scroll box to specified position. nPos is the
      curpos = nPos;   // position that the scroll box has been dragged to.
      break;
   }

   // Set the new position of the thumb (scroll box).
   SetScrollPos(SB_HORZ, curpos);

   CView::OnHScroll(nSBCode, nPos, pScrollBar);
}

CWnd::OnHScrollClipboard

OnHScrollClipboardФункция-член владельца буфера обмена вызывается средством просмотра буфера обмена, если данные в буфере обмена имеют CF_OWNERDISPLAY Формат, и в горизонтальной полосе прокрутки средства просмотра буфера присутствует событие.

afx_msg void OnHScrollClipboard(
    CWnd* pClipAppWnd,
    UINT nSBCode,
    UINT nPos);

Параметры

pClipAppWnd
Указывает указатель на окно средства просмотра буфера обмена. Указатель может быть временным. Его не требуется сохранять для дальнейшего использования.

nSBCode
Задает один из следующих кодов полос прокрутки в слове низкого порядка:

  • SB_BOTTOM Прокрутите вниз вправо.

  • SB_ENDSCROLL Завершить прокрутку.

  • SB_LINEDOWN Прокрутить на одну строку вниз.

  • SB_LINEUP Прокрутить на одну строку вверх.

  • SB_PAGEDOWN Прокрутить на одну страницу вниз.

  • SB_PAGEUP Прокрутка на одну страницу вверх.

  • SB_THUMBPOSITION Прокрутите до абсолютной позицией. Текущая заданная позицией предоставляется в nPos .

  • SB_TOP Прокрутить к верхнему левому краю.

nPos
Содержит расположение бокса прокрутки, если код полосы прокрутки имеет значение SB_THUMBPOSITION ; в противном случае не используется.

Remarks

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

Примечание

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

CWnd::OnIconEraseBkgnd

Платформа вызывает эту функцию-член для сворачивания (значка) объекта, CWnd когда фон значка необходимо заполнить перед рисованием значка.

afx_msg void OnIconEraseBkgnd(CDC* pDC);

Параметры

pDC
Указывает объект контекста устройства для значка. Может быть временным и не должен храниться для последующего использования.

Remarks

CWnd Получает этот вызов, только если значок класса определен для реализации окна по умолчанию; в противном случае OnEraseBkgnd вызывается.

DefWindowProcФункция – член заполняет фон значка фоновой кистью родительского окна.

Примечание

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

CWnd::OnInitMenu

Платформа вызывает эту функцию-член, когда меню собирается стать активным.

afx_msg void OnInitMenu(CMenu* pMenu);

Параметры

pMenu
Указывает меню для инициализации. Может быть временным и не должен храниться для последующего использования.

Remarks

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

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

Примечание

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

CWnd::OnInitMenuPopup

Платформа вызывает эту функцию-член, когда всплывающее меню станет активным.

afx_msg void OnInitMenuPopup(
    CMenu* pPopupMenu,
    UINT nIndex,
    BOOL bSysMenu);

Параметры

pPopupMenu
Указывает объект меню всплывающего меню. Может быть временным и не должен храниться для последующего использования.

nIndex
Задает индекс всплывающего меню в главном меню.

bSysMenu
TRUE значение, если всплывающее меню является меню управления; в противном случае — значение FALSE .

Remarks

Это позволяет приложению изменить всплывающее меню до его отображения без изменения всего меню.

Примечание

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

CWnd::OnInputDeviceChange

Платформа вызывает эту функцию-член при добавлении или удалении устройства ввода/вывода из системы.

afx_msg void OnInputDeviceChange(unsigned short uFlag);

Параметры

uFlag
окне Этот флаг может содержать следующие значения:

  • GIDC_ARRIVAL — Новое устройство добавлено в систему.
  • GIDC_REMOVAL — Устройство было удалено из системы.

Remarks

Этот метод получает WM_INPUT_DEVICE_CHANGE уведомление, которое описано в Windows SDK. Является универсальным сообщением устройства ввода.

Примечание

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

CWnd::OnInputLangChange

Платформа вызывает этот элемент для самого верхнего затронутого окна после изменения языка ввода приложения.

afx_msg void OnInputLangChange(
    UINT nCharSet,
    UINT nLocaleId);

Параметры

nCharSet
окне Кодировка нового языкового стандарта. Дополнительные сведения см. в описании lfCharSet параметра LOGFONT структуры.

nLocaleId
окне Идентификатор локали ввода. Дополнительные сведения см. в разделе константы и строки идентификатора языка.

Remarks

Этот метод получает WM_INPUTLANGCHANGE сообщение уведомления, которое описано в Windows SDK.

Примечание

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

CWnd::OnInputLangChangeRequest

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

afx_msg void OnInputLangChangeRequest(
    UINT nFlags,
    UINT nLocaleId);

Параметры

nFlags
окне Побитовое сочетание (или) флагов, указывающих на то, что новый языковой стандарт был выбран из предыдущего или следующего языкового стандарта в списке установленных языков, или что новая раскладка клавиатуры ввода может использоваться с системным набором символов. Возможные значения: INPUTLANGCHANGE_BACKWARD , INPUTLANGCHANGE_FORWARD и INPUTLANGCHANGE_SYSCHARSET .

nLocaleId
окне Идентификатор локали ввода. Дополнительные сведения см. в разделе константы и строки идентификатора языка.

Remarks

Этот метод получает WM_INPUTLANGCHANGEREQUEST сообщение уведомления, которое описано в Windows SDK. Это сообщение отправляется, когда пользователь выбирает новый язык ввода с помощью сочетания клавиш, указанного в приложении панели управления "клавиатура", или из индикатора на системной панели задач.

Примечание

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

CWnd::OnKeyDown

Платформа вызывает эту функцию-член при нажатии несистемного ключа.

afx_msg void OnKeyDown(
    UINT nChar,
    UINT nRepCnt,
    UINT nFlags);

Параметры

nChar
Указывает виртуальный код ключа данного ключа. Список стандартных виртуальных клавиш см. в разделе Winuser. h

nRepCnt
Число повторов (количество повторов нажатия клавиши в результате, когда пользователь удерживает клавишу).

nFlags
Указывает код сканирования, код перехода на ключ, предыдущее состояние ключа и код контекста, как показано в следующем списке:

Значение Описание
0-7 Код сканирования (значение, зависящее от изготовителя оборудования).
8 Расширенный ключ, например ключ функции или клавиша на цифровой клавиатуре (1, если это расширенный ключ).
9-10 Не используется.
11-12 Используется внутри Windows.
13 Контекстный код (1, если клавиша ALT удерживается при нажатии клавиши; в противном случае — 0).
14 Предыдущее состояние ключа (1, если ключ не работает до вызова, 0, если ключ работает).
15 Состояние перехода (1, если ключ освобождается, 0 при нажатии клавиши).

Для WM_KEYDOWN сообщения бит перехода на ключ (бит 15) равен 0, а бит контекстного кода (бит 13) равен 0.

Remarks

Несистемный ключ — клавиша клавиатуры, которая нажата, когда клавиша ALT не нажата или клавиша клавиатуры, нажатая при CWnd наличии фокуса ввода.

В связи с автоматической повторной OnKeyDown OnKeyUp попытка вызова функции-члена может произойти несколько вызовов. Бит, указывающий на предыдущее состояние ключа, можно использовать для определения того, OnKeyDown является ли вызов первым переходом или повторным переходом.

Для клавиатуры IBM с улучшенными 101-и 102-клавишами расширенными ключами являются правая клавиша ALT и правые клавиши CTRL в основном разделе клавиатуры. клавиши INS, DEL, ДОМАШНяя, КОНЕЧная страница вверх, PAGE DOWN и стрелка в кластерах слева от цифровой клавиатуры; и косая черта (/) и введите клавиши на цифровой клавиатуре. Некоторые другие клавиатуры могут поддерживать бит расширенного ключа в nFlags .

Примечание

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

CWnd::OnKeyUp

Платформа вызывает эту функцию-член при освобождении несистемного ключа.

afx_msg void OnKeyUp(
    UINT nChar,
    UINT nRepCnt,
    UINT nFlags);

Параметры

nChar
Указывает виртуальный код ключа данного ключа. Список стандартных виртуальных клавиш см. в разделе. Winuser.h

nRepCnt
Число повторов (количество повторов нажатия клавиши в результате, когда пользователь удерживает клавишу).

nFlags
Указывает код сканирования, код перехода на ключ, предыдущее состояние ключа и код контекста, как показано в следующем списке:

Значение Описание
0-7 Код сканирования (значение, зависящее от изготовителя оборудования). Младший байт для слова высокого порядка.
8 Расширенный ключ, например ключ функции или клавиша на цифровой клавиатуре (1, если это расширенный ключ; в противном случае 0).
9-10 Не используется.
11-12 Используется внутри Windows.
13 Контекстный код (1, если клавиша ALT удерживается при нажатии клавиши; в противном случае — 0).
14 Предыдущее состояние ключа (1, если ключ не работает до вызова, 0, если ключ работает).
15 Состояние перехода (1, если ключ освобождается, 0 при нажатии клавиши).

Для WM_KEYUP сообщения бит перехода на ключ (бит 15) равен 1, а бит контекстного кода (бит 13) равен 0.

Remarks

Несистемный ключ — это клавиша клавиатуры, которая нажата, когда клавиша ALT не нажата или клавиша клавиатуры, которая нажата, когда CWnd имеет фокус ввода.

Для клавиатуры IBM с улучшенными 101-и 102-клавишами расширенными ключами являются правая клавиша ALT и правые клавиши CTRL в основном разделе клавиатуры. клавиши INS, DEL, ДОМАШНяя, КОНЕЧная страница вверх, PAGE DOWN и стрелка в кластерах слева от цифровой клавиатуры; и косая черта (/) и введите клавиши на цифровой клавиатуре. Некоторые другие клавиатуры могут поддерживать бит расширенного ключа в нфлагс.

Примечание

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

CWnd::OnKillFocus

Платформа вызывает эту функцию члена непосредственно перед тем, как потерять фокус ввода.

afx_msg void OnKillFocus(CWnd* pNewWnd);

Параметры

pNewWnd
Указывает указатель на окно, которое получает фокус ввода (может быть NULL или может быть временным).

Remarks

Если CWnd объект отображает курсор, в этот момент курсор должен быть разрушен.

Примечание

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

CWnd::OnLButtonDblClk

Платформа вызывает эту функцию-член, когда пользователь дважды щелкает левую кнопку мыши.

afx_msg void OnLButtonDblClk(
    UINT nFlags,
    CPoint point);

Параметры

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

  • MK_CONTROL Установите, если клавиша CTRL не нажата.

  • MK_LBUTTON Установите, если левая кнопка мыши не работает.

  • MK_MBUTTON Установите, если средняя кнопка мыши не работает.

  • MK_RBUTTON Задается, если правая кнопка мыши не работает.

  • MK_SHIFT Установите, если нажата клавиша SHIFT.

point
Задает координату x и y курсора. Эти координаты всегда отсчитываются относительно левого верхнего угла окна.

Remarks

CS_DBLCLKS WNDCLASS Вызовы будут возникать только в окнах, имеющих стиль OnLButtonDblClk . Это значение по умолчанию для окон Microsoft Foundation Class. Windows вызывает, OnLButtonDblClk когда пользователь нажимает, отпускает, а затем снова нажимает левую кнопку мыши в пределах предельного времени двойного щелчка системы. Двойной щелчок левой кнопки мыши на самом деле приводит к четырем событиям: WM_LBUTTONDOWN , WM_LBUTTONUP сообщениям, WM_LBUTTONDBLCLK вызову и другому WM_LBUTTONUP сообщению при отпускании кнопки.

Примечание

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

CWnd::OnLButtonDown

Платформа вызывает эту функцию члена, когда пользователь нажимает левую кнопку мыши.

afx_msg void OnLButtonDown(
    UINT nFlags,
    CPoint point);

Параметры

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

  • MK_CONTROL Установите, если клавиша CTRL не нажата.

  • MK_LBUTTON Установите, если левая кнопка мыши не работает.

  • MK_MBUTTON Установите, если средняя кнопка мыши не работает.

  • MK_RBUTTON Задается, если правая кнопка мыши не работает.

  • MK_SHIFT Установите, если нажата клавиша SHIFT.

point
Задает координату x и y курсора. Эти координаты всегда отсчитываются относительно левого верхнего угла окна.

Remarks

Примечание

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

CWnd::OnLButtonUp

Платформа вызывает эту функцию члена, когда пользователь отпускает левую кнопку мыши.

afx_msg void OnLButtonUp(
    UINT nFlags,
    CPoint point);

Параметры

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

  • MK_CONTROL Установите, если клавиша CTRL не нажата.

  • MK_MBUTTON Установите, если средняя кнопка мыши не работает.

  • MK_RBUTTON Задается, если правая кнопка мыши не работает.

  • MK_SHIFT Установите, если нажата клавиша SHIFT.

point
Задает координату x и y курсора. Эти координаты всегда отсчитываются относительно левого верхнего угла окна.

Remarks

Примечание

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

CWnd::OnMButtonDblClk

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

afx_msg void OnMButtonDblClk(
    UINT nFlags,
    CPoint point);

Параметры

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

  • MK_CONTROL Установите, если клавиша CTRL не нажата.

  • MK_LBUTTON Установите, если левая кнопка мыши не работает.

  • MK_MBUTTON Установите, если средняя кнопка мыши не работает.

  • MK_RBUTTON Задается, если правая кнопка мыши не работает.

  • MK_SHIFT Установите, если нажата клавиша SHIFT.

point
Задает координату x и y курсора. Эти координаты всегда отсчитываются относительно левого верхнего угла окна.

Remarks

CS_DBLCLKS WNDCLASS Вызовы будут возникать только в окнах, имеющих стиль OnMButtonDblClk . Это значение по умолчанию для всех окон Microsoft Foundation Class. Windows создает OnMButtonDblClk вызов, когда пользователь нажимает, отпускает, а затем снова нажимает среднюю кнопку мыши в пределах предельного времени двойного щелчка системы. Двойной щелчок средней кнопки мыши на самом деле приводит к четырем событиям: WM_MBUTTONDOWN и WM_MBUTTONUP сообщениям, WM_MBUTTONDBLCLK вызову и другому WM_MBUTTONUP сообщению.

Примечание

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

CWnd::OnMButtonDown

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

afx_msg void OnMButtonDown(
    UINT nFlags,
    CPoint point);

Параметры

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

  • MK_CONTROL Установите, если клавиша CTRL не нажата.

  • MK_LBUTTON Установите, если левая кнопка мыши не работает.

  • MK_MBUTTON Установите, если средняя кнопка мыши не работает.

  • MK_RBUTTON Задается, если правая кнопка мыши не работает.

  • MK_SHIFT Установите, если нажата клавиша SHIFT.

point
Задает координату x и y курсора. Эти координаты всегда отсчитываются относительно левого верхнего угла окна.

Remarks

Примечание

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

CWnd::OnMButtonUp

Платформа вызывает эту функцию члена, когда пользователь отпускает среднюю кнопку мыши.

afx_msg void OnMButtonUp(
    UINT nFlags,
    CPoint point);

Параметры

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

  • MK_CONTROL Установите, если клавиша CTRL не нажата.

  • MK_LBUTTON Установите, если левая кнопка мыши не работает.

  • MK_RBUTTON Задается, если правая кнопка мыши не работает.

  • MK_SHIFT Установите, если нажата клавиша SHIFT.

point
Задает координату x и y курсора. Эти координаты всегда отсчитываются относительно левого верхнего угла окна.

Remarks

Примечание

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

CWnd::OnMDIActivate

Платформа вызывает эту функцию члена для деактивируемого дочернего окна и активируемого дочернего окна.

afx_msg void OnMDIActivate(
    BOOL bActivate,
    CWnd* pActivateWnd,
    CWnd* pDeactivateWnd);

Параметры

bActivate
TRUE значение, если дочерний элемент активируется и FALSE деактивируется.

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

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

Remarks

Дочернее окно MDI активируется независимо от окна фрейма MDI. Когда кадр станет активным, дочернее окно, которое было активировано с помощью OnMDIActivate вызова, получает WM_NCACTIVATE сообщение для рисования кадра активного окна и строки заголовка, но не получает другой OnMDIActivate вызов.

Примечание

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

CWnd::OnMeasureItem

Платформа вызывает эту функцию-член платформой для владельца кнопки рисования владельца, поля со списком, списка или пункта меню при создании элемента управления.

afx_msg void OnMeasureItem(
    int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct);

Параметры

nIDCtl
Идентификатор элемента управления.

lpMeasureItemStruct
Указывает на MEASUREITEMSTRUCT структуру данных, содержащую размеры элемента управления, рисуемого владельцем.

Remarks

Переопределите эту функцию члена и заполните MEASUREITEMSTRUCT структуру данных, на которую указывает, lpMeasureItemStruct и возвратите, которая информирует окна измерений элемента управления и позволяет Windows обрабатывать взаимодействие пользователя с элементом управления правильно.

Если список или поле со списком создается со LBS_OWNERDRAWVARIABLE CBS_OWNERDRAWVARIABLE стилем или, платформа вызывает эту функцию для владельца каждого элемента в элементе управления; в противном случае эта функция вызывается один раз.

Windows инициирует вызов OnMeasureItem для владельца полей со списком и полей со списком, созданных с помощью OWNERDRAWFIXED стиля перед отправкой WM_INITDIALOG сообщения. В результате, когда владелец получает этот вызов, Windows еще не определил высоту и ширину шрифта, используемого в элементе управления; вызовы функций и вычисления, требующие этих значений, должны выполняться в основной функции приложения или библиотеки.

Если измеряемый элемент является CMenu CListBox CComboBox объектом или, то MeasureItem вызывается виртуальная функция соответствующего класса. Переопределите MeasureItem функцию члена соответствующего класса элемента управления, чтобы вычислить и задать размер каждого элемента.

OnMeasureItem будет вызываться только в том случае, если класс элемента управления создается во время выполнения или создается с использованием LBS_OWNERDRAWVARIABLE стиля или CBS_OWNERDRAWVARIABLE . Если элемент управления создается редактором диалоговых окон, OnMeasureItem он не будет вызываться. Это происходит потому, что WM_MEASUREITEM сообщение отправляется на ранних этапах процесса создания элемента управления. Если создать подкласс с помощью DDX_Control , SubclassDlgItem или SubclassWindow , то подклассы обычно возникают после создания. Таким образом, невозможно обменять WM_MEASUREITEM сообщение в функции элемента управления OnChildNotify , которое является механизмом, используемым MFC для реализации ON_WM_MEASUREITEM_REFLECT .

Примечание

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

CWnd::OnMenuChar

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

afx_msg LRESULT OnMenuChar(
    UINT nChar,
    UINT nFlags,
    CMenu* pMenu);

Параметры

nChar
В зависимости от параметров сборки указывает символ ANSI или Unicode, который пользователь нажал.

nFlags
Содержит MF_POPUP флаг, если меню является всплывающим меню. Он содержит MF_SYSMENU флаг, если меню является меню управления.

pMenu
Содержит указатель на выбранный объект CMenu . Указатель может быть временным и не должен храниться.

Возвращаемое значение

Слово с высоким порядком возвращаемого значения должно содержать один из следующих кодов команд:

Значение Описание
0 Указывает, что Windows будет отклонять символ, который пользователь нажал, и создает короткий звуковой сигнал на системном докладчике.
1 Указывает Windows закрыть текущее меню.
2 Информирует окна о том, что младшее слово возвращаемого значения содержит номер элемента для определенного элемента. Этот элемент выбран Windows.

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

Remarks

Он отправляется в CWnd , которому принадлежит меню. OnMenuChar метод также вызывается, когда пользователь нажимает клавишу ALT и любой другой ключ, даже если этот ключ не соответствует назначенному символу. В этом случае pMenu указывает меню, принадлежащее CWnd , и nFlags равно 0.

Примечание

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

CWnd::OnMenuDrag

Платформа вызывает эту функцию-член текущего меню перетаскивания, когда пользователь начинает перетаскивать пункт меню.

afx_msg UINT OnMenuDrag(
    UINT nPos,
    CMenu* pMenu);

Параметры

nPos
окне Позиция индекса элемента меню при начале операции перетаскивания.

pMenu
окне Указатель на CMenu объект, содержащий пункт меню.

Возвращаемое значение

Возвращаемое значение Значение
MND_CONTINUE Меню должно оставаться активным. Если мышь освобождена, ее следует игнорировать.
MND_ENDMENU Меню должно быть завершено.

Remarks

Этот метод получает WM_MENUDRAG уведомление, которое описано в Windows SDK.

Примечание

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

CWnd::OnMenuGetObject

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

afx_msg UINT OnMenuGetObject(MENUGETOBJECTINFO* pMenuGetObjectInfo);

Параметры

pMenu
окне Указатель на MENUGETOBJECTINFO структуру, содержащую сведения о меню перетаскивания, на котором находится курсор мыши.

Возвращаемое значение

Возвращаемое значение Значение
MNGO_NOERROR Указатель интерфейса, поддерживающий операции перетаскивания, в элементе pvObj MENUGETOBJECTINFO структуры возвращается. В настоящее время IDropTarget поддерживается только интерфейс.
MNGO_NOINTERFACE Интерфейс с поддержкой перетаскивания и перетаскивания не поддерживается.

Remarks

Этот метод получает WM_MENUGETOBJECT уведомление, которое описано в Windows SDK.

Примечание

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

CWnd::OnMenuRButtonUp

Платформа вызывает эту функцию-член, когда пользователь отпускает правую кнопку мыши, когда курсор находится над пунктом меню.

afx_msg void OnMenuRButtonUp(
    UINT nPos,
    CMenu* pMenu);

Параметры

nPos
окне Позиция индекса элемента меню при отпускании правой кнопки мыши.

pMenu
окне Указатель на CMenu объект, содержащий пункт меню.

Remarks

Этот метод получает WM_MENURBUTTONUP уведомление, которое описано в Windows SDK. WM_MENURBUTTONUPСообщение позволяет приложению предоставить контекстно-зависимое меню для пункта меню, указанного в сообщении.

Примечание

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

CWnd::OnMenuSelect

Если CWnd объект связан с меню, OnMenuSelect платформа вызывается платформой, когда пользователь выбирает пункт меню.

afx_msg void OnMenuSelect(
    UINT nItemID,
    UINT nFlags,
    HMENU hSysMenu);

Параметры

nItemID
Определяет выбранный элемент. Если выбранный элемент является пунктом меню, nItemID содержит идентификатор пункта меню. Если выбранный элемент содержит всплывающее меню, nItemID содержит индекс всплывающего меню и hSysMenu содержит маркер главного меню (щелчок по щелчку мыши).

nFlags
Содержит сочетание следующих флагов меню:

  • MF_BITMAP Элемент является точечным рисунком.

  • MF_CHECKED Элемент установлен.

  • MF_DISABLED Элемент отключен.

  • MF_GRAYED Элемент недоступен.

  • MF_MOUSESELECT Элемент был выбран с помощью мыши.

  • MF_OWNERDRAW Элемент является элементом, рисуемым владельцем.

  • MF_POPUP Элемент содержит всплывающее меню.

  • MF_SEPARATOR Элемент — это разделитель элементов меню.

  • MF_SYSMENU Элемент содержится в меню управления.

hSysMenu
Если nFlags MF_SYSMENU параметр содержит, определяет меню, связанное с сообщением. Если параметр nFlags содержит MF_POPUP , определяет маркер главного меню. Если nFlags не содержит MF_SYSMENU ни MF_POPUP , ни, он не используется.

Remarks

Если параметр nFlags содержит 0xFFFF и hSysMenu содержит значение 0, Windows закрыл меню, так как пользователь нажал клавишу ESC или щелкнул его за пределами меню.

Примечание

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

CWnd::OnMouseActivate

Платформа вызывает эту функцию-член, когда курсор находится в неактивном окне, и пользователь нажимает кнопку мыши.

afx_msg int OnMouseActivate(
    CWnd* pDesktopWnd,
    UINT nHitTest,
    UINT message);

Параметры

pDesktopWnd
Указывает указатель на родительское окно верхнего уровня активируемого окна. Указатель может быть временным и не должен храниться.

nHitTest
Указывает код области проверки попадания . Проверка нажатия — это проверка, определяющая положение курсора.

message
Указывает номер сообщения мыши.

Возвращаемое значение

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

  • MA_ACTIVATE Активировать CWnd объект.

  • MA_NOACTIVATE Не активизируйте CWnd объект.

  • MA_ACTIVATEANDEAT Активировать CWnd объект и отменить событие мыши.

  • MA_NOACTIVATEANDEAT Не активизируйте CWnd объект и отбросить событие мыши.

Remarks

Реализация по умолчанию передает это сообщение родительскому окну перед любой обработкой. Если родительское окно возвращает значение TRUE, обработка прерывается.

Описание отдельных кодов области проверки попадания см. в описании функции- OnNcHitTest члена.

Примечание

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

Пример

// The code fragment below shows how to UI activate an ActiveX control.
// CMyAxCtrl is a COleControl-derived class.
int CMyAxCtrl::OnMouseActivate(CWnd *pDesktopWnd, UINT nHitTest, UINT message)
{
   OnActivateInPlace(TRUE, NULL); // OnActivateInPlace() is an undocumented function
   return COleControl::OnMouseActivate(pDesktopWnd, nHitTest, message);
}

CWnd::OnMouseHover

Платформа вызывает эту функцию-член при наведении курсора на клиентскую область окна в течение периода времени, указанного в предыдущем вызове метода TrackMouseEvent .

afx_msg void OnMouseHover(
    UINT nFlags,
    CPoint point);

Параметры

nFlags
окне Побитовое сочетание (или) флагов, указывающих, какие клавиши-модификаторы нажаты. Например, MK_CONTROL флаг указывает, что нажата клавиша CTRL.

point
окне CPoint Объект, указывающий x координаты и y координату курсора относительно левого верхнего угла клиентской области.

Remarks

Этот метод получает WM_MOUSEHOVER уведомление, которое описано в Windows SDK.

nFlags Параметр может быть сочетанием клавиш-модификаторов, перечисленных в следующей таблице. Дополнительные сведения см. в статье о вводес помощью мыши.

Клавиша модификатора Описание
MK_CONTROL Нажата клавиша CTRL.
MK_LBUTTON Нажата левая кнопка мыши.
MK_MBUTTON Нажата средняя кнопка мыши.
MK_RBUTTON Нажата правая кнопка мыши.
MK_SHIFT Нажата клавиша SHIFT.
MK_XBUTTON1 XBUTTON1Нажата кнопка мыши Microsoft IntelliMouse.
MK_XBUTTON2 XBUTTON2Нажата кнопка мыши Microsoft IntelliMouse.

Примечание

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

CWnd::OnMouseHWheel

Платформа вызывает этот элемент, когда текущее окно состоит из диспетчер окон рабочего стола (DWM), и это окно развернуто.

afx_msg void OnMouseHWheel(
    UINT nFlags,
    short zDelta,
    CPoint pt);

Параметры

nFlags
окне Побитовое сочетание (или) флагов, указывающих, какие клавиши-модификаторы нажаты. Например, MK_CONTROL флаг указывает, что нажата клавиша CTRL. Список флагов см. в подразделе "Параметры сообщения" статьи о вводес помощью мыши.

zDelta
окне Указывает расстояние, на которое вращается колесико, выраженное в множителях или подразделениях WHEEL_DELTA , которое равно 120. Положительное значение указывает, что колесо поворачивается вправо; отрицательное значение указывает, что колесико мыши было повернуто влево.

pt
окне CPoint Объект, указывающий x координаты и y координату курсора относительно левого верхнего угла клиентской области.

Remarks

Этот метод получает WM_MOUSEHWHEEL сообщение уведомления, которое описано в Windows SDK. Это сообщение отправляется в окно, которое находится в фокусе, когда колесо горизонтальной прокрутки мыши вращается или поворачивается.

Примечание

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

CWnd::OnMouseLeave

Платформа вызывает эту функцию-член, когда курсор покидает клиентскую область окна, указанное в предыдущем вызове метода TrackMouseEvent .

afx_msg void OnMouseLeave();

Remarks

Этот метод получает WM_MOUSELEAVE уведомление, которое описано в Windows SDK.

Примечание

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

CWnd::OnMouseMove

Платформа вызывает эту функцию члена при перемещении курсора мыши.

afx_msg void OnMouseMove(
    UINT nFlags,
    CPoint point);

Параметры

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

  • MK_CONTROL Установите, если клавиша CTRL не нажата.

  • MK_LBUTTON Установите, если левая кнопка мыши не работает.

  • MK_MBUTTON Установите, если средняя кнопка мыши не работает.

  • MK_RBUTTON Задается, если правая кнопка мыши не работает.

  • MK_SHIFT Установите, если нажата клавиша SHIFT.

point
Задает координату x и y курсора. Эти координаты всегда отсчитываются относительно левого верхнего угла окна.

Remarks

Если мышь не захвачена, WM_MOUSEMOVE сообщение получается CWnd объектом под курсором мыши; в противном случае сообщение переходит в окно, которое захватило мышь.

Примечание

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

CWnd::OnMouseWheel

Платформа вызывает эту функцию-член, так как пользователь поворачивает колесико мыши и встречает следующее деление колесика.

afx_msg BOOL OnMouseWheel(
    UINT nFlags,
    short zDelta,
    CPoint pt);

Параметры

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

  • MK_CONTROL Установите, если клавиша CTRL не нажата.

  • MK_LBUTTON Установите, если левая кнопка мыши не работает.

  • MK_MBUTTON Установите, если средняя кнопка мыши не работает.

  • MK_RBUTTON Задается, если правая кнопка мыши не работает.

  • MK_SHIFT Установите, если нажата клавиша SHIFT.

zDelta
Указывает расстояние повернутого. zDelta Значение выражается в нескольких единицах или в подразделениях WHEEL_DELTA , что равно 120. Значение меньше нуля означает поворот назад (к пользователю), а значение больше нуля означает вращение вперед (от пользователя). Пользователь может отменить этот ответ, изменив параметр Wheel в программном обеспечении мыши. Дополнительные сведения об этом параметре см. в разделе "Примечания".

pt
Задает координату x и y курсора. Эти координаты всегда отсчитываются относительно левого верхнего угла экрана.

Возвращаемое значение

Ненулевое значение, если прокрутка колесика мыши включена; в противном случае — 0.

Remarks

Если не переопределен, OnMouseWheel вызывает значение по умолчанию для WM_MOUSEWHEEL . Windows автоматически направляет сообщение в элемент управления или дочернее окно, которое имеет фокус. Функция Win32 DefWindowProc распространяет сообщение вверх по родительской цепочке в окно, которое его обрабатывает.

zDelta Параметр является кратным WHEEL_DELTA , который устанавливается в 120. Это значение является пороговым значением действия, которое необходимо выполнить, и одним из таких действий (например, прокруткой на одно деление вперед) должно быть для каждой разницы.

WHEEL_DELTA было установлено значение 120, разрешающее колеса с более высоким разрешением, такие как свободное колесо поворота без раскрутки. Колесико более точного разрешения отправляет больше сообщений на поворот, но каждое сообщение имеет меньшее разностное значение. Чтобы использовать такое колесо, добавьте входящие zDelta значения до тех пор, пока WHEEL_DELTA не будет достигнуто (чтобы получить тот же ответ для заданного сдвига), или прокрутите часть строк в ответ на более частые сообщения. Можно также выбрать детализацию прокрутки и накапливать разности до тех пор WHEEL_DELTA , пока не будет достигнуто.

Переопределите эту функцию-член, чтобы обеспечить собственное поведение прокрутки колесика мыши.

Примечание

OnMouseWheel обрабатывает сообщения для Windows NT 4,0 и более поздних версий. Для обработки сообщений Windows 95/98 или Windows NT 3,51 Используйте OnRegisteredMouseWheel .

CWnd::OnMove

Платформа вызывает эту функцию члена после CWnd перемещения объекта.

afx_msg void OnMove(
    int x,
    int y);

Параметры

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

y
Указывает новое положение координаты y верхнего левого угла клиентской области. Это новое расположение задается в экранных координатах для перекрывающихся и всплывающих окон и координат родительского клиента для дочерних окон.

Remarks

Примечание

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

CWnd::OnMoving

Платформа вызывает эту функцию-член, пока пользователь перемещает CWnd объект.

afx_msg void OnMoving(
    UINT nSide,
    LPRECT lpRect);

Параметры

nSide
Граница перемещаемого окна.

lpRect
Адрес CRect RECT структуры или, которая будет содержать координаты элемента.

Remarks

Примечание

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

CWnd::OnNcActivate

Платформа вызывает эту функцию члена, когда неклиентскую область необходимо изменить, чтобы указать активное или неактивное состояние.

afx_msg BOOL OnNcActivate(BOOL bActive);

Параметры

bActive
Указывает, когда нужно изменить строку заголовка или значок, чтобы они указывали на активное или неактивное состояние. bActive Параметр имеет значение, TRUE если должен быть нарисован активный заголовок или значок. Он предназначен FALSE для неактивного заголовка или значка.

Возвращаемое значение

Ненулевое значение, если Windows будет продолжать обработку по умолчанию; 0, чтобы запретить деактивацию строки заголовка или значка.

Remarks

Реализация по умолчанию рисует строку заголовка и текст заголовка в своих активных цветах, если bActive имеет значение, TRUE а в неактивные цвета bActive — значение FALSE .

Примечание

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

CWnd::OnNcCalcSize

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

afx_msg void OnNcCalcSize(
    BOOL bCalcValidRects,
    NCCALCSIZE_PARAMS* lpncsp);

Параметры

bCalcValidRects
Указывает, должно ли приложение указывать, какая часть клиентской области содержит действительные сведения. Windows скопирует действительные данные в указанную область в новой клиентской области. Если этот параметр имеет значение TRUE, приложение должно указать, какая часть клиентской области является допустимой.

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

Remarks

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

Независимо от значения bCalcValidRects , первый прямоугольник в массиве, заданный rgrc элементом структуры NCCALCSIZE_PARAMS структуры, содержит координаты окна. Для дочернего окна координаты задаются относительно клиентской области родительского окна. Для окон верхнего уровня координаты являются экранными координатами. Приложение должно изменить rgrc[0] прямоугольник в соответствии с размером и положением клиентской области.

rgrc[1] rgrc[2] Прямоугольники и являются допустимыми только в bCalcValidRects том случае, если имеет значение TRUE . В этом случае rgrc[1] прямоугольник содержит координаты окна до его перемещения или изменения размера. rgrc[2]Прямоугольник содержит координаты клиентской области окна перед перемещением окна. Все координаты задаются относительно родительского окна или экрана.

Реализация по умолчанию вычисляет размер клиентской области на основе характеристик окна (наличие полос прокрутки, меню и т. д.) и помещает результат в lpncsp .

Примечание

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

CWnd::OnNcCreate

Платформа вызывает эту функцию-член перед WM_CREATE сообщением при CWnd создании объекта.

afx_msg BOOL OnNcCreate(LPCREATESTRUCT lpCreateStruct);

Параметры

lpCreateStruct
Указывает на CREATESTRUCT структуру данных для CWnd .

Возвращаемое значение

Ненулевое значение, если создана неклиентская область. Это значение равно 0, если возникает ошибка. Create failure в этом случае функция возвратит значение.

Remarks

Примечание

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

CWnd::OnNcDestroy

Вызывается платформой при уничтожении неклиентской области и является последней функцией-членом, вызываемой при уничтожении окна Windows.

afx_msg void OnNcDestroy();

Remarks

Реализация по умолчанию выполняет некоторую очистку, а затем вызывает виртуальную функцию члена PostNcDestroy .

Переопределите PostNcDestroy , если хотите выполнить собственную очистку, например delete this операцию. При переопределении OnNcDestroy необходимо вызвать OnNcDestroy в базовом классе, чтобы освободить память, внутренне выделенную для окна.

CWnd::OnNcHitTest

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

afx_msg LRESULT OnNcHitTest(CPoint point);

Параметры

point
Содержит координаты x и y курсора. Эти координаты всегда являются экранными координатами.

Возвращаемое значение

Одно из перечислимых значений, проверяемых нажатием кнопки мыши. WM_NCHITTESTСписок значений см. в разделе.

Remarks

Примечание

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

CWnd::OnNcLButtonDblClk

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

afx_msg void OnNcLButtonDblClk(
    UINT nHitTest,
    CPoint point);

Параметры

nHitTest
Указывает код проверки попадания. Проверка нажатия — это проверка, определяющая положение курсора. WM_NCHITTESTСписок значений см. в разделе.

point
Задает CPoint объект, содержащий экранные координаты x и y позиции курсора. Эти координаты всегда отсчитываются относительно левого верхнего угла экрана.

Remarks

При необходимости WM_SYSCOMMAND отправляется сообщение.

Примечание

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

CWnd::OnNcLButtonDown

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

afx_msg void OnNcLButtonDown(
    UINT nHitTest,
    CPoint point);

Параметры

nHitTest
Указывает код проверки попадания. Проверка нажатия — это проверка, определяющая положение курсора. WM_NCHITTESTСписок значений см. в разделе.

point
Задает CPoint объект, содержащий экранные координаты x и y позиции курсора. Эти координаты всегда отсчитываются относительно левого верхнего угла экрана.

Remarks

При необходимости WM_SYSCOMMAND отправляется.

Примечание

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

CWnd::OnNcLButtonUp

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

afx_msg void OnNcLButtonUp(
    UINT nHitTest,
    CPoint point);

Параметры

nHitTest
Указывает код проверки попадания. Проверка нажатия — это проверка, определяющая положение курсора. WM_NCHITTESTСписок значений см. в разделе.

point
Задает CPoint объект, содержащий экранные координаты x и y позиции курсора. Эти координаты всегда отсчитываются относительно левого верхнего угла экрана.

Remarks

При необходимости WM_SYSCOMMAND отправляется.

Примечание

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

CWnd::OnNcMButtonDblClk

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

afx_msg void OnNcMButtonDblClk(
    UINT nHitTest,
    CPoint point);

Параметры

nHitTest
Указывает код проверки попадания. Проверка нажатия — это проверка, определяющая положение курсора.

point
Задает CPoint объект, содержащий экранные координаты x и y позиции курсора. Эти координаты всегда отсчитываются относительно левого верхнего угла экрана.

Remarks

Примечание

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

CWnd::OnNcMButtonDown

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

afx_msg void OnNcMButtonDown(
    UINT nHitTest,
    CPoint point);

Параметры

nHitTest
Указывает код проверки попадания. Проверка нажатия — это проверка, определяющая положение курсора.

point
Задает CPoint объект, содержащий экранные координаты x и y позиции курсора. Эти координаты всегда отсчитываются относительно левого верхнего угла экрана.

Remarks

Примечание

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

CWnd::OnNcMButtonUp

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

afx_msg void OnNcMButtonUp(
    UINT nHitTest,
    CPoint point);

Параметры

nHitTest
Указывает код проверки попадания. Проверка нажатия — это проверка, определяющая положение курсора.

point
Задает CPoint объект, содержащий экранные координаты x и y позиции курсора. Эти координаты всегда отсчитываются относительно левого верхнего угла экрана.

Remarks

Примечание

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

CWnd::OnNcMouseHover

Платформа вызывает эту функцию-член при наведении курсора на неклиентскую область окна в течение периода времени, указанного в предыдущем вызове метода TrackMouseEvent .

afx_msg void OnNcMouseHover(
    UINT nHitTest,
    CPoint point);

Параметры

nHitTest
окне Значение проверки попадания, возвращаемое CWnd::DefWindowProc функцией в результате обработки WM_NCHITTEST сообщения.

point
окне CPoint Объект, указывающий координаты x и y курсора относительно верхнего левого угла экрана.

Remarks

Этот метод получает WM_NCMOUSEHOVER уведомление, которое описано в Windows SDK.

Примечание

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

CWnd::OnNcMouseLeave

Платформа вызывает эту функцию-член, когда курсор покидает неклиентскую область окна, заданную в предыдущем вызове метода TrackMouseEvent .

afx_msg void OnNcMouseLeave();

Remarks

Этот метод получает WM_NCMOUSELEAVE уведомление, которое описано в Windows SDK.

Примечание

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

CWnd::OnNcMouseMove

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

afx_msg void OnNcMouseMove(
    UINT nHitTest,
    CPoint point);

Параметры

nHitTest
Указывает код проверки попадания. Проверка нажатия — это проверка, определяющая положение курсора.

point
Задает CPoint объект, содержащий экранные координаты x и y позиции курсора. Эти координаты всегда отсчитываются относительно левого верхнего угла экрана.

Remarks

При необходимости WM_SYSCOMMAND отправляется сообщение.

Примечание

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

CWnd::OnNcPaint

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

afx_msg void OnNcPaint();

Remarks

Реализация по умолчанию закрашивает рамку окна.

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

CWnd::OnNcRButtonDblClk

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

afx_msg void OnNcRButtonDblClk(
    UINT nHitTest,
    CPoint point);

Параметры

nHitTest
Указывает код проверки попадания. Проверка нажатия — это проверка, определяющая положение курсора.

point
Задает CPoint объект, содержащий экранные координаты x и y позиции курсора. Эти координаты всегда отсчитываются относительно левого верхнего угла экрана.

Remarks

Примечание

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

CWnd::OnNcRButtonDown

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

afx_msg void OnNcRButtonDown(
    UINT nHitTest,
    CPoint point);

Параметры

nHitTest
Указывает код проверки попадания. Проверка нажатия — это проверка, определяющая положение курсора.

point
Задает CPoint объект, содержащий экранные координаты x и y позиции курсора. Эти координаты всегда отсчитываются относительно левого верхнего угла экрана.

Remarks

Примечание

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

CWnd::OnNcRButtonUp

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

afx_msg void OnNcRButtonUp(
    UINT nHitTest,
    CPoint point);

Параметры

nHitTest
Указывает код проверки попадания. Проверка нажатия — это проверка, определяющая положение курсора.

point
Задает CPoint объект, содержащий экранные координаты x и y позиции курсора. Эти координаты всегда отсчитываются относительно левого верхнего угла экрана.

Remarks

Примечание

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

CWnd::OnNcRenderingChanged

Платформа вызывает этот элемент при изменении политики отрисовки неклиентской области.

afx_msg void OnNcRenderingChanged(BOOL bIsRendering);

Параметры

bIsRendering
[входные] TRUE Если отрисовка диспетчер окон рабочего стола (DWM) включена для неклиентской области окна; FALSE если отрисовка отключена.

Remarks

Этот метод получает WM_DWMNCRENDERINGCHANGED уведомление, которое описано в Windows SDK.

Примечание

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

CWnd::OnNcXButtonDblClk

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

void OnNcXButtonDblClk(
    short nHitTest,
    UINT nButton,
    CPoint point);

Параметры

nHitTest
окне Значение проверки попадания, возвращаемое CWnd::DefWindowProc функцией в результате обработки WM_NCHITTEST сообщения.

nButton
окне Значение XBUTTON1 , если была нажата первая кнопка Microsoft IntelliMouse x, или XBUTTON2 Если дважды щелкнуть вторую кнопку x.

point
окне CPoint Объект, указывающий x координаты и y координату курсора относительно левого верхнего угла клиентской области.

Remarks

Этот метод получает WM_XBUTTONDBLCLK уведомление, которое описано в Windows SDK. Это сообщение отправляется в окно, содержащее курсор. Если окно захвачено мышью, это сообщение не отправляется.

Примечание

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

CWnd::OnNcXButtonDown

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

afx_msg void OnNcXButtonDown(
    short nHitTest,
    UINT nButton,
    CPoint point);

Параметры

nHitTest
окне Значение проверки попадания, возвращаемое CWnd::DefWindowProc функцией в результате обработки WM_NCHITTEST сообщения.

nButton
окне Значение XBUTTON1 , если была нажата первая кнопка мыши x или XBUTTON2 Если нажата вторая кнопка x.

point
окне CPoint Объект, указывающий x координаты и y координату курсора относительно левого верхнего угла экрана.

Remarks

Этот метод получает WM_NCXBUTTONDOWN уведомление, которое описано в Windows SDK. Это сообщение отправляется в окно, содержащее курсор. Если окно захвачено мышью, это сообщение не отправляется.

Примечание

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

CWnd::OnNcXButtonUp

Платформа вызывает эту функцию-член, когда пользователь отпускает XBUTTON1 или XBUTTON2 мыши, когда курсор находится в неклиентской области окна.

afx_msg void OnNcXButtonUp(
    short nHitTest,
    UINT nButton,
    CPoint point);

Параметры

nHitTest
окне Значение проверки попадания, возвращаемое CWnd::DefWindowProc функцией в результате обработки WM_NCHITTEST сообщения.

nButton
окне Значение, XBUTTON1 Если была отжата первая кнопка x или XBUTTON2 Если вторая кнопка x была отжата.

point
окне CPoint Объект, указывающий координаты x и y курсора относительно верхнего левого угла экрана.

Remarks

Этот метод получает WM_NCXBUTTONUP уведомление, которое описано в Windows SDK. Это сообщение отправляется в окно, содержащее курсор. Если окно захвачено мышью, это сообщение не отправляется.

Примечание

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

CWnd::OnNextMenu

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

afx_msg void OnNextMenu(
    UINT nKey,
    LPMDINEXTMENU lpMdiNextMenu);

Параметры

nKey
окне Побитовое сочетание ( OR ) флагов, указывающих, какие клавиши-модификаторы нажаты. Например, MK_CONTROL флаг указывает, что нажата клавиша CTRL. Список флагов см. в подразделе "Параметры сообщения" статьи о вводес помощью мыши.

lpMdiNextMenu
окне Указатель на MDINEXTMENU структуру, содержащую сведения о меню, которое должно быть активировано.

Remarks

Этот метод получает WM_UNINITMENUPOPUP уведомление, которое описано в Windows SDK. В ответ на это сообщение приложение может задать hmenuNext член MDINEXTMENU структуры, чтобы указать меню, к которому будет переключаться, и член, hwndNext чтобы указать окно для получения сообщений уведомления меню.

Примечание

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

CWnd::OnNotify

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

virtual BOOL OnNotify(
    WPARAM wParam,
    LPARAM lParam,
    LRESULT* pResult);

Параметры

wParam
Определяет элемент управления, который отправляет сообщение, если сообщение получено из элемента управления. В противном случае wParam — значение 0.

lParam
Указатель на структуру сообщения уведомления ( NMHDR ), которая содержит код уведомления и дополнительные сведения. Для некоторых сообщений с уведомлениями этот параметр указывает на большую структуру, в которой NMHDR структура является первым элементом.

pResult
Указатель на LRESULT переменную, в которой будет сохранен код результата, если сообщение обрабатывается.

Возвращаемое значение

Приложение возвращает ненулевое значение, если обрабатывает это сообщение; в противном случае — 0.

Remarks

OnNotify обрабатывает схему сообщений для управляющих уведомлений.

Переопределите эту функцию члена в производном классе, чтобы она обрабатывала WM_NOTIFY сообщение. Переопределение не будет обрабатывать схему сообщений, если OnNotify не вызывается базовый класс.

Дополнительные сведения о WM_NOTIFY сообщении см. в статье Технические примечания 61 (TN061) ON_NOTIFY и WM_NOTIFY сообщения. Вы также можете заинтересовать соответствующие разделы, описанные в разделах Управление разделамии TN062, отражение сообщений для элементов управления Windows.

CWnd::OnNotifyFormat

Платформа вызывает эту функцию члена, чтобы определить, принимает ли текущее окно структуры ANSI или Unicode в WM_NOTIFY сообщении уведомления.

afx_msg UINT OnNotifyFormat(
    CWnd* pWnd,
    UINT nCommand);

Параметры

pWnd
окне Указатель на CWnd объект, представляющий окно, отправляющее WM_NOTIFY сообщение. Этот параметр является указателем на элемент управления, если nCommand параметр имеет значение NF_QUERY , или указатель на родительское окно элемента управления, если nCommand имеет значение NF_REQUERY .

nCommand
окне Значение команды, которое специализирует WM_NOTIFY сообщение. Допустимые значения:

  • NF_QUERY — Сообщение — это запрос, позволяющий определить, следует ли использовать в сообщениях структуры ANSI или Юникод WM_NOTIFY . Это сообщение отправляется из элемента управления в его родительское окно во время создания элемента управления и в ответ на NF_REQUERY форму этого сообщения.
  • NF_REQUERY — Сообщение является запросом элемента управления на отправку NF_QUERY формы этого сообщения родительскому окну. Этот запрос отправляется из родительского окна и запрашивает у элемента управления возможность повторного запроса родителя о типе структуры для использования в WM_NOTIFY сообщениях. Если nCommand параметр равен NF_REQUERY , то возвращаемое значение является результатом операции Requery.

Возвращаемое значение

Возвращаемое значение Значение
NFR_ANSI В WM_NOTIFY сообщениях, отправляемых элементом управления, должны использоваться структуры ANSI.
NFR_UNICODE Структуры Юникода должны использоваться в WM_NOTIFY сообщениях, отправляемых элементом управления.
0 Произошла ошибка.

Remarks

Этот метод получает WM_NOTIFYFORMAT уведомление, которое описано в Windows SDK. WM_NOTIFY сообщения отправляются из общего элемента управления в родительское окно, а от родительского окна к общему элементу управления.

Примечание

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

CWnd::OnPaint

Платформа вызывает эту функцию-член, когда Windows или приложение выполняет запрос на перерисовку части окна приложения.

afx_msg void OnPaint();

Remarks

WM_PAINTСообщение отправляется при UpdateWindow RedrawWindow вызове функции-члена или.

Окно может получить внутренние сообщения рисования в результате вызова RedrawWindow функции-члена с RDW_INTERNALPAINT установленным флагом. В этом случае в окне может отсутствовать регион обновления. Приложение должно вызывать GetUpdateRect функцию члена, чтобы определить, имеет ли окно область обновления. Если GetUpdateRect возвращает 0, приложение не должно вызывать BeginPaint EndPaint функции и.

Ответственность за проверку всех необходимых внутренних функций перерисовки или обновления осуществляется в приложении, WM_PAINT так как WM_PAINT сообщение может быть вызвано недопустимой областью и вызовом RedrawWindow функции-члена с RDW_INTERNALPAINT установленным флагом.

Внутреннее WM_PAINT сообщение отправляется в Windows только один раз. После того как внутреннее WM_PAINT сообщение отправлено в окно функцией- UpdateWindow членом, никакие последующие WM_PAINT сообщения не будут отправляться или публиковаться до тех пор, пока окно не станет недействительным или пока не будет RedrawWindow вызвана функция-член с RDW_INTERNALPAINT установленным флагом.

Сведения о подготовке изображения в приложениях для обработки документов и представлений см. в разделе CView::OnDraw .

Дополнительные сведения об использовании см WM_Paint . в следующих разделах Windows SDK.

CWnd::OnPaintClipboard

Функция-член OnPaintClipboard владельца буфера обмена вызывается средством просмотра буфера обмена, когда владелец буфера обмена размещает данные в буфер обмена в формате CF_OWNERDISPLAY и требуется перерисовка клиентской области средства просмотра буфера обмена.

afx_msg void OnPaintClipboard(
    CWnd* pClipAppWnd,
    HGLOBAL hPaintStruct);

Параметры

pClipAppWnd
Определяет указатель на окно приложения буфера обмена. Указатель может быть временным. Его не требуется сохранять для дальнейшего использования.

hPaintStruct
Определяет PAINTSTRUCT структуру данных, определяющую часть клиентской области для рисования.

Remarks

Чтобы определить, требуется ли перерисовка всей клиентской области или только ее части, владелец буфера обмена должен сравнить размеры области рисования, заданной в элементе rcpaint PAINTSTRUCT структуры, с измерениями, заданными в последнем OnSizeClipboard вызове функции-члена.

OnPaintClipboard следует использовать GlobalLock функцию Windows для блокировки памяти, содержащей PAINTSTRUCT структуру данных, и разблокировать эту память с помощью GlobalUnlock функции Windows перед ее завершением.

Примечание

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

CWnd::OnPaletteChanged

Платформа вызывает эту функцию-член для всех окон верхнего уровня после того, как окно с фокусом ввода реализовало логическую палитру, тем самым изменяя системную палитру.

afx_msg void OnPaletteChanged(CWnd* pFocusWnd);

Параметры

pFocusWnd
Указывает указатель на окно, вызвавшее изменение системной палитры. Указатель может быть временным и не должен храниться.

Remarks

Этот вызов позволяет окну без фокуса ввода, которое использует цветовую палитру для реализации своих логических палитр и обновления его клиентской области.

OnPaletteChangedФункция-член вызывается для всех окон верхнего уровня и перекрывающихся, включая те, которые изменили системную палитру и вызвали WM_PALETTECHANGED отправку сообщения. Если в любом дочернем окне используется цветовая палитра, это сообщение должно быть передано в него.

Чтобы избежать бесконечного цикла, окно не должно реализовывать его палитру, если не будет определять, что не pFocusWnd содержит указатель на себя.

Примечание

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

CWnd::OnPaletteIsChanging

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

afx_msg void OnPaletteIsChanging(CWnd* pRealizeWnd);

Параметры

pRealizeWnd
Указывает окно, которое собирается реализовать логическую палитру.

Remarks

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

CWnd::OnParentNotify

OnParentNotifyФункция-член родителя вызывается платформой при создании или удалении дочернего окна или при нажатии пользователем кнопки мыши в тот момент, когда курсор находится над дочерним окном.

afx_msg void OnParentNotify(
    UINT message,
    LPARAM lParam);

Параметры

message
Указывает событие, для которого уведомляется родительский элемент, и идентификатор дочернего окна. Событие — это слово нижнего порядка для message . Если событие имеет значение WM_CREATE или WM_DESTROY , то старшее слово message является идентификатором дочернего окна; в противном случае слово с высоким порядком не определено. Событие (слово низкого порядка message ) может быть любым из следующих значений:

  • WM_CREATE Создается дочернее окно.

  • WM_DESTROY Дочернее окно уничтожается.

  • WM_LBUTTONDOWN Пользователь поместил указатель мыши на дочернее окно и щелкнул левую кнопку мыши.

  • WM_MBUTTONDOWN Пользователь поместил указатель мыши на дочернее окно и щелкнул среднюю кнопку мыши.

  • WM_RBUTTONDOWN Пользователь поместил указатель мыши на дочернее окно и щелкнул правой кнопкой мыши.

lParam
Если событие (неупорядоченное слово) message имеет значение WM_CREATE или WM_DESTROY , lParam задает маркер окна дочернего окна; в противном случае lParam содержит координаты x и y курсора. Координата x находится в младшем слове, а координата y — в слове высокого порядка.

Remarks

При создании дочернего окна система вызывает OnParentNotify непосредственно перед Create функцией-членом, которая создает окно. При уничтожении дочернего окна система вызывается OnParentNotify до того, как будет выполнена обработка для уничтожения окна.

OnParentNotify вызывается для всех окон-предков дочернего окна, включая окно верхнего уровня.

Все дочерние окна, за исключением тех, которые имеют WS_EX_NOPARENTNOTIFY стиль, отправляют это сообщение в родительские окна. По умолчанию дочерние окна в диалоговом окне имеют WS_EX_NOPARENTNOTIFY стиль, если только дочернее окно не было создано без этого стиля путем вызова CreateEx функции-члена.

Примечание

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

CWnd::OnPowerBroadcast

Платформа вызывает эту функцию-член при возникновении события управления питанием.

afx_msg UINT OnPowerBroadcast(
    UINT nPowerEvent,
    UINT nEventData);

Параметры

nPowerEvent
окне Событие управления питанием.

nEventData
окне Данные, относящиеся к конкретному событию.

Возвращаемое значение

Если событие является запросом, вернитесь TRUE к предоставлению запроса или BROADCAST_QUERY_DENY отклоните запрос.

Remarks

Этот метод получает WM_POWERBROADCAST сообщение, которое описано в Windows SDK.

nPowerEvent Параметр указывает такие события, как "батарея разряжена", состояние питания изменилось, разрешение на операцию приостановки запрошено или запрещено, операция возобновляется автоматически после события, система приостанавливает операцию или возобновляет работу после приостановки. nEventData Параметр обычно не используется. Дополнительные сведения см. в разделе wParam lParam Параметры и WM_POWERBROADCAST сообщения.

Примечание

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

CWnd::OnQueryDragIcon

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

afx_msg HCURSOR OnQueryDragIcon();

Возвращаемое значение

Значение даублеворд, содержащее маркер курсора или значка в младшем слове. Курсор или значок должен быть совместим с разрешением видеодрайвера. Если приложение возвращает значение NULL , система отображает курсор по умолчанию. Значение по умолчанию — NULL.

Remarks

Система выполняет этот вызов, чтобы получить курсор, который будет отображаться, когда пользователь перетаскивает окно в режиме сворачивания. Если приложение возвращает маркер значка или курсора, система преобразует его в черный и белый цвет. Если приложение возвращает маркер, этот маркер должен обозначать монохромный курсор или значок, совместимый с разрешением видеодрайвера. Приложение может вызывать функции- CWinApp::LoadCursor CWinApp::LoadIcon члены или для загрузки курсора или значка из ресурсов в своем исполняемом файле и для получения этого маркера.

CWnd::OnQueryEndSession

Платформа вызывает эту функцию члена, когда пользователь выбирает завершение сеанса Windows или когда приложение вызывает ExitWindows функцию Windows.

afx_msg BOOL OnQueryEndSession();

Возвращаемое значение

Ненулевое значение, если приложение может быть легко выключено; в противном случае — 0.

Remarks

Если какое-либо приложение возвращает 0, сеанс Windows не завершается. Windows прекращает вызов OnQueryEndSession , как только одно приложение возвращает 0, и отправляет WM_ENDSESSION сообщение со значением параметра FALSE для любого приложения, которое уже вернуло ненулевое значение.

CWnd::OnQueryNewPalette

Платформа вызывает эту функцию-член, когда CWnd объект собирается получить фокус ввода, давая CWnd возможность реализовать логическую палитру при получении фокуса.

afx_msg BOOL OnQueryNewPalette();

Возвращаемое значение

Ненулевое значение, если объект CWnd реализует логическую палитру; в противном случае — 0.

CWnd::OnQueryOpen

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

afx_msg BOOL OnQueryOpen();

Возвращаемое значение

Ненулевое значение, если значок можно открыть, или значение 0, чтобы запретить открытие значка.

Remarks

В OnQueryOpen CWnd не должно выполнять никаких действий, которые приведут к изменению активации или фокуса (например, создание диалогового окна).

CWnd::OnQueryUIState

Вызывается, чтобы извлечь состояние пользовательского интерфейса окна.

afx_msg UINT OnQueryUIState();

Возвращаемое значение

Возвращаемое значение — NULL Если индикаторы фокуса и сочетания клавиш видимы. В противном случае возвращаемое значение может быть одним или несколькими следующими значениями:

  • UISF_HIDEFOCUS Индикаторы фокуса скрыты.

  • UISF_HIDEACCEL Сочетания клавиш скрыты.

  • UISF_ACTIVE Windows XP: элемент управления должен быть нарисован в стиле, используемом для активных элементов управления.

Remarks

Эта функция члена эмулирует функциональность WM_QUERYUISTATE сообщения, как описано в Windows SDK.

CWnd::OnRawInput

Платформа вызывает эту функцию члена, когда текущее окно получает необработанные входные данные.

afx_msg void OnRawInput(
    UINT nInputCode,
    HRAWINPUT hRawInput);

Параметры

nInputCode
окне Входной код, указывающий, произошел ли вход, когда приложение находилось на переднем плане. В любом случае приложение должно вызвать, CWnd::DefWindowProc чтобы система могла выполнить очистку. Этот параметр может принимать одно из следующих значений:

  • RIM_INPUT -Входные данные, пока приложение находилось на переднем плане.
  • RIM_INPUTSINK -Входные данные произошли, пока приложение не находилось на переднем плане.

hRawInput
окне Обработчик для RAWINPUT структуры, которая содержит необработанные входные данные с устройства.

Remarks

Этот метод получает WM_INPUT уведомление, которое описано в Windows SDK.

Примечание

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

CWnd::OnRButtonDblClk

Платформа вызывает эту функцию-член, когда пользователь дважды щелкает правую кнопку мыши.

afx_msg void OnRButtonDblClk(
    UINT nFlags,
    CPoint point);

Параметры

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

  • MK_CONTROL Задайте значение, если клавиша CTRL не нажата.

  • MK_LBUTTON Установите, если левая кнопка мыши не работает.

  • MK_MBUTTON Установить, если средняя кнопка мыши не работает.

  • MK_RBUTTON Установите, если кнопка мыши не работает.

  • MK_SHIFT Установите, если клавиша SHIFT не нажата.

point
Задает координаты x и y курсора. Эти координаты всегда отсчитываются относительно левого верхнего угла окна.

Remarks

Только окна с CS_DBLCLKS WNDCLASS стилем могут принимать OnRButtonDblClk вызовы. Это значение по умолчанию для Windows в библиотека Microsoft Foundation Class. Windows вызывает, OnRButtonDblClk когда пользователь нажимает, отпускает, а затем снова нажимает правую кнопку мыши в пределах предельного времени двойного щелчка системы. Двойной щелчок правой кнопкой мыши фактически создает четыре события: WM_RBUTTONDOWN и WM_RBUTTONUP сообщения, OnRButtonDblClk вызов и другое сообщение WM_RBUTTONUP при отпускании кнопки.

Примечание

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

CWnd::OnRButtonDown

Платформа вызывает эту функцию члена, когда пользователь нажимает правую кнопку мыши.

afx_msg void OnRButtonDown(
    UINT nFlags,
    CPoint point);

Параметры

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

  • MK_CONTROL Задайте значение, если клавиша CTRL не нажата.

  • MK_LBUTTON Установите, если левая кнопка мыши не работает.

  • MK_MBUTTON Установить, если средняя кнопка мыши не работает.

  • MK_RBUTTON Установите, если кнопка мыши не работает.

  • MK_SHIFT Установите, если клавиша SHIFT не нажата.

point
Задает координаты x и y курсора. Эти координаты всегда отсчитываются относительно левого верхнего угла окна.

Remarks

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

CWnd::OnRButtonUp

Платформа вызывает эту функцию члена, когда пользователь отпускает правую кнопку мыши.

afx_msg void OnRButtonUp(
    UINT nFlags,
    CPoint point);

Параметры

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

  • MK_CONTROL Задайте значение, если клавиша CTRL не нажата.

  • MK_LBUTTON Установите, если левая кнопка мыши не работает.

  • MK_MBUTTON Установить, если средняя кнопка мыши не работает.

  • MK_SHIFT Установите, если клавиша SHIFT не нажата.

point
Задает координаты x и y курсора. Эти координаты всегда отсчитываются относительно левого верхнего угла окна.

Remarks

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

CWnd::OnRegisteredMouseWheel

Платформа вызывает эту функцию-член, так как пользователь поворачивает колесико мыши и встречает следующее деление колесика.

afx_msg LRESULT OnRegisteredMouseWheel(
    WPARAM wParam,
    LPARAM lParam);

Параметры

wParam
Горизонтальное расположение указателя.

lParam
Вертикальное расположение указателя.

Возвращаемое значение

Незначащий в настоящее время. Всегда нуль.

Remarks

Если не переопределен, OnRegisteredMouseWheel направляет сообщение в соответствующее окно (родительское окно с фокусом) и вызывает WM_MOUSEWHEEL обработчик для этого окна.

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

Примечание

OnRegisteredMouseWheel обрабатывает сообщения для Windows 95/98 и Windows NT 3,51. Для обработки сообщений Windows NT 4,0 используйте OnMouseWheel .

CWnd::OnRenderAllFormats

OnRenderAllFormatsФункция-член владельца буфера обмена вызывается платформой при уничтожении приложения-владельца.

afx_msg void OnRenderAllFormats();

Remarks

Владелец буфера обмена должен отображать данные во всех форматах, способных создавать и передавать в буфер обмена обработчик данных, вызывая SetClipboardData функцию Windows. Это гарантирует, что буфер обмена будет содержать допустимые данные, даже если приложение, которое его отрисовывает, уничтожается. Приложение должно вызвать OpenClipboard функцию члена перед вызовом SetClipboardData функции Windows и вызвать CloseClipboard функцию Windows позже.

CWnd::OnRenderFormat

OnRenderFormatФункция-член владельца буфера обмена вызывается платформой, когда необходимо визуализировать определенный формат с отложенной отрисовкой.

afx_msg void OnRenderFormat(UINT nFormat);

Параметры

nFormat
Указывает формат буфера обмена.

Remarks

Получатель должен визуализировать данные в этом формате и передать их в буфер обмена, вызвав SetClipboardData функцию Windows.

Не вызывайте OpenClipboard функцию члена или CloseClipboard функцию Windows из в OnRenderFormat .

Примечание

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

CWnd::OnSessionChange

Платформа вызывает эту функцию-член для уведомления приложения об изменении состояния сеанса.

afx_msg void OnSessionChange(
    UINT nSessionState,
    UINT nId);

Параметры

nSessionState
окне Код состояния описывает изменение состояния сеанса.

nId
окне Идентификатор сеанса.

Remarks

Этот метод получает WM_WTSSESSION_CHANGE уведомление, которое описано в Windows SDK.

nSessionState Параметр указывает, что сеанс подключен или отключен от консоли или удаленного терминала, вошел в систему или выключен, сеанс заблокирован или разблокирован, либо сеанс был изменен на удаленное управление состоянием. Дополнительные сведения см. в описании wParam параметра WM_WTSSESSION_CHANGE сообщения.

Примечание

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

CWnd::OnSetCursor

Платформа вызывает эту функцию-член, если ввод с клавиатуры не захвачен и указатель мыши вызывает перемещение курсора внутри CWnd объекта.

afx_msg BOOL OnSetCursor(
    CWnd* pWnd,
    UINT nHitTest,
    UINT message);

Параметры

pWnd
Задает указатель на окно, содержащее курсор. Указатель может быть временным. Его не требуется сохранять для дальнейшего использования.

nHitTest
Указывает код области проверки попадания . Проверка нажатия определяет положение курсора.

message
Указывает номер сообщения мыши.

Возвращаемое значение

Ненулевое значение, чтобы остановить дальнейшую обработку, или 0 для продолжения.

Remarks

Реализация по умолчанию вызывает родительское окно OnSetCursor перед обработкой. Если родительское окно возвращает значение TRUE , дальнейшая обработка прерывается. Вызов родительского окна позволяет родительскому окну управлять параметром курсора в дочернем окне.

Реализация по умолчанию устанавливает курсор на стрелку, если она не находится в клиентской области, или на курсор зарегистрированного класса, если это.

Если nHitTest параметр имеет значение HTERROR и message является сообщением кнопки мыши, MessageBeep вызывается функция-член.

При переходе в режим меню параметр Message имеет значение 0 CWnd .

Примечание

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

CWnd::OnSetFocus

Платформа вызывает эту функцию члена после получения фокуса ввода.

afx_msg void OnSetFocus(CWnd* pOldWnd);

Параметры

pOldWnd
Содержит CWnd объект, который теряет фокус ввода (может быть NULL ). Указатель может быть временным. Его не требуется сохранять для дальнейшего использования.

Remarks

Чтобы отобразить курсор, CWnd следует вызвать соответствующие функции курсора на этом этапе.

Примечание

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

CWnd::OnSettingChange

Платформа вызывает OnSettingChange для всех окон верхнего уровня, когда функция Win32 системпараметерсинфо изменяет параметр на уровне системы.

afx_msg void OnSettingChange(
    UINT uFlags,
    LPCTSTR lpszSection);

Параметры

uFlags
Когда система отправляет сообщение в результате SystemParametersInfo вызова, этот параметр является флагом, указывающим на измененный системный параметр. Список значений см SystemParametersInfo . в разделе Windows SDK. Когда приложение отправляет сообщение, этот параметр должен иметь значение 0.

lpszSection
Указывает на строку, указывающую имя раздела, который был изменен. (Строка не включает квадратные скобки, в которых заключено имя раздела.)

Remarks

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

ON_WM_SETTINGCHANGEСообщение аналогично ON_WM_WININICHANGE сообщению со следующим отличием:

  • Используется ON_WM_SETTINGCHANGE при запуске Windows NT 4,0 или более поздней версии или в windows 95/98.

  • Используется ON_WININICHANGE при запуске Windows NT 3,51 или более ранних версий. Теперь это сообщение устарело.

В схеме сообщений должен быть только один из этих макросов. Для написания программы, которая работает как в Windows 95/98, так и в Windows NT 4,0, напишите обработчик для ON_WM_SETTINGCHANGE . В Windows NT 3,51 обработчик будет вызываться с помощью OnSettingChange и uFlags , и всегда будет равен нулю.

CWnd::OnShowWindow

Платформа вызывает эту функцию-член, когда CWnd объект будет скрыт или показан.

afx_msg void OnShowWindow(
    BOOL bShow,
    UINT nStatus);

Параметры

bShow
Указывает, отображается ли окно. Это происходит, TRUE Если окно отображается. Это означает, что FALSE окно скрыто.

nStatus
Указывает состояние отображаемого окна. Это значение равно 0, если сообщение отправляется в результате ShowWindow вызова функции-члена; в противном случае nStatus — одно из следующих:

  • SW_PARENTCLOSING Родительское окно закрывается (становится значком), или всплывающее окно скрывается.

  • SW_PARENTOPENING Родительское окно открывается (отображается) или отображается всплывающее окно.

Remarks

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

Примечание

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

CWnd::OnSize

Платформа вызывает эту функцию члена после изменения размера окна.

afx_msg void OnSize(
    UINT nType,
    int cx,
    int cy);

Параметры

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

  • SIZE_MAXIMIZED Окно развернуто.

  • SIZE_MINIMIZED Окно было уменьшено.

  • SIZE_RESTORED Размер окна был изменен, но ни один, SIZE_MINIMIZED ни SIZE_MAXIMIZED неприменим.

  • SIZE_MAXHIDE Сообщение отправляется во все всплывающие окна, когда какое-либо другое окно развернуто.

  • SIZE_MAXSHOW Сообщение отправляется во все всплывающие окна при восстановлении какого-либо другого окна до своего прежнего размера.

cx
Задает новую ширину клиентской области.

cy
Задает новую высоту клиентской области.

Remarks

Если SetScrollPos MoveWindow функция-член или вызывается для дочернего окна из OnSize , bRedraw параметр SetScrollPos или MoveWindow должен быть ненулевым для CWnd перерисовки.

Примечание

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

Пример

// Resize the edit control contained in the view to
// fill the entire view when the view's window is
// resized. CMdiView is a CView derived class.
void CMdiView::OnSize(UINT nType, int cx, int cy)
{
   CView::OnSize(nType, cx, cy);
   // Resize edit to fill the whole view.
   // OnSize can be called before OnInitialUpdate
   // so make sure the edit control has been created.
   if (::IsWindow(m_Edit.GetSafeHwnd()))
   {
      m_Edit.MoveWindow(0, 0, cx, cy);
   }
}

CWnd::OnSizeClipboard

OnSizeClipboardФункция-член владельца буфера обмена вызывается средством просмотра буфера обмена, когда буфер обмена содержит данные с CF_OWNERDISPLAY атрибутом и размер клиентской области окна средства просмотра буфера обмена изменился.

afx_msg void OnSizeClipboard(
    CWnd* pClipAppWnd,
    HGLOBAL hRect);

Параметры

pClipAppWnd
Определяет окно буфера обмена приложения. Указатель может быть временным и не должен храниться.

hRect
Определяет глобальный объект памяти. Объект Memory содержит RECT структуру данных, указывающую область для рисования владельцем буфера обмена.

Remarks

OnSizeClipboardФункция-член вызывается с пустым прямоугольником (0, 0, 0, 0) в качестве нового размера при уничтожении или сворачивании приложения буфера обмена. Это позволяет владельцу буфера обмена освобождать ресурсы, отображаемые на экране.

В OnSizeClipboard приложение должно использовать GlobalLock функцию Windows для блокировки памяти, содержащей RECT структуру данных. Разблокируйте в приложении эту память с помощью GlobalUnlock функции Windows, прежде чем она выдаст или возвратит управление.

Примечание

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

CWnd::OnSizing

Платформа вызывает эту функцию-член, чтобы указать, что пользователь изменяет размер прямоугольника.

afx_msg void OnSizing(
    UINT nSide,
    LPRECT lpRect);

Параметры

nSide
Граница перемещаемого окна.

lpRect
Адрес CRect RECT структуры или, которая будет содержать координаты элемента.

Remarks

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

Примечание

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

Пример

void CSplitChildFrm::OnSizing(UINT fwSide, LPRECT pRect)
{
   CMDIChildWnd::OnSizing(fwSide, pRect);

   // Resize the splitter window in the frame. m_wndSplitter is of 
   // type CSplitterWnd
   int nWidth = (pRect->right) - (pRect->left);
   m_wndSplitter.SetColumnInfo(0, nWidth / 2, 10);
   m_wndSplitter.SetColumnInfo(1, nWidth / 2, 10);
   m_wndSplitter.RecalcLayout();
}

CWnd::OnSpoolerStatus

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

afx_msg void OnSpoolerStatus(
    UINT nStatus,
    UINT nJobs);

Параметры

nStatus
Задает SP_JOBSTATUS флаг.

nJobs
Указывает количество заданий, остающихся в очереди диспетчера печати.

Remarks

Этот вызов предназначен только для информационных целей.

Примечание

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

CWnd::OnStyleChanged

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

afx_msg void OnStyleChanged(
    int nStyleType,
    LPSTYLESTRUCT lpStyleStruct);

Параметры

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

  • GWL_EXSTYLE Расширенные стили окна изменились.

  • GWL_STYLE Нерасширенные стили окна изменились.

lpStyleStruct
Указывает на STYLESTRUCT структуру, содержащую новые стили для окна. Приложение может проверять стили, но не может их изменять.

Remarks

Примечание

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

CWnd::OnStyleChanging

Платформа вызывает эту функцию-член, когда SetWindowLong функция собирается изменить один или несколько стилей окна.

afx_msg void OnStyleChanging(
    int nStyleType,
    LPSTYLESTRUCT lpStyleStruct);

Параметры

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

  • GWL_EXSTYLE Расширенные стили окна изменились.

  • GWL_STYLE Нерасширенные стили окна изменились.

lpStyleStruct
Указывает на STYLESTRUCT структуру, содержащую новые стили для окна. Приложение может проверять стили и изменять их.

Remarks

Примечание

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

CWnd::OnSysChar

Платформа вызывает эту функцию члена, если CWnd имеет фокус ввода и WM_SYSKEYUP WM_SYSKEYDOWN переводятся сообщения и.

afx_msg void OnSysChar(
    UINT nChar,
    UINT nRepCnt,
    UINT nFlags);

Параметры

nChar
Задает код ключа ASCII-символа клавиши управления.

nRepCnt
Указывает число повторов (количество повторов нажатия клавиши в результате, когда пользователь удерживает клавишу).

nFlags
nFlags Параметр может иметь следующие значения:

Значение Значение
0—15 Указывает число повторов. Значение — это количество повторений нажатия клавиши в результате нажатия пользователем клавиши.
16—23 Указывает код сканирования. Это значение зависит от изготовителя оборудования (OEM)
24 Указывает, является ли ключ расширенным ключом, таким как правая клавиша ALT и CTRL, отображаемые на расширенной клавиатуре 101 или 102. Значение равно 1, если это расширенный ключ; в противном случае — 0.
25-28 Используется внутри Windows.
29 Указывает код контекста. Значение равно 1, если клавиша ALT удерживается при нажатии клавиши; в противном случае значение равно 0.
30 Указывает предыдущее состояние ключа. Значение равно 1, если ключ не работает до отправки сообщения, или 0, если ключ работает.
31 Задает состояние перехода. Значение равно 1, если ключ освобождается, или 0, если клавиша нажата.

Remarks

Здесь указывается код виртуального ключа для ключа меню Control. (Список стандартных виртуальных клавиш см. в разделе Winuser. h)

Если код контекста равен 0, WM_SYSCHAR может передать сообщение в WM_SYSCHAR TranslateAccelerator функцию Windows, которое будет обрабатывать его так, как если бы оно было обычным ключевым сообщением, а не системным символ-ключом. Это позволяет использовать сочетания клавиш с активным окном, даже если активное окно не имеет фокуса ввода.

Для клавиатуры IBM с улучшенными 101-и 102-клавишами расширенными ключами являются правая клавиша ALT и правые клавиши CTRL в основном разделе клавиатуры. клавиши INS, DEL, ДОМАШНяя, КОНЕЧная страница вверх, PAGE DOWN и стрелка в кластерах слева от цифровой клавиатуры; и косая черта (/) и введите клавиши на цифровой клавиатуре. Некоторые другие клавиатуры могут поддерживать бит расширенного ключа в nFlags .

Примечание

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

CWnd::OnSysColorChange

Платформа вызывает эту функцию-член для всех окон верхнего уровня, когда в параметре системного цвета вносится изменение.

afx_msg void OnSysColorChange();

Remarks

Вызовы Windows OnSysColorChange для любого окна, на которое влияет изменение цвета системы.

Приложения с кистью, использующей существующие системные цвета, должны удалить эти кисти и создать их заново с новыми системными цветами.

CWnd::OnSysCommand

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

afx_msg void OnSysCommand(
    UINT nID,
    LPARAM lParam);

Параметры

nID
Указывает тип запрашиваемой системной команды. Этот параметр может принимать одно из следующих значений:

  • SC_CLOSE Закройте CWnd объект.

  • SC_HOTKEY Активируйте CWnd объект, связанный с заданной приложением горячей клавишей. Слово низкого порядка lParam определяет, какое HWND окно нужно активировать.

  • SC_HSCROLL Прокрутка по горизонтали.

  • SC_KEYMENU Получение меню с помощью нажатия клавиши.

  • SC_MAXIMIZE (или SC_ZOOM ) Разверните CWnd объект.

  • SC_MINIMIZE (или SC_ICON ) Сократите CWnd объект.

  • SC_MOUSEMENU Получение меню с помощью щелчка мышью.

  • SC_MOVE Переместите CWnd объект.

  • SC_NEXTWINDOW Перейти к следующему окну.

  • SC_PREVWINDOW Перейти к предыдущему окну.

  • SC_RESTORE Восстановить окно до нормального расположения и размера.

  • SC_SCREENSAVE Выполняет приложение хранителя экрана, указанное в разделе файла [boot] SYSTEM.INI .

  • SC_SIZE Измените размер CWnd объекта.

  • SC_TASKLIST Выполнение или активация приложения диспетчера задач Windows.

  • SC_VSCROLL Прокрутка по вертикали.

lParam
Если команда меню элемента управления выбрана с мышью, lParam содержит координаты курсора. Слово нижнего порядка содержит координату x, а большое слово содержит координату y. В противном случае этот параметр не используется.

  • SC_HOTKEY Активируйте окно, связанное с заданной приложением горячей клавишей. Слово низкого порядка lParam определяет окно для активации.

  • SC_SCREENSAVE Выполните приложение для сохранения экрана, указанное в разделе "Рабочий стол" панели управления.

Remarks

По умолчанию OnSysCommand выполняет запрос управляющего меню для предопределенных действий, указанных в предыдущей таблице.

В WM_SYSCOMMAND сообщениях все четыре младшие биты nID параметра используются внутри Windows. Когда приложение проверяет значение nID , оно должно объединять значение 0xFFF0 со nID значением, используя оператор побитового и для получения правильного результата.

Пункты меню в меню управления могут быть изменены с помощью функций- GetSystemMenu членов,, AppendMenu InsertMenu и ModifyMenu . Приложения, которые изменяют меню элемента управления, должны обрабатывать WM_SYSCOMMAND сообщения, а все WM_SYSCOMMAND сообщения, не обрабатываемые приложением, должны передаваться в OnSysCommand . Все значения команд, добавленные приложением, должны обрабатываться приложением и не могут быть переданы в OnSysCommand .

Приложение может выполнять любую системную команду в любое время, передавая WM_SYSCOMMAND сообщение в OnSysCommand .

Нажатия клавиш быстрого вызова, определенные для выбора элементов из меню управления, преобразуются в OnSysCommand вызовы; все остальные сочетания клавиш будут переведены в WM_COMMAND сообщения.

Примечание

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

CWnd::OnSysDeadChar

Платформа вызывает эту функцию-член, если CWnd объект имеет фокус ввода при OnSysKeyUp OnSysKeyDown вызове функции-члена или.

afx_msg void OnSysDeadChar(
    UINT nChar,
    UINT nRepCnt,
    UINT nFlags);

Параметры

nChar
Задает значение символа неработающего ключа.

nRepCnt
Указывает число повторов.

nFlags
Указывает код сканирования, код перехода на ключ, предыдущее состояние ключа и код контекста, как показано в следующем списке:

Значение Значение
0-7 Код сканирования (значение, зависящее от изготовителя оборудования). Младший байт для слова высокого порядка.
8 Расширенный ключ, например ключ функции или клавиша на цифровой клавиатуре (1, если это расширенный ключ; в противном случае 0).
9-10 Не используется.
11-12 Используется внутри Windows.
13 Контекстный код (1, если клавиша ALT удерживается при нажатии клавиши; в противном случае — 0).
14 Предыдущее состояние ключа (1, если ключ не работает до вызова, 0, если ключ работает).
15 Состояние перехода (1, если ключ освобождается, 0 при нажатии клавиши).

Remarks

Указывает значение символа для неработающего ключа.

Примечание

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

CWnd::OnSysKeyDown

Если CWnd объект имеет фокус ввода, OnSysKeyDown функция-член вызывается платформой, когда пользователь удерживает нажатой КЛАВИШу Alt, а затем нажимает другой ключ.

afx_msg void OnSysKeyDown(
    UINT nChar,
    UINT nRepCnt,
    UINT nFlags);

Параметры

nChar
Указывает виртуальный код клавиши для нажатия. Список стандартных виртуальных клавиш см. в разделе Winuser. h

nRepCnt
Указывает число повторов.

nFlags
Указывает код сканирования, код перехода на ключ, предыдущее состояние ключа и код контекста, как показано в следующем списке:

Значение Значение
0-7 Код сканирования (значение, зависящее от изготовителя оборудования). Младший байт для слова высокого порядка.
8 Расширенный ключ, например ключ функции или клавиша на цифровой клавиатуре (1, если это расширенный ключ; в противном случае 0).
9-10 Не используется.
11-12 Используется внутри Windows.
13 Код контекста (1, если клавиша ALT удерживается при нажатии клавиши, в противном случае — 0).
14 Предыдущее состояние ключа (1, если ключ не работает до отправки сообщения, 0, если ключ работает).
15 Состояние перехода (1, если ключ освобождается, 0 при нажатии клавиши).

Для OnSysKeyDown вызовов бит перехода на ключ (бит 15) равен 0. Бит контекстного кода (бит 13) имеет значение 1, если клавиша ALT не нажата, пока не клавиша SHIFT. значение 0, если сообщение отправляется в активное окно, так как ни одно окно не имеет фокус ввода.

Remarks

Если ни одно окно в данный момент не имеет фокуса ввода, OnSysKeyDown вызывается функция-член активного окна. CWndОбъект, получающий сообщение, может различать эти контексты путем проверки кода контекста в nFlags .

Если код контекста равен 0, сообщение, WM_SYSKEYDOWN полученное, OnSysKeyDown может быть передано TranslateAccelerator функции Windows, что будет обрабатывать его так, как будто оно было обычным ключевым сообщением вместо сообщения системного ключа. Это позволяет использовать сочетания клавиш с активным окном, даже если активное окно не имеет фокуса ввода.

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

Для клавиатуры IBM с улучшенными 101-и 102-клавишами расширенными ключами являются правая клавиша ALT и правые клавиши CTRL в основном разделе клавиатуры. клавиши INS, Del, Домашняя, Конечная Страница вверх, Page Down и стрелка в кластерах слева от цифровой клавиатуры; и косая черта ( / ) и Ввод ключей на цифровой клавиатуре. Некоторые другие клавиатуры могут поддерживать бит расширенного ключа в nFlags .

Примечание

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

CWnd::OnSysKeyUp

Если CWnd объект имеет фокус, OnSysKeyUp функция-член вызывается платформой, когда пользователь отпускает клавишу, которая была нажата во время удержания клавиши ALT.

afx_msg void OnSysKeyUp(
    UINT nChar,
    UINT nRepCnt,
    UINT nFlags);

Параметры

nChar
Указывает виртуальный код клавиши для нажатия. Список стандартных виртуальных клавиш см. в разделе. Winuser.h

nRepCnt
Указывает число повторов.

nFlags
Указывает код сканирования, код перехода на ключ, предыдущее состояние ключа и код контекста, как показано в следующем списке:

Значение Значение
0-7 Код сканирования (значение, зависящее от изготовителя оборудования). Младший байт для слова высокого порядка.
8 Расширенный ключ, например ключ функции или клавиша на цифровой клавиатуре (1, если это расширенный ключ; в противном случае 0).
9-10 Не используется.
11-12 Используется внутри Windows.
13 Код контекста (1, если клавиша ALT удерживается при нажатии клавиши, в противном случае — 0).
14 Предыдущее состояние ключа (1, если ключ не работает до отправки сообщения, 0, если ключ работает).
15 Состояние перехода (1, если ключ освобождается, 0 при нажатии клавиши).

Для OnSysKeyUp вызовов бит перехода на ключ (бит 15) равен 1. Бит контекстного кода (бит 13) имеет значение 1, если клавиша ALT не нажата, пока не клавиша SHIFT. значение 0, если сообщение отправляется в активное окно, так как ни одно окно не имеет фокус ввода.

Remarks

Если ни одно окно в данный момент не имеет фокуса ввода, OnSysKeyUp вызывается функция-член активного окна. CWndОбъект, который получает вызов, может различать эти контексты путем проверки кода контекста в nFlags .

Если код контекста равен 0, сообщение, WM_SYSKEYUP полученное, OnSysKeyUp может быть передано TranslateAccelerator функции Windows, что будет обрабатывать его так, как будто оно было обычным ключевым сообщением вместо сообщения системного ключа. Это позволяет использовать клавиши быстрого доступа с активным окном, даже если активное окно не имеет фокуса ввода.

Для клавиатуры IBM с улучшенными 101-и 102-клавишами расширенными ключами являются правая клавиша ALT и правые клавиши CTRL в основном разделе клавиатуры. клавиши INS, DEL, ДОМАШНяя, КОНЕЧная страница вверх, PAGE DOWN и стрелка в кластерах слева от цифровой клавиатуры; и косая черта (/) и введите клавиши на цифровой клавиатуре. Некоторые другие клавиатуры могут поддерживать бит расширенного ключа в нфлагс.

Для не-U. S. Улучшенная клавиатура с 102 клавиша, правая клавиша ALT обрабатываются как сочетание клавиш CTRL + ALT. Ниже показана последовательность сообщений и вызовов, которые вызываются, когда пользователь нажимает и отпускает этот ключ:

Последовательность Доступ к функции Сообщение передано
1. WM_KEYDOWN VK_CONTROL
2. WM_KEYDOWN VK_MENU
3. WM_KEYUP VK_CONTROL
4. WM_SYSKEYUP VK_MENU

Примечание

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

CWnd::OnTCard

Платформа вызывает эту функцию члена, когда пользователь нажимает на настраиваемую кнопку.

afx_msg void OnTCard(
    UINT idAction,
    DWORD dwActionData);

Параметры

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

  • IDABORT Пользователь щелкнул настраиваемую кнопку прерывания.

  • IDCANCEL Пользователь щелкнул настраиваемую кнопку отмены.

  • IDCLOSE Пользователь закрыл карточку обучения.

  • IDHELP Пользователь щелкнул настраиваемую кнопку справки Windows.

  • IDIGNORE Пользователь щелкнул кнопку "пропустить", которая является автором.

  • IDOK Пользователь щелкнул настраиваемую кнопку ОК.

  • IDNO Пользователь щелкнул элемент "Автор" без кнопки.

  • IDRETRY Пользователь щелкнул настраиваемую кнопку повтора.

  • HELP_TCARD_DATA Пользователь щелкнул настраиваемую кнопку. dwActionData Параметр содержит длинное целое число, заданное автором справки.

  • HELP_TCARD_NEXT Пользователь щелкнул настраиваемую кнопку Далее.

  • HELP_TCARD_OTHER_CALLER Другое приложение запросило карточки обучения.

  • IDYES Пользователь щелкнул настраиваемую кнопку Да.

dwActionData
Если idAction задано значение HELP_TCARD_DATA , этот параметр представляет собой длинное целое число, заданное автором справки. В противном случае этот параметр равен нулю.

Remarks

Эта функция вызывается, только если приложение инициировало учебную карточку с помощью справки Windows. Приложение инициирует учебную карточку, указывая HELP_TCARD команду в вызове WinHelp функции.

CWnd::OnTimeChange

Платформа вызывает эту функцию-член после изменения системного времени.

afx_msg void OnTimeChange();

Remarks

Любое приложение, которое изменяет системное время, отправляет это сообщение всем окнам верхнего уровня. Чтобы отправить WM_TIMECHANGE сообщение всем окнам верхнего уровня, приложение может использовать SendMessage функцию Windows с hwnd параметром, имеющим значение HWND_BROADCAST .

CWnd::OnTimer

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

afx_msg void OnTimer(UINT_PTR nIDEvent);

Параметры

nIDEvent
Указывает идентификатор таймера.

Remarks

DispatchMessageФункция Windows отправляет сообщение, WM_TIMER Если в очереди сообщений приложения нет других сообщений.

Примечание

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

Пример

См. пример в разделе CWnd::SetTimer .

CWnd::OnToolHitTest

Платформа вызывает эту функцию-член, чтобы определить, находится ли точка в ограничивающем прямоугольнике указанного инструмента.

virtual INT_PTR OnToolHitTest(
    CPoint point,
    TOOLINFO* pTI) const;

Параметры

point
Задает координату x и y курсора. Эти координаты всегда отсчитываются относительно левого верхнего угла окна.

pTI
Указатель на TOOLINFO структуру. По умолчанию устанавливаются следующие значения структуры:

  • hwnd = m_hWnd Обработчик для окна

  • uId = (UINT)hWndChild Обработчик для дочернего окна

  • uFlags |= TTF_IDISHWND маркер средства

  • lpszText = LPSTR_TEXTCALLBACK Указатель на строку, которая должна отображаться в указанном окне

Возвращаемое значение

Если элемент управления ToolTip найден, идентификатор элемента управления Window. Если элемент управления ToolTip не найден,-1.

Remarks

Если точка находится в прямоугольнике, она извлекает сведения о средстве.

Если область, с которой связана подсказка, не является кнопкой, OnToolHitTest устанавливает для флагов структуры значение TTF_NOTBUTTON и TTF_CENTERTIP .

Переопределите OnToolHitTest , чтобы предоставить сведения, отличные от предоставляемых по умолчанию.

TOOLINFOДополнительные сведения о структуре см. в разделе Windows SDK.

CWnd::OnTouchInput

Обработка одного ввода Windows touch.

virtual BOOL OnTouchInput(
    CPoint pt,
    int nInputNumber,
    int nInputsCount,
    PTOUCHINPUT pInput);

Параметры

pt
Точка, в которой затронут экран (в клиентских координатах).

nInputNumber
Число сенсорных входных данных.

nInputsCount
Общее число сенсорных входов.

pInput
Указатель на структуру TOUCHINPUT .

Возвращаемое значение

TRUE значение, если приложение обрабатывает ввод касания Windows; в противном случае — значение FALSE .

Remarks

CWnd::OnTouchInputs

Обрабатывает входные данные из Windows Touch.

virtual BOOL OnTouchInputs(
    UINT nInputsCount,
    PTOUCHINPUT pInputs);

Параметры

nInputsCount
Общее число входов касания Windows.

pInputs
Массив типа TOUCHINPUT.

Возвращаемое значение

TRUE Если приложение обрабатывает входные данные касания Windows; в противном случае — значение FALSE .

Remarks

CWnd::OnUniChar

Платформа вызывает эту функцию-член при нажатии клавиши. То есть текущее окно имеет фокус клавиатуры, а WM_KEYDOWN сообщение преобразуется TranslateMessage функцией.

afx_msg void OnUniChar(
    UINT nChar,
    UINT nRepCnt,
    UINT nFlags);

Параметры

nChar
окне Задает код символа нажатой клавиши.

nRepCnt
окне Указывает число повторов для текущего сообщения. Значение — это число повторных попыток нажатия клавиши в результате, когда пользователь удерживает клавишу. Если нажатие клавиши удерживается достаточно долго, отправляется несколько сообщений. Однако число повторов не является накопительным.

nFlags
окне Флаги, указывающие код сканирования, расширенный ключ, код контекста, состояние предыдущего ключа и состояние перехода, как показано в следующей таблице.

Флаг битов Описание
0-7 Указывает код сканирования. Это значение зависит от изготовителя оборудования (OEM).
8 Задает расширенный ключ, такой как правая клавиша ALT и CTRL, которые отображаются на клавиатуре повышенной 101 или 102. Флаг имеет значение 1, если ключ является расширенным ключом; в противном случае — 0.
9-12 Используется внутри Windows.
13 Указывает код контекста. Флаг имеет значение 1, если клавиша ALT удерживается при нажатии клавиши; в противном случае значение равно 0.
14 — указывает предыдущее состояние ключа. Флаг имеет значение 1, если ключ не работает до отправки сообщения, или значение 0, если ключ работает.
15 Задает состояние перехода. Флаг имеет значение 1, если ключ освобождается, или значение 0, если клавиша нажата.

Remarks

Этот метод получает WM_UNICHAR уведомление, которое описано в Windows SDK. WM_UNICHARСообщение предназначено для отправки или публикации символов Юникода в окнах ANSI. Он эквивалентен WM_CHAR сообщению, но использует формат преобразования Юникод — 32 кодировка (UTF-32), в то время как WM_CHAR сообщение использует UTF-16.

Примечание

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

CWnd::OnUnInitMenuPopup

Платформа вызывает эту функцию-член при удалении раскрывающегося меню или подменю.

afx_msg void OnUnInitMenuPopup(
    CMenu* pPopupMenu,
    UINT nFlags);

Параметры

pMenu
окне Указатель на CMenu объект, представляющий меню или подменю.

nFlags
окне Меню, которое было удалено. В настоящее время это может быть только меню окно, MF_SYSMENU .

Remarks

Этот метод получает WM_UNINITMENUPOPUP уведомление, которое описано в Windows SDK.

Примечание

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

CWnd::OnUpdateUIState

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

afx_msg void OnUpdateUIState(
    UINT nAction,
    UINT nUIElement);

Параметры

nAction
Указывает действие, подлежащее выполнению. Может иметь одно из следующих значений:

  • UIS_CLEAR Элемент состояния пользовательского интерфейса (заданный параметром nUIElement ) должен быть скрытым.

  • UIS_INITIALIZE Элемент состояния пользовательского интерфейса (заданный параметром nUIElement ) должен быть изменен на основе последнего события ввода. Дополнительные сведения см. в подразделе "Примечания" раздела WM_UPDATEISTATE .

  • UIS_SET Элемент состояния пользовательского интерфейса (заданный параметром nUIElement ) должен быть видимым.

nUIElement
Указывает, какие элементы состояния пользовательского интерфейса затрагиваются, или стиль элемента управления. Может иметь одно из следующих значений:

  • UISF_HIDEACCEL Сочетания клавиш.

  • UISF_HIDEFOCUS Индикаторы фокуса.

  • UISF_ACTIVE Windows XP: элемент управления должен быть нарисован в стиле, используемом для активных элементов управления.

Remarks

Эта функция члена эмулирует функциональность WM_UPDATEUISTATE сообщения, как описано в Windows SDK.

CWnd::OnUserChanged

Платформа вызывает этот элемент для всех окон после того, как пользователь выполнил вход или выключен.

afx_msg void OnUserChanged();

Remarks

Этот метод получает WM_USERCHANGED сообщение уведомления, которое описано в Windows SDK. Когда пользователь входит в систему или выключается, операционная система обновляет параметры, относящиеся к пользователю. Система отправляет это сообщение сразу после обновления параметров.

Примечание

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

CWnd::OnVKeyToItem

Если CWnd объект владеет списком со LBS_WANTKEYBOARDINPUT стилем, в поле со списком будет отправлено сообщение WM_VKEYTOITEM в ответ на WM_KEYDOWN сообщение.

afx_msg int OnVKeyToItem(
    UINT nKey,
    CListBox* pListBox,
    UINT nIndex);

Параметры

nKey
Указывает виртуальный код клавиши, нажатой пользователем. Список стандартных виртуальных клавиш см. в разделе. Winuser.h

pListBox
Указывает указатель на поле со списком. Указатель может быть временным. Его не требуется сохранять для дальнейшего использования.

nIndex
Задает текущую точку курсора.

Возвращаемое значение

Указывает действие, выполняемое приложением в ответ на сообщение. Возвращаемое значение, равное-2, указывает, что приложение обработало все аспекты выбора элемента и не требует дальнейших действий, выполняемых списком. Возвращаемое значение, равное-1, указывает, что окно списка должно выполнять действие по умолчанию в ответ на нажатие клавиши. Возвращаемое значение 0 или больше Указывает отсчитываемый от нуля индекс элемента в списке и указывает, что поле списка должно выполнять действие по умолчанию для данного элемента.

Remarks

Эта функция-член вызывается платформой только для списков, имеющих LBS_HASSTRINGS стиль.

Примечание

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

CWnd::OnVScroll

Платформа вызывает эту функцию члена, когда пользователь щелкает вертикальную полосу прокрутки окна.

afx_msg void OnVScroll(
    UINT nSBCode,
    UINT nPos,
    CScrollBar* pScrollBar);

Параметры

nSBCode
Указывает код полосы прокрутки, который указывает на запрос прокрутки пользователя. Возможные значения этого параметра:

  • SB_BOTTOM Прокрутить до нижней границы.

  • SB_ENDSCROLL Завершить прокрутку.

  • SB_LINEDOWN Прокрутить на одну строку вниз.

  • SB_LINEUP Прокрутить на одну строку вверх.

  • SB_PAGEDOWN Прокрутить на одну страницу вниз.

  • SB_PAGEUP Прокрутка на одну страницу вверх.

  • SB_THUMBPOSITION Прокрутите до абсолютной позицией. Текущая заданная позицией предоставляется в nPos .

  • SB_THUMBTRACK Перетащите ползунок полосы прокрутки в указанную точку. Текущая заданная позицией предоставляется в nPos .

  • SB_TOP Прокрутить до верхней границы.

nPos
Содержит текущую точку прокрутки, если код полосы прокрутки имеет значение SB_THUMBPOSITION или SB_THUMBTRACK ; в противном случае не используется. В зависимости от начального диапазона прокрутки nPos может быть отрицательным и при необходимости приводить к типу int .

pScrollBar
Если сообщение с прокруткой поступило из элемента управления полосы прокрутки, содержит указатель на элемент управления. Если пользователь щелкнул полосу прокрутки окна, этот параметр имеет значение NULL . Указатель может быть временным. Его не требуется сохранять для дальнейшего использования.

Remarks

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

Если OnVScroll прокручивает содержимое CWnd объекта, он также должен сбросить расположение поля прокрутки с помощью SetScrollPos функции элемента.

Примечание

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

CWnd::OnVScrollClipboard

OnVScrollClipboardФункция-член владельца буфера обмена вызывается средством просмотра буфера обмена, когда данные в буфере обмена имеют CF_OWNERDISPLAY Формат, а в вертикальной полосе прокрутки окна буфера отображается событие.

afx_msg void OnVScrollClipboard(
    CWnd* pClipAppWnd,
    UINT nSBCode,
    UINT nPos);

Параметры

pClipAppWnd
Указывает указатель на окно средства просмотра буфера обмена. Указатель может быть временным. Его не требуется сохранять для дальнейшего использования.

nSBCode
Задает одно из следующих значений полосы прокрутки:

  • SB_BOTTOM Прокрутить до нижней границы.

  • SB_ENDSCROLL Завершить прокрутку.

  • SB_LINEDOWN Прокрутить на одну строку вниз.

  • SB_LINEUP Прокрутить на одну строку вверх.

  • SB_PAGEDOWN Прокрутить на одну страницу вниз.

  • SB_PAGEUP Прокрутка на одну страницу вверх.

  • SB_THUMBPOSITION Прокрутите до абсолютной позицией. Текущая заданная позицией предоставляется в nPos .

  • SB_TOP Прокрутить до верхней границы.

nPos
Содержит расположение бокса прокрутки, если код полосы прокрутки имеет значение SB_THUMBPOSITION ; в противном случае nPos — не используется.

Remarks

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

Примечание

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

CWnd::OnWindowMaximizedChanged

Платформа вызывает этот элемент, когда текущее окно развернуто, а окно состоит из диспетчер окон рабочего стола (DWM).

afx_msg void OnWindowMaximizedChanged(BOOL bIsMaximized);

Параметры

bIsMaximized
[входные] TRUE значение, если текущее окно развернуто, а FALSE Если нет.

Remarks

Этот метод получает WM_DWMWINDOWMAXIMIZEDCHANGE сообщение уведомления, которое описано в Windows SDK.

Примечание

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

CWnd::OnWindowPosChanged

Платформа вызывает эту функцию-член, когда размер, расположение или Z-порядок изменились в результате вызова SetWindowPos функции-члена или другой функции управления окнами.

afx_msg void OnWindowPosChanged(WINDOWPOS* lpwndpos);

Параметры

lpwndpos
Указывает на WINDOWPOS структуру данных, содержащую сведения о новом размере и положении окна.

Remarks

Реализация по умолчанию отправляет WM_SIZE сообщения и в WM_MOVE окно. Эти сообщения не отправляются, если приложение обрабатывает OnWindowPosChanged вызов, не вызывая его базовый класс. Более эффективно выполнять любые операции перемещения или изменения размера во время вызова метода, OnWindowPosChanged не вызывая его базовый класс.

Примечание

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

CWnd::OnWindowPosChanging

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

afx_msg void OnWindowPosChanging(WINDOWPOS* lpwndpos);

Параметры

lpwndpos
Указывает на WINDOWPOS структуру данных, содержащую сведения о новом размере и положении окна.

Remarks

Приложение может препятствовать изменениям в окне, установив или сняв соответствующие биты в flags члене WINDOWPOS структуры.

Для окна с WS_OVERLAPPED WS_THICKFRAME стилем или реализация по умолчанию отправляет WM_GETMINMAXINFO сообщение в окно. Это делается для проверки нового размера и расположения окна, а также для применения CS_BYTEALIGNCLIENT CS_BYTEALIGN клиентских стилей и. Приложение может переопределить эту функцию, не вызывая ее базовый класс.

Примечание

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

CWnd::OnWinIniChange

Платформа вызывает эту функцию-член после внесения изменений в файл инициализации Windows WIN.INI .

afx_msg void OnWinIniChange(LPCTSTR lpszSection);

Параметры

lpszSection
Указывает на строку, указывающую имя раздела, который был изменен. (Строка не включает квадратные скобки, в которых заключено имя раздела.)

Remarks

SystemParametersInfoФункция Windows вызывается OnWinIniChange после того, как приложение использует функцию для изменения параметра в WIN.INI файле.

Чтобы отправить WM_WININICHANGE сообщение всем окнам верхнего уровня, приложение может использовать SendMessage функцию Windows с hwnd параметром, имеющим значение HWND_BROADCAST .

Если приложение изменяет множество разных разделов WIN.INI одновременно, приложение должно отправить одно WM_WININICHANGE сообщение с параметром lpszSection NULL . В противном случае приложение должно отправить WM_WININICHANGE каждый раз, когда он вносит изменения в WIN.INI .

Если приложение получает OnWinIniChange вызов с lpszSection параметром со значением NULL , приложение должно проверить все разделы в WIN.INI, влияющие на приложение.

Примечание

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

CWnd::OnWndMsg

Эта функция-член вызывается методом WindowProc или вызывается во время отражения сообщения.

virtual BOOL OnWndMsg(
    UINT message,
    WPARAM wParam,
    LPARAM lParam,
    LRESULT* pResult);

Параметры

message
Указывает отправляемое сообщение.

wParam
Указывает дополнительные сведения, зависящие от сообщений.

lParam
Указывает дополнительные сведения, зависящие от сообщений.

pResult
Возвращаемое значение WindowProc . Зависит от сообщения; может быть NULL .

Возвращаемое значение

Значение TRUE, если сообщение было обработано; в противном случае — FALSE.

Remarks

OnWndMsg Определяет тип сообщения и либо вызывает соответствующую функцию платформы (например, OnCommand для WM_COMMAND ), либо находит соответствующее сообщение в схеме сообщений.

Дополнительные сведения о отражении сообщений см. в разделе обработка отраженных сообщений.

CWnd::OnXButtonDblClk

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

afx_msg void OnXButtonDblClk(
    UINT nFlags,
    UINT nButton,
    CPoint point);

Параметры

nFlags
окне Побитовое сочетание (или) флагов, указывающих, какие клавиши-модификаторы нажаты. Например, MK_CONTROL флаг указывает, что нажата клавиша CTRL.

nButton
окне Значение XBUTTON1 , если первая кнопка Microsoft IntelliMouse x дважды нажата, или XBUTTON2, если дважды щелкнуть вторую кнопку x.

point
окне CPoint Объект, указывающий x координаты и y координату курсора относительно левого верхнего угла клиентской области.

Remarks

Этот метод получает WM_XBUTTONDBLCLK уведомление, которое описано в Windows SDK. Если мышь не захвачена, сообщение отправляется в окно под курсором. В противном случае сообщение отправляется в окно, которое захватывает мышь.

nFlags Параметр может быть сочетанием клавиш-модификаторов, перечисленных в следующей таблице. Дополнительные сведения см. в статье о вводес помощью мыши.

Клавиша модификатора Описание
MK_CONTROL Нажата клавиша CTRL.
MK_LBUTTON Нажата левая кнопка мыши.
MK_MBUTTON Нажата средняя кнопка мыши.
MK_RBUTTON Нажата правая кнопка мыши.
MK_SHIFT Нажата клавиша SHIFT.
MK_XBUTTON1 XBUTTON1Нажата кнопка мыши Microsoft IntelliMouse.
MK_XBUTTON2 XBUTTON2Нажата кнопка мыши Microsoft IntelliMouse.

Примечание

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

CWnd::OnXButtonDown

Платформа вызывает эту функцию-член, когда пользователь нажимает XBUTTON1 или XBUTTON2 курсор находится в клиентской области окна.

afx_msg void OnXButtonDown(
    UINT nFlags,
    UINT nButton,
    CPoint point);

Параметры

nFlags
окне Побитовое сочетание (или) флагов, указывающих, какие клавиши-модификаторы нажаты. Например, MK_CONTROL флаг указывает, что нажата клавиша CTRL.

nButton
окне Значение XBUTTON1 , если была нажата первая кнопка Microsoft IntelliMouse x, или XBUTTON2 Если была нажата вторая кнопка x.

point
окне CPoint Объект, указывающий x координаты и y координату курсора относительно левого верхнего угла клиентской области.

Remarks

Этот метод получает WM_XBUTTONDOWN уведомление, которое описано в Windows SDK. Если мышь не захвачена, сообщение отправляется в окно под курсором. В противном случае сообщение отправляется в окно, которое захватывает мышь.

nFlags Параметр может быть сочетанием клавиш-модификаторов, перечисленных в следующей таблице. Дополнительные сведения см. в статье о вводес помощью мыши.

Клавиша модификатора Описание
MK_CONTROL Нажата клавиша CTRL.
MK_LBUTTON Нажата левая кнопка мыши.
MK_MBUTTON Нажата средняя кнопка мыши.
MK_RBUTTON Нажата правая кнопка мыши.
MK_SHIFT Нажата клавиша SHIFT.
MK_XBUTTON1 XBUTTON1Нажата кнопка мыши Microsoft IntelliMouse.
MK_XBUTTON2 XBUTTON2Нажата кнопка мыши Microsoft IntelliMouse.

Примечание

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

CWnd::OnXButtonUp

Платформа вызывает эту функцию-член, когда пользователь отпускает XBUTTON1 или XBUTTON2 пока курсор находится в клиентской области окна.

afx_msg void OnXButtonUp(
    UINT nFlags,
    UINT nButton,
    CPoint point);

Параметры

nFlags
окне Побитовое сочетание (или) флагов, указывающих, какие клавиши-модификаторы нажаты. Например, MK_CONTROL флаг указывает, что нажата клавиша CTRL.

nButton
окне Значение XBUTTON1 , если была нажата первая кнопка Microsoft IntelliMouse x, или XBUTTON2 Если дважды щелкнули вторую кнопку x.

point
окне CPoint Объект, указывающий x координаты и y координату курсора относительно левого верхнего угла клиентской области.

Remarks

Этот метод получает WM_XBUTTONUP уведомление, которое описано в Windows SDK. Если мышь не захвачена, сообщение отправляется в окно под курсором. В противном случае сообщение отправляется в окно, которое захватывает мышь.

nFlags Параметр может быть сочетанием клавиш-модификаторов, перечисленных в следующей таблице. Дополнительные сведения см. в статье о вводес помощью мыши.

Клавиша модификатора Описание
MK_CONTROL Нажата клавиша CTRL.
MK_LBUTTON Нажата левая кнопка мыши.
MK_MBUTTON Нажата средняя кнопка мыши.
MK_RBUTTON Нажата правая кнопка мыши.
MK_SHIFT Нажата клавиша SHIFT.
MK_XBUTTON1 XBUTTON1Нажата кнопка мыши Microsoft IntelliMouse.
MK_XBUTTON2 XBUTTON2Нажата кнопка мыши Microsoft IntelliMouse.

Примечание

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

CWnd::OpenClipboard

Открывает буфер обмена.

BOOL OpenClipboard();

Возвращаемое значение

Ненулевое значение, если буфер обмена открыт через CWnd , или 0, если буфер обмена открыт другим приложением или окном.

Remarks

Другие приложения не смогут изменять буфер обмена, пока не будет CloseClipboard вызвана функция Windows.

Текущий CWnd объект не станет владельцем буфера обмена, пока не будет EmptyClipboard вызвана функция Windows.

Пример

//handler for Edit | Copy menu
void CMdiView::OnEditCopy()
{
   if (!OpenClipboard())
   {
      AfxMessageBox(_T("Cannot open the Clipboard"));
      return;
   }
   // Remove the current Clipboard contents
   if (!EmptyClipboard())
   {
      AfxMessageBox(_T("Cannot empty the Clipboard"));
      return;
   }

   // Get the currently selected data, hData handle to
   // global memory of data
   CString str;
   m_Edit.GetWindowText(str);
   size_t cbStr = (str.GetLength() + 1) * sizeof(TCHAR);
   HGLOBAL hData = GlobalAlloc(GMEM_MOVEABLE, cbStr);
   memcpy_s(GlobalLock(hData), cbStr, str.LockBuffer(), cbStr);
   GlobalUnlock(hData);
   str.UnlockBuffer();

   // For the appropriate data formats...
   UINT uiFormat = (sizeof(TCHAR) == sizeof(WCHAR)) ? CF_UNICODETEXT : CF_TEXT;
   if (::SetClipboardData(uiFormat, hData) == NULL)
   {
      AfxMessageBox(_T("Unable to set Clipboard data"));
      CloseClipboard();
      return;
   }

   CloseClipboard();
}

CWnd::operator HWND

Этот оператор используется для получения маркера CWnd объекта.

operator HWND() const;

CWnd::operator !=

Сравнивает два CWnd объекта, чтобы определить, не равны ли они m_hWnd .

BOOL operator!=(const CWnd& wnd) const;

Параметры

wnd
Ссылка на объект CWnd.

Возвращаемое значение

Ненулевое значение, если равно; в противном случае — 0.

CWnd::operator ==

Сравнивает два CWnd объекта, чтобы определить, совпадают ли они m_hWnd .

BOOL operator==(const CWnd& wnd) const;

Параметры

wnd
Ссылка на объект CWnd.

Возвращаемое значение

Ненулевое значение, если равно; в противном случае — 0.

CWnd::PaintWindowlessControls

Рисует неоконные элементы управления в контейнере элемента управления.

BOOL PaintWindowlessControls(CDC* pDC);

Параметры

pDC
Контекст устройства, в котором нарисованы элементы управления без окон.

Возвращаемое значение

Возвращает TRUE , если имеется контейнер элемента управления и элементы управления без окон успешно рисуются, в противном случае — FALSE .

CWnd::PostMessage

Помещает сообщение в очередь сообщений окна, а затем возвращается, не дожидаясь обработки сообщения соответствующим окном.

BOOL PostMessage(
    UINT message,
    WPARAM wParam = 0,
    LPARAM lParam = 0);

Параметры

message
Указывает сообщение, которое необходимо опубликовать.

wParam
Указывает дополнительные сведения о сообщении. Содержимое этого параметра зависит от отправляемого сообщения.

lParam
Указывает дополнительные сведения о сообщении. Содержимое этого параметра зависит от отправляемого сообщения.

Возвращаемое значение

Ненулевое значение, если сообщение отправлено; в противном случае — 0.

Remarks

Сообщения в очереди сообщений извлекаются вызовами GetMessage PeekMessage функции или Windows.

Функцию Windows PostMessage можно использовать для доступа к другому приложению.

Пример

См. пример для AfxGetMainWnd .

CWnd::PostNcDestroy

Вызывается функцией члена по умолчанию OnNcDestroy после уничтожения окна.

virtual void PostNcDestroy();

Remarks

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

CWnd::PreCreateWindow

Вызывается платформой перед созданием окна Windows, присоединенного к этому CWnd объекту.

virtual BOOL PreCreateWindow(CREATESTRUCT& cs);

Параметры

cs
CREATESTRUCTСтруктура.

Возвращаемое значение

Ненулевое значение, если создание окна должно быть продолжено; значение 0 указывает на сбой при создании.

Remarks

Предупреждение

CWnd::PreCreateWindow Теперь назначает элемент hMenu cs в this указателе, если меню имеет значение NULL , а стиль содержит WS_CHILD . Для правильной работы убедитесь, что у элемента управления диалогового окна есть идентификатор, который не является NULL .

Это изменение устраняет сбой в сценариях управляемого и машинного взаимодействия. TRACEОператор в CWnd::Create предупреждает разработчика о проблеме.

Никогда не вызывайте эту функцию напрямую.

Реализация по умолчанию этой функции проверяет NULL имя класса окна и подставляет подходящее значение по умолчанию. Переопределите эту функцию-член, чтобы изменить CREATESTRUCT структуру перед созданием окна.

Каждый класс, производный от, CWnd добавляет свои собственные функции к переопределению PreCreateWindow . Эти производные от PreCreateWindow не задокументированы. Чтобы определить стили, подходящие для каждого класса и взаимозависимости между этими стилями, можно изучить исходный код MFC для базового класса приложения. При выборе переопределения PreCreateWindow, можно определить, предоставляют ли стили, используемые в базовом классе приложения, необходимые функции, используя сведения, собранные из исходного кода MFC.

Дополнительные сведения об изменении стилей окна см. в разделе изменение стилей окна, созданного с помощью MFC.

Пример

// alter the styles of the mdi frame window
BOOL CMdiChildFrame::PreCreateWindow(CREATESTRUCT &cs)
{
   // Create a window without min/max buttons or sizable border
   cs.style |= WS_OVERLAPPED | WS_SYSMENU | WS_BORDER;

   // Size the window to 1/3 screen size and center it
   cs.cy = ::GetSystemMetrics(SM_CYSCREEN) / 3;
   cs.cx = ::GetSystemMetrics(SM_CXSCREEN) / 3;
   cs.y = ((cs.cy * 3) - cs.cy) / 2;
   cs.x = ((cs.cx * 3) - cs.cx) / 2;

   return CMDIChildWnd::PreCreateWindow(cs);
}

CWnd::PreSubclassWindow

Эта функция-член вызывается платформой, чтобы обеспечить выполнение других необходимых подклассов до того, как окно будет подклассом.

virtual void PreSubclassWindow();

Remarks

Переопределение этой функции члена позволяет создавать динамические подклассы элементов управления. Это расширенный переопределяемый объект.

CWnd::PreTranslateMessage

Используется классом CWinApp для преобразования оконных сообщений до их отправки в TranslateMessage DispatchMessage функции и Windows.

virtual BOOL PreTranslateMessage(MSG* pMsg);

Параметры

pMsg
Указывает на MSG структуру, содержащую сообщение для обработки.

Возвращаемое значение

Ненулевое значение, если сообщение было переведено и не должно быть отправлено. 0, если сообщение не было переведено и должно быть отправлено.

CWnd::Print

Вызовите эту функцию-член для отрисовки текущего окна в указанном контексте устройства, который чаще всего находится в контексте устройства печати.

void Print(
    CDC* pDC,
    DWORD dwFlags) const;

Параметры

pDC
Указатель на контекст устройства.

dwFlags
Задает параметры рисования. Этот параметр может быть одним или несколькими из следующих флагов:

  • PRF_CHECKVISIBLE Нарисуйте окно только в том случае, если оно видимо.

  • PRF_CHILDREN Нарисуйте все видимые дочерние окна.

  • PRF_CLIENT Нарисуйте клиентскую область окна.

  • PRF_ERASEBKGND Очистка фона перед рисованием окна.

  • PRF_NONCLIENT Нарисуйте неклиентскую область окна.

  • PRF_OWNED Рисование всех собственных окон.

Remarks

CWnd::DefWindowProc обрабатывает это сообщение в зависимости от того, какой параметр рисования указан:

  • Если PRF_CHECKVISIBLE указан параметр и окно не отображается, ничего делать не нужно.

  • Если PRF_NONCLIENT указан, нарисуйте неклиентскую область в заданном контексте устройства.

  • Если PRF_ERASEBKGND указан параметр, отправьте окну WM_ERASEBKGND сообщение.

  • Если PRF_CLIENT указан параметр, отправьте окну WM_PRINTCLIENT сообщение.

  • Если PRF_CHILDREN задано значение, отправка каждого видимого дочернего окна в WM_PRINT сообщение.

  • Если PRF_OWNED задано значение, отправьте каждому видимому принадлежащему окну WM_PRINT сообщение.

CWnd::PrintClient

Вызовите эту функцию-член, чтобы нарисовать любое окно в указанном контексте устройства (обычно это контекст устройства печати).

void PrintClient(
    CDC* pDC,
    DWORD dwFlags) const;

Параметры

pDC
Указатель на контекст устройства.

dwFlags
Задает параметры рисования. Этот параметр может быть одним или несколькими из следующих флагов:

  • PRF_CHECKVISIBLE Нарисуйте окно только в том случае, если оно видимо.

  • PRF_CHILDREN Нарисуйте все видимые дочерние окна.

  • PRF_CLIENT Нарисуйте клиентскую область окна.

  • PRF_ERASEBKGND Очистка фона перед рисованием окна.

  • PRF_NONCLIENT Нарисуйте неклиентскую область окна.

  • PRF_OWNED Рисование всех собственных окон.

CWnd::PrintWindow

Копирует визуальное окно в указанный контекст устройства (обычно принтера).

BOOL PrintWindow(
    CDC* pDC,
    UINT nFlags) const;

Параметры

pDC
Указатель на контекст устройства, в который будет выполняться печать.

nFlags
Задает параметры рисования. Список возможных значений см. в разделе PrintWindow .

Возвращаемое значение

Ненулевое значение, если функция выполнена. в противном случае — 0.

Remarks

Эта функция члена эмулирует функциональность функции PrintWindow , как описано в Windows SDK.

CWnd::RedrawWindow

Обновляет указанный прямоугольник или регион в клиентской области данного окна.

BOOL RedrawWindow(
    LPCRECT lpRectUpdate = NULL,
    CRgn* prgnUpdate = NULL,
    UINT flags = RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE);

Параметры

lpRectUpdate
Указывает на RECT структуру , содержащую координаты прямоугольника обновления. Этот параметр игнорируется prgnUpdate , если содержит допустимый маркер области.

prgnUpdate
Определяет регион обновления. Если обе prgnUpdate и lpRectUpdate являются NULL , вся клиентская область добавляется в регион обновления.

flags
Для аннулирования окна используются следующие флаги:

  • RDW_ERASE Заставляет окно получить WM_ERASEBKGND сообщение при перерисовки окна. RDW_INVALIDATEНеобходимо также указать флаг; в противном случае RDW_ERASE не оказывает никакого влияния.

  • RDW_FRAME Вызывает любую часть неклиентской области окна, которая пересекает область обновления, чтобы получить WM_NCPAINT сообщение. RDW_INVALIDATEНеобходимо также указать флаг; в противном случае RDW_FRAME он не будет работать.

  • RDW_INTERNALPAINT Указывает, что WM_PAINT сообщение будет отправлено в окно независимо от того, содержит ли окно недопустимый регион.

  • RDW_INVALIDATE Делает недействительным lpRectUpdate или prgnUpdate (только один может быть не NULL ). Если оба значения равны NULL , все окно становится недействительным.

Для проверки окна используются следующие флаги:

  • RDW_NOERASE Подавляет все ожидающие WM_ERASEBKGND сообщения.

  • RDW_NOFRAME Подавляет все ожидающие WM_NCPAINT сообщения. Этот флаг должен использоваться с RDW_VALIDATE и обычно используется с RDW_NOCHILDREN . Этот параметр следует использовать с осторожностью, так как он может препятствовать правильной прорисовке частей окна.

  • RDW_NOINTERNALPAINT Подавляет все ожидающие внутренние WM_PAINT сообщения. Этот флаг не влияет на WM_PAINT сообщения, полученные из недопустимых областей.

  • RDW_VALIDATE Проверяет lpRectUpdate или prgnUpdate (только один из них может быть недоступен NULL ). Если оба значения равны NULL , проверяется все окно. Этот флаг не влияет на внутренние WM_PAINT сообщения.

Следующие флаги контролируют, когда происходит перерисовка. Рисование не выполняется RedrawWindow функцией, если не указан один из этих битов.

  • RDW_ERASENOW Заставляет затронутые окна (как указано RDW_ALLCHILDREN RDW_NOCHILDREN флагами и) получить WM_NCPAINT и WM_ERASEBKGND сообщения, если это необходимо, перед возвратом функции. WM_PAINT сообщения откладываются.

  • RDW_UPDATENOW Заставляет затронутые окна (как указано RDW_ALLCHILDREN RDW_NOCHILDREN флагами и) получить WM_NCPAINT сообщения, WM_ERASEBKGND и WM_PAINT , если это необходимо, перед возвратом функции.

По умолчанию окна, затрагиваемые RedrawWindow функцией, зависят от того, имеет ли указанное окно WS_CLIPCHILDREN стиль. Дочерние окна WS_CLIPCHILDREN Windows не затрагиваются. Однако эти окна, которые не являются WS_CLIPCHILDREN окнами, рекурсивно проверяются или становятся недействительными до тех пор, пока не WS_CLIPCHILDREN будет обнаружено окно. Следующие флаги определяют, какие окна зависят от RedrawWindow функции:

  • RDW_ALLCHILDREN Включает дочерние окна, если таковые имеются, в операции перерисовки.

  • RDW_NOCHILDREN Исключает дочерние окна, если таковые имеются, из операции перерисовки.

Возвращаемое значение

Ненулевое значение, если окно было успешно перерисовано; в противном случае — 0.

Remarks

Если RedrawWindow функция-член используется для аннулирования части окна рабочего стола, это окно не получает WM_PAINT сообщение. Для перерисовки рабочего стола приложение должно использовать CWnd::ValidateRgn , CWnd::InvalidateRgn , CWnd::UpdateWindow или RedrawWindow

CWnd::ReflectChildNotify

Эта функция сообщения вызывается платформой из OnChildNotify .

BOOL ReflectChildNotify(
    UINT message,
    WPARAM wParam,
    LPARAM lParam,
    LRESULT* pResult);

Параметры

message
Указывает сообщение, которое должно быть отражено.

wParam
Указывает дополнительные сведения, зависящие от сообщений.

lParam
Указывает дополнительные сведения, зависящие от сообщений.

pResult
Результат, созданный дочерним окном для возврата родительским окном. Может иметь значение NULL.

Возвращаемое значение

TRUE значение, если сообщение было отражено; в противном случае — значение FALSE .

Remarks

Это вспомогательная функция, которая отражает message ее источник.

Отраженные сообщения отправляются непосредственно в CWnd::OnWndMsg или CCmdTarget::OnCmdMsg .

Дополнительные сведения о отражении сообщений см. в разделе обработка отраженных сообщений.

CWnd::ReflectLastMsg

Эта функция-член вызывается платформой для отражения последнего сообщения в дочернее окно.

static BOOL PASCAL ReflectLastMsg(
    HWND hWndChild,
    LRESULT* pResult = NULL);

Параметры

hWndChild
Маркер дочернего окна.

pResult
Результат, созданный дочерним окном для возврата родительским окном. Может иметь значение NULL.

Возвращаемое значение

Ненулевое значение, если сообщение было обработано; в противном случае — 0.

Remarks

Эта функция-член вызывается, SendChildNotifyLastMsg Если окно, идентифицируемое, hWndChild является ЭЛЕМЕНТОМ управления OLE или окном в постоянной карте.

Дополнительные сведения о отражении сообщений см. в разделе обработка отраженных сообщений.

CWnd::ReleaseDC

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

int ReleaseDC(CDC* pDC);

Параметры

pDC
Определяет контекст устройства для освобождения.

Возвращаемое значение

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Remarks

Результат ReleaseDC функции-члена зависит от типа контекста устройства.

Приложение должно вызывать ReleaseDC функцию члена для каждого вызова GetWindowDC функции члена и для каждого вызова GetDC функции члена.

CWnd::RepositionBars

Вызывается для перемещения и изменения размера панелей элементов управления в клиентской области окна.

void RepositionBars(UINT nIDFirst,
    UINT nIDLast,
    UINT nIDLeftOver,
    UINT nFlag = reposDefault,
    LPRECT lpRectParam = NULL,
    LPCRECT lpRectClient = NULL,
    BOOL bStretch = TRUE) ;

Параметры

nIDFirst
Идентификатор первого элемента в диапазоне панелей элементов управления для изменения расположения и размера.

nIDLast
Идентификатор последнего в диапазоне панелей элементов управления для изменения расположения и размера.

nIDLeftOver
Указывает идентификатор области, которая заполняет оставшуюся часть клиентской области.

nFlag
Может иметь одно из следующих значений:

  • CWnd::reposDefault Выполняет компоновку панелей элементов управления. lpRectParam не используется и может быть NULL .

  • CWnd::reposQuery Макет панелей элементов управления не выполняется. Вместо этого lpRectParam инициализируется размером клиентской области, как если бы макет был выполнен на самом деле.

  • CWnd::reposExtra Добавляет значения lpRectParam в клиентскую область nIDLast , а также выполняет макет.

lpRectParam
Указывает на RECT структуру; использование, зависящее от значения nFlag .

lpRectClient
Указывает на RECT структуру , содержащую доступную клиентскую область. Если NULL значение равно, то будет использоваться клиентская область окна.

bStretch
Указывает, следует ли растянуть линию до размера рамки.

Remarks

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

CWnd::RunModalLoop

Вызывайте эту функцию члена для получения, преобразования или диспетчеризации сообщений до ContinueModal возврата FALSE .

int RunModalLoop(DWORD dwFlags = 0);

Параметры

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

  • MLF_NOIDLEMSG Не отправляйте WM_ENTERIDLE сообщения родительскому элементу.

  • MLF_NOKICKIDLE Не отправляйте WM_KICKIDLE сообщения в окно.

  • MLF_SHOWONIDLE Отображение окна, когда очередь сообщений переходит в состояние бездействия.

Возвращаемое значение

Задает значение nResult параметра, переданного EndModalLoop функции-члену, которое затем используется для завершения модального цикла.

Remarks

По умолчанию ContinueModal возвращает FALSE после EndModalLoop вызова метода. Возвращает значение, указанное как nResult EndModalLoop .

CWnd::ScreenToClient

Преобразует экранные координаты указанной точки или прямоугольника в клиентские координаты.

void ScreenToClient(LPPOINT lpPoint) const;  void ScreenToClient(LPRECT lpRect) const;

Параметры

lpPoint
Указывает на CPoint объект или POINT структуру , содержащую экранные координаты для преобразования.

lpRect
Указывает на CRect объект или RECT структуру , содержащую экранные координаты для преобразования.

Remarks

ScreenToClientФункция члена заменяет экранные координаты, заданные в lpPoint или lpRect с помощью клиентских координат. Новые координаты задаются относительно левого верхнего угла CWnd клиентской области.

Пример

См. пример для CListCtrl::GetItemRect .

CWnd::ScrollWindow

Прокручивает содержимое клиентской области текущего CWnd объекта.

void ScrollWindow(
    int xAmount,
    int yAmount,
    LPCRECT lpRect = NULL,
    LPCRECT lpClipRect = NULL);

Параметры

xAmount
Задает величину (в единицах устройства) горизонтальной прокрутки. Этот параметр должен быть отрицательным значением для прокрутки влево.

yAmount
Задает величину (в единицах устройства) вертикальной прокрутки. Этот параметр должен иметь отрицательное значение для прокрутки вверх.

lpRect
Указывает на CRect объект или RECT структуру , указывающую часть клиентской области для прокрутки. Если lpRect имеет значение NULL , вся клиентская область прокручивается. Курсор перемещается, если прямоугольник курсора пересекается с прямоугольником прокрутки.

lpClipRect
Указывает на CRect объект или RECT структуру, указывающую прямоугольник обрезки для прокрутки. Прокручиваться только биты внутри этого прямоугольника. Биты за пределами этого прямоугольника не затрагиваются, даже если они находятся в lpRect прямоугольнике. Если lpClipRect параметр имеет значение NULL , обрезка для прямоугольника прокрутки не выполняется.

Remarks

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

Область, обнаруженная ScrollWindow функцией-членом, не перерисовывается, но объединяется с CWnd областью обновления текущего объекта. В конечном итоге приложение будет получать WM_PAINT сообщение о том, что регион нуждается в перерисовки. Чтобы обновить необнаруженную область одновременно с прокруткой, вызовите UpdateWindow функцию-член сразу же после вызова метода ScrollWindow .

Если lpRect имеет значение NULL , позиции всех дочерних окон в окне смещаются на величину, указанную в параметре xAmount и yAmount , а все недопустимые (нерисованные) области в CWnd также имеют смещение. ScrollWindow выполняется быстрее, если lpRect имеет NULL .

Если lpRect параметр не равен NULL , позиции дочерних окон не изменяются, а недопустимые области в CWnd не являются смещениями. Чтобы избежать проблем с обновлением lpRect NULL , вызовите UpdateWindow функцию-член для перерисовки CWnd перед вызовом метода ScrollWindow .

CWnd::ScrollWindowEx

Прокручивает содержимое клиентской области окна.

int ScrollWindowEx(
    int dx,
    int dy,
    LPCRECT lpRectScroll,
    LPCRECT lpRectClip,
    CRgn* prgnUpdate,
    LPRECT lpRectUpdate,
    UINT flags);

Параметры

dx
Задает величину (в единицах устройства) горизонтальной прокрутки. Этот параметр должен иметь отрицательное значение для прокрутки влево.

dy
Задает величину (в единицах устройства) вертикальной прокрутки. Этот параметр должен иметь отрицательное значение для прокрутки вверх.

lpRectScroll
Указывает на RECT структуру , указывающую часть клиентской области для прокрутки. Если этот параметр имеет значение NULL , вся клиентская область прокручивается.

lpRectClip
Указывает на RECT структуру, указывающую прямоугольник обрезки для прокрутки. Эта структура имеет приоритет над прямоугольником, на который указывает lpRectScroll . Прокручиваться только биты внутри этого прямоугольника. Биты за пределами этого прямоугольника не затрагиваются, даже если они находятся в lpRectScroll прямоугольнике. Если этот параметр имеет значение NULL , то для прямоугольника прокрутки не выполняется обрезка.

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

lpRectUpdate
Указывает на RECT структуру, которая получит границы прямоугольника, недействительные при прокрутке. Этот параметр может иметь значение NULL.

flags
Может иметь одно из следующих значений:

  • SW_ERASE При указании с параметр SW_INVALIDATE удаляет новый недействительный регион, отправляя WM_ERASEBKGND сообщение в окно.

  • SW_INVALIDATE Делает недействительным область, идентифицированную prgnUpdate после прокрутки.

  • SW_SCROLLCHILDREN Прокручивает все дочерние окна, пересекающие прямоугольник, на который указывает lpRectScroll число пикселей, заданных в dx и dy . Windows отправляет WM_MOVE сообщение всем перепересекающимся дочерним окнам lpRectScroll , даже если они не перемещаются. Курсор перемещается при прокрутке дочернего окна, и прямоугольник курсора пересекается с прямоугольником прокрутки.

Возвращаемое значение

Возвращаемое значение — SIMPLEREGION (прямоугольный недействительный регион), (непрямоугольный недействительный регион, COMPLEXREGION перекрывающиеся прямоугольники) или NULLREGION (без недействительного региона), если функция выполнена успешно; в противном случае возвращается значение ERROR .

Remarks

Эта функция похожа на ScrollWindow функцию с некоторыми дополнительными функциями.

Если SW_INVALIDATE и SW_ERASE не указаны, функция- ScrollWindowEx член не делает недействительной область, которая прокручивается от. Если установлен любой из этих флагов, ScrollWindowEx Эта область становится недействительной. Область не обновляется, пока приложение не вызывает функцию- UpdateWindow член, вызывает RedrawWindow функцию-член (указав RDW_UPDATENOW или RDW_ERASENOW ) или получает WM_PAINT сообщение из очереди приложения.

Если окно имеет WS_CLIPCHILDREN стиль, возвращаемые области задаются prgnUpdate и lpRectUpdate представляют общую область прокручиваемого окна, которую необходимо обновить, включая все области дочерних окон, требующие обновления.

Если SW_SCROLLCHILDREN указан флаг, Windows не будет правильно обновлять экран, если часть дочернего окна прокручивается. Часть прокручиваемого дочернего окна, которая находится за пределами исходного прямоугольника, не будет стерта и не будет перерисована должным образом в новом месте назначения. Используйте DeferWindowPos функцию Windows для перемещения дочерних окон, которые полностью находятся внутри lpRectScroll прямоугольника. Курсор перемещается, если установлен SW_SCROLLCHILDREN флаг, а прямоугольник курсора пересекается с прямоугольником прокрутки.

Все координаты ввода и вывода (для lpRectScroll , lpRectClip , lpRectUpdate и prgnUpdate ) считаются в клиентских координатах независимо от того, имеет ли окно CS_OWNDC CS_CLASSDC стиль класса или. LPtoDP DPtoLP При необходимости используйте функции и Windows для преобразования в логические координаты и обратно.

CWnd::SendChildNotifyLastMsg

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

BOOL SendChildNotifyLastMsg(LRESULT* pResult = NULL);

Параметры

pResult
Результат, созданный дочерним окном для возврата родительским окном.

Возвращаемое значение

Ненулевое значение, если дочернее окно обработало сообщение, отправленное его родительскому окну; в противном случае — 0.

Remarks

SendChildNotifyLastMsg Отправка текущего сообщения в источник, если это сообщение, которое отражается.

Дополнительные сведения о отражении сообщений см. в разделе обработка отраженных сообщений.

CWnd::SendDlgItemMessage

Отправляет сообщение элементу управления.

LRESULT SendDlgItemMessage(
    int nID,
    UINT message,
    WPARAM wParam = 0,
    LPARAM lParam = 0);

Параметры

nID
Задает идентификатор элемента управления диалогового окна, который получит сообщение.

message
Указывает отправляемое сообщение.

wParam
Указывает дополнительные сведения, зависящие от сообщений.

lParam
Указывает дополнительные сведения, зависящие от сообщений.

Возвращаемое значение

Указывает значение, возвращаемое процедурой окна элемента управления, или 0, если элемент управления не найден.

Remarks

SendDlgItemMessageФункция – член не возвращает значение, пока сообщение не будет обработано.

Использование аналогично получению SendDlgItemMessage CWnd * в заданный элемент управления и вызову SendMessage функции-члена.

Пример

void CMyDlg::SetSpinRange()
{
   //set the min and max range of the up/down or spin control
   SendDlgItemMessage(IDC_SPIN1, UDM_SETRANGE, 0, (LPARAM)MAKELONG(8, 1));
}

CWnd::SendMessage

Отправляет указанное сообщение в это окно.

LRESULT SendMessage(
    UINT message,
    WPARAM wParam = 0,
    LPARAM lParam = 0);

Параметры

message
Указывает отправляемое сообщение.

wParam
Указывает дополнительные сведения, зависящие от сообщений.

lParam
Указывает дополнительные сведения, зависящие от сообщений.

Возвращаемое значение

Результат обработки сообщения; его значение зависит от отправленного сообщения.

Remarks

SendMessageФункция члена вызывает процедуру окна напрямую и не возвращает значение до тех пор, пока эта процедура окна не обработала сообщение. Это отличается от PostMessage функции-члена, которая помещает сообщение в очередь сообщений окна и немедленно возвращает результат.

Пример

void CAboutDlg::OnPaint()
{
   // This code, normally emitted by the Application Wizard for a dialog-
   // based project for the dialog's WM_PAINT handler, runs only if the
   // window is iconic. The window erases the icon's area, then
   // paints the icon referenced by m_hIcon.
   if (IsIconic())
   {
      CPaintDC dc(this); // device context for painting

      SendMessage(WM_ICONERASEBKGND, (WPARAM)dc.GetSafeHdc(), 0);

      // Center icon in client rectangle
      int cxIcon = GetSystemMetrics(SM_CXICON);
      int cyIcon = GetSystemMetrics(SM_CYICON);
      CRect rect;
      GetClientRect(&rect);
      int x = (rect.Width() - cxIcon + 1) / 2;
      int y = (rect.Height() - cyIcon + 1) / 2;

      // Draw the icon
      dc.DrawIcon(x, y, m_hIcon);
   }
   else
   {
      CDialog::OnPaint();
   }
}

CWnd::SendMessageToDescendants

Вызовите эту функцию-член, чтобы отправить указанное сообщение Windows всем окнам-потомкам.

void SendMessageToDescendants(
    UINT message,
    WPARAM wParam = 0,
    LPARAM lParam = 0,
    BOOL bDeep = TRUE,
    BOOL bOnlyPerm = FALSE);

Параметры

message
Указывает отправляемое сообщение.

wParam
Указывает дополнительные сведения, зависящие от сообщений.

lParam
Указывает дополнительные сведения, зависящие от сообщений.

bDeep
Задает уровень поиска. При TRUE рекурсивном поиске всех дочерних элементов; значение, если выполняется FALSE Поиск только непосредственных дочерних элементов.

bOnlyPerm
Указывает, будет ли сообщение получено временными окнами. Если значение равно TRUE , то временные окна могут получить сообщение FALSE . Если же сообщение будет получено только из постоянных окон. Дополнительные сведения о временных окнах см. в техническом примечании 3.

Remarks

Если bDeep параметр имеет значение FALSE , сообщение отправляется непосредственно в непосредственные дочерние элементы окна; в противном случае сообщение отправляется всем окнам-потомкам.

Если bDeep и bOnlyPerm являются TRUE , поиск продолжится под временными окнами. В этом случае сообщение появляется только в постоянных окнах Windows. Если bDeep имеет значение FALSE , сообщение отправляется только в непосредственные дочерние элементы окна.

Пример

// The following code fragment is from CMyDlg::OnInitDialog
// CMyDlg is derived from CDialog.

// change font of child controls of a dialog
LOGFONT lf = {0};
// redraw of child controls not needed in OnInitDialog
// since controls aren't drawn yet.
short int fRedraw = FALSE;

lf.lfHeight = 15; // Request a 15-pixel-high font

// with face name "Arial".
wcscpy_s(lf.lfFaceName, LF_FACESIZE, _T("Arial"));

m_font.CreateFontIndirect(&lf); // Create the font.

SendMessageToDescendants(WM_SETFONT,
                         (WPARAM)m_font.m_hObject, //handle to font
                         MAKELONG((WORD)fRedraw, 0),
                         FALSE); // send to all descendants(TRUE) or
                                 // just children of *this (FALSE)

CWnd::SendNotifyMessage

Отправляет указанное сообщение в окно.

BOOL SendNotifyMessage(
    UINT message,
    WPARAM wParam,
    LPARAM lParam);

Параметры

message
Указывает отправляемое сообщение.

wParam
Указывает дополнительные сведения, зависящие от сообщений.

lParam
Указывает дополнительные сведения, зависящие от сообщений.

Возвращаемое значение

Ненулевое значение, если функция выполнена успешно; в противном случае — 0.

Remarks

Если окно было создано вызывающим потоком, SendNotifyMessage вызывает процедуру окна для окна и не возвращает значение до тех пор, пока процедура окна не обработала сообщение. Если окно было создано другим потоком, SendNotifyMessage передает сообщение в процедуру окна и возвращает его немедленно; это не ждет завершения обработки сообщения процедурой Window.

CWnd::SetActiveWindow

Делает CWnd активным окно.

CWnd* SetActiveWindow();

Возвращаемое значение

Окно, которое было ранее активным.

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

Remarks

SetActiveWindowФункцию члена следует использовать с осторожностью, так как она позволяет приложению произвольно перехватить активное окно и фокус ввода. Как правило, Windows следит за всеми активациями.

CWnd::SetCapture

Приводит к тому, что все последующие вводы мыши отправляются в текущий CWnd объект независимо от положения курсора.

CWnd* SetCapture();

Возвращаемое значение

Указатель на объект окна, который ранее получил все входные данные мыши. NULLЕсли такого окна нет. Возвращаемый указатель может быть временным и не должен храниться для последующего использования.

Remarks

Если CWnd больше не требуется все входные данные мыши, приложение должно вызвать ReleaseCapture функцию, чтобы другие окна могли получить ввод с помощью мыши.

При захвате ввода мыши в WM_NCHITTEST WM_SETCURSOR активное окно не отправляются никакие сообщения.

CWnd::SetCaretPos

Задает расположение курсора.

static void PASCAL SetCaretPos(POINT point);

Параметры

point
Задает новые координаты x и y (в клиентских координатах) курсора.

Remarks

SetCaretPosФункция-член перемещает курсор, только если он принадлежит окну в текущей задаче. SetCaretPos Перемещает курсор независимо от того, скрыта ли курсор.

Курсор является общим ресурсом. Окно не должно перемещать курсор, если он не владеет курсором.

Пример

// The following code snippet shows a caret when the left
// mouse button is pressed, and sets the caret's position to
// the cursor's position.
void CMyView::OnLButtonDown(UINT nFlags, CPoint point)
{
   //create a solid caret, the width is 2, the length is 20.
   CreateSolidCaret(2, 20);

   SetCaretPos(point);
   ShowCaret();

   CView::OnLButtonDown(nFlags, point);
}

CWnd::SetClipboardViewer

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

HWND SetClipboardViewer();

Возвращаемое значение

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

Remarks

Окно, которое является частью цепочки средств просмотра буфера обмена, должно отвечать WM_DRAWCLIPBOARD на WM_CHANGECBCHAIN сообщения, и WM_DESTROY передавать сообщение в следующее окно в цепочке.

Эта функция-член отправляет WM_DRAWCLIPBOARD сообщение в окно. Поскольку обработчик следующего окна в цепочке средств просмотра буфера обмена еще не возвращен, приложение не должно передавать WM_DRAWCLIPBOARD сообщение, полученное во время вызова SetClipboardViewer .

Чтобы удалить себя из цепочки просмотра буфера обмена, приложение должно вызвать функцию- ChangeClipboardChain член.

CWnd::SetDlgCtrlID

Задает новое значение идентификатора окна или идентификатора элемента управления для окна.

int SetDlgCtrlID(int nID);

Параметры

nID
Новое значение, заданное для идентификатора элемента управления.

Возвращаемое значение

Предыдущий идентификатор окна, если выполнено успешно; в противном случае — 0.

Remarks

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

CWnd::SetDlgItemInt

Устанавливает текст данного элемента управления в диалоговом окне в строковое представление указанного целочисленного значения.

void SetDlgItemInt(
    int nID,
    UINT nValue,
    BOOL bSigned = TRUE);

Параметры

nID
Указывает целочисленный идентификатор изменяемого элемента управления.

nValue
Задает целочисленное значение, используемое для создания текста элемента.

bSigned
Указывает, является ли целочисленное значение знакомым или неподписанным. Если этот параметр имеет значение TRUE , nValue то подписывается. Если этот параметр имеет значение TRUE и nValue меньше 0, то перед первой цифрой в строке ставится знак минус. Если этот параметр имеет значение FALSE , nValue то аргумент не имеет знака.

Remarks

SetDlgItemInt отправляет WM_SETTEXT сообщение в заданный элемент управления.

Пример

См. пример для CWnd::SetDlgItemText .

CWnd::SetDlgItemText

Задает заголовок или текст элемента управления, принадлежащего окну или диалоговому окну.

void SetDlgItemText(
    int nID,
    LPCTSTR lpszString);

Параметры

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

lpszString
Указывает на CString объект или строку, завершающуюся нулем, которая содержит текст, копируемый в элемент управления.

Remarks

SetDlgItemText отправляет WM_SETTEXT сообщение в заданный элемент управления.

Пример

// The following code fragment is from CMyDlg::OnInitDialog
// CMyDlg is derived from CDialog.

// Initialize dialog controls
SetDlgItemText(IDC_EDITNAME, _T("Type in text"));
SetDlgItemInt(IDC_EDITNUM, 100);

CWnd::SetForegroundWindow

Помещает создавший окно поток на передний план и активирует окно.

BOOL SetForegroundWindow();

Возвращаемое значение

Ненулевое значение, если функция выполнена успешно; в противном случае — 0.

Remarks

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

Пример

См. пример для CWnd::FindWindow .

CWnd::SetFocus

Утверждает фокус ввода.

CWnd* SetFocus();

Возвращаемое значение

Указатель на объект окна, который ранее имел фокус ввода. NULLЕсли такого окна нет. Возвращаемый указатель может быть временным и не должен храниться.

Remarks

Фокус ввода направляет все последующие вводы с клавиатуры в это окно. Любое окно, которое ранее получило фокус ввода.

SetFocusФункция-член отправляет WM_KILLFOCUS в окно сообщение, которое теряет фокус ввода, и WM_SETFOCUS сообщение в окно, которое получает фокус ввода. Он также активирует либо окно, либо его родительский элемент.

Если текущее окно активно, но не имеет фокуса (то есть ни одно окно не имеет фокуса), нажатие любой клавиши приведет к созданию сообщения WM_SYSCHAR , WM_SYSKEYDOWN или WM_SYSKEYUP .

CWnd::SetFont

Отправляет WM_SETFONT сообщение в окно для использования указанного шрифта.

void SetFont(
    CFont* pFont,
    BOOL bRedraw = TRUE);

Параметры

pFont
Указатель на CFont объект.

bRedraw
TRUE значение для перерисовки окна сразу после обработки WM_SETFONT сообщения; в противном случае — FALSE .

Remarks

Этот метод не действует, если только окно не обрабатывает WM_SETFONT сообщение. Многие классы MFC, производные от CWnd обработки данного сообщения, так как они присоединены к предопределенному классу окна, содержащему обработчик сообщений для WM_SETFONT сообщения. Для использования этого метода классы, производные от, CWnd должны определять обработчик метода для WM_SETFONT сообщения.

CWnd::SetIcon

Вызовите эту функцию-член, чтобы задать для маркера определенный значок, как определено в hIcon .

HICON SetIcon(
    HICON hIcon,
    BOOL bBigIcon);

Параметры

hIcon
Маркер для предыдущего значка.

bBigIcon
Задает значок 32 пикселей на 32 пикселей, если TRUE ; задает значок 16 пикселей на 16 пикселей, если FALSE .

Возвращаемое значение

Дескриптор для значка.

Remarks

При регистрации класса окна он выбирает значок.

Пример

См. пример для CWnd::GetSystemMenu .

CWnd::SetLayeredWindowAttributes

Задает ключ цвета прозрачности многослойного окна.

BOOL SetLayeredWindowAttributes(
    COLORREF crKey,
    BYTE bAlpha,
    DWORD dwFlags);

Параметры

crKey
Указатель на COLORREF значение, указывающее цветовой ключ прозрачности, используемый при создании многоуровневого окна. Все пиксели, закрашенные окном этого цвета, будут прозрачными. Чтобы создать COLORREF , используйте RGB макрос.

bAlpha
Значение альфа, используемое для описания прозрачности многоуровневого окна. Дополнительные сведения см. в описании SourceConstantAlpha члена BLENDFUNCTION структуры. Если bAlpha значение равно 0, окно полностью прозрачно. Если bAlpha значение равно 255, окно является непрозрачным.

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

Возвращаемое значение

Ненулевое значение, если функция выполнена. в противном случае — 0.

Remarks

Эта функция члена эмулирует функциональность функции SetLayeredWindowAttributes , как описано в Windows SDK.

CWnd::SetMenu

Устанавливает текущее меню в указанное меню.

BOOL SetMenu(CMenu* pMenu);

Параметры

pMenu
Определяет новое меню. Если этот параметр имеет значение NULL , то текущее меню удаляется.

Возвращаемое значение

Ненулевое значение, если меню изменено; в противном случае — 0.

Remarks

Вызывает перерисовку окна для отражения изменения меню.

SetMenu не будет уничтожить предыдущее меню. Приложение должно вызывать CMenu::DestroyMenu функцию члена для выполнения этой задачи.

Пример

См. пример для CMenu::LoadMenu .

CWnd::SetOwner

Устанавливает владельца текущего окна в указанный объект окна.

void SetOwner(CWnd* pOwnerWnd);

Параметры

pOwnerWnd
Определяет нового владельца объекта Window. Если этот параметр имеет значение NULL , то у объекта Window нет владельца.

Remarks

Этот владелец может затем получить сообщения команды от текущего объекта Window. По умолчанию родительским элементом текущего окна является его владелец.

Часто бывает полезно устанавливать соединения между объектами окна, не связанными с иерархией окон. Например, CToolBar отправляет уведомления владельцу, а не его родителю. Это позволяет панели инструментов стать дочерним элементом одного окна (например, окном приложения-контейнера OLE) при отправке уведомлений в другое окно (например, в окно фрейма на месте). Более того, когда окно сервера деактивируется или активируется во время редактирования на месте, все окна, принадлежащие окну фрейма, скрываются или отображаются. Этот владелец явно задается вызовом метода SetOwner .

Понятие владения этой функцией отличается от концепции владения GetWindow .

CWnd::SetParent

Изменяет родительское окно дочернего окна.

CWnd* SetParent(CWnd* pWndNewParent);

Параметры

pWndNewParent
Определяет новое родительское окно.

Возвращаемое значение

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

Remarks

Если дочернее окно отображается, Windows выполняет соответствующую перерисовку и перерисование.

CWnd::SetProperty

Вызовите эту функцию члена, чтобы задать свойство элемента управления OLE, заданное параметром dwDispID .

void AFX_CDECL SetProperty(
    DISPID dwDispID,
    VARTYPE vtProp, ...);

Параметры

dwDispID
Определяет свойство, которое необходимо задать.

vtProp
Определяет тип свойства, которое необходимо задать. Возможные значения см. в разделе "Примечания" для COleDispatchDriver::InvokeHelper .

...
Единственный параметр типа, указанного в параметре vtProp .

Remarks

Примечание

Эта функция должна вызываться только для CWnd объекта, представляющего элемент управления OLE.

Дополнительные сведения об использовании этой функции члена с контейнерами элементов управления OLE см. в статье контейнеры элементов управления ActiveX: Программирование элементов управления ActiveX в контейнере элементов управления ActiveX.

CWnd::SetRedraw

Приложение вызывает SetRedraw , чтобы разрешить перерисовку изменений или предотвратить перерисовку изменений.

void SetRedraw(BOOL bRedraw = TRUE);

Параметры

bRedraw
Задает состояние флага перерисовки. Если этот параметр имеет TRUE значение, устанавливается флаг перерисовки, а при этом FALSE снимается флажок.

Remarks

Эта функция члена задает или очищает флаг перерисовки. Если флажок перерисовки не установлен, содержимое не будет обновляться после каждого изменения и не будет перерисовываться до тех пор, пока не установится флаг перерисовки. Например, приложение, которое должно добавить несколько элементов в список, может снять флаг перерисовки, добавить элементы, а затем установить флаг перерисовки. Наконец, приложение может вызвать Invalidate InvalidateRect функцию члена или, чтобы перерисовать список.

Пример

// Updating a control or window with large amounts of data may cause
// flicker. In such cases it may be better to turn off drawing

//m_list is a member of type CListCtrl
m_List.SetRedraw(FALSE); // turn drawing off regardless of list mode

//
// Update control
//

m_List.SetRedraw(TRUE); // turn drawing back on and update the window

// invalidate the entire control, force painting
m_List.Invalidate();
m_List.UpdateWindow();

CWnd::SetScrollInfo

Вызовите эту функцию-член, чтобы задать сведения, которые SCROLLINFO хранятся в структуре, о полосе прокрутки.

BOOL SetScrollInfo(
    int nBar,
    LPSCROLLINFO lpScrollInfo,
    BOOL bRedraw = TRUE);

Параметры

nBar
Указывает, является ли полоса прокрутки элементом управления или частью неклиентской области окна. Если он является частью неклиентской области, НБАР также указывает, располагается ли полоса прокрутки горизонтально, вертикально или и то, и другое. Он должен быть одним из следующих:

  • SB_CTL Содержит параметры для элемента управления "полоса прокрутки". m_hWndЭлемент данных должен быть маркером элемента управления "полоса прокрутки".

  • SB_HORZ Указывает, что окно является горизонтальной полосой прокрутки.

  • SB_VERT Указывает, что окно является вертикальной полосой прокрутки.

lpScrollInfo
Указатель на SCROLLINFO структуру. Дополнительные сведения об этой структуре см. в Windows SDK.

bRedraw
Указывает, следует ли перерисовать полосу прокрутки для отражения новой позицией. Если bRedraw имеет значение TRUE , полоса прокрутки перерисовывается. Если это так FALSE , он не перерисовывается. По умолчанию полоса прокрутки перерисовывается.

Возвращаемое значение

В случае успеха возвращается значение TRUE . В противном случае значение равно FALSE.

Remarks

SCROLLINFOСтруктура содержит сведения о полосе прокрутки, включая минимальные и максимальные положения прокрутки, размер страницы и положение ползунка (бегунка). SCROLLINFOДополнительные сведения об изменении структуры по умолчанию см. в разделе "структура" в Windows SDK.

Обработчики сообщений Windows MFC, указывающие расположение полосы прокрутки, CWnd::OnHScroll и CWnd::OnVScroll , предоставляют только 16 бит данных о положении. GetScrollInfo и SetScrollInfo предоставляют 32 бит данных о положении полосы прокрутки. Таким же, приложение может вызвать GetScrollInfo во время обработки либо, CWnd::OnHScroll CWnd::OnVScroll чтобы получить 32-разрядные данные о положении полосы прокрутки.

Примечание

CWnd::GetScrollInfo позволяет приложениям использовать позиции полосы прокрутки 32 бит.

CWnd::SetScrollPos

Задает текущую точку прокрутки и (при запросе) перерисовывает полосу прокрутки, чтобы отразить новую точку полосы прокрутки.

int SetScrollPos(
    int nBar,
    int nPos,
    BOOL bRedraw = TRUE);

Параметры

nBar
Задает полосу прокрутки, которую необходимо задать. Этот параметр может быть одним из следующих:

  • SB_HORZ Задает расположение ползунка в горизонтальной полосе прокрутки окна.

  • SB_VERT Задает расположение ползунка в вертикальной полосе прокрутки окна.

nPos
Задает новое расположение ползунка. Он должен находиться в пределах диапазона прокрутки.

bRedraw
Указывает, следует ли перерисовать полосу прокрутки, чтобы отразить новую точку прокрутки. Если этот параметр имеет значение TRUE , полоса прокрутки перерисовывается. значение FALSE , если полоса прокрутки не перерисовывается.

Возвращаемое значение

Предыдущее расположение ползунка.

Remarks

Параметр bRedraw для FALSE полезен, когда полоса прокрутки будет перерисована при последующем вызове другой функции.

CWnd::SetScrollRange

Задает для указанной полосы прокрутки положения минимума и максимума.

void SetScrollRange(
    int nBar,
    int nMinPos,
    int nMaxPos,
    BOOL bRedraw = TRUE);

Параметры

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

  • SB_HORZ Задает диапазон горизонтальной полосы прокрутки окна.

  • SB_VERT Задает диапазон вертикальной полосы прокрутки окна.

nMinPos
Задает минимальную прокрутку.

nMaxPos
Задает максимальную точку прокрутки.

bRedraw
Указывает, следует ли перерисовать полосу прокрутки для отражения изменения. Если bRedraw имеет значение TRUE , полоса прокрутки перерисовывается; значение FALSE , если полоса прокрутки не перерисовывается.

Remarks

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

Приложение не должно вызывать эту функцию для скрытия полосы прокрутки при обработке сообщения уведомления полосы прокрутки.

Если вызов метода SetScrollRange непосредственно следует за вызовом функции- SetScrollPos члена, bRedraw параметр в SetScrollPos функции-члене должен иметь значение 0, чтобы полоса прокрутки не отображалась дважды.

По умолчанию для стандартной полосы прокрутки используется диапазон от 0 до 100. Диапазон по умолчанию для элемента управления "полоса прокрутки" пуст ( nMinPos nMaxPos значения и равны 0). Разница между значениями, заданными параметром nMinPos и, nMaxPos не должна превышать INT_MAX .

CWnd::SetTimer

Устанавливает системный таймер.

UINT_PTR SetTimer(
    UINT_PTR nIDEvent,
    UINT nElapse,
    void (CALLBACK* lpfnTimer)(HWND,
    UINT,
    UINT_PTR,
    DWORD));

Параметры

nIDEvent
Указывает ненулевой идентификатор таймера. Если идентификатор таймера уникален, то это же значение возвращается методом SetTimer . В противном случае SetTimer определяет новое уникальное значение и возвращает его. Для таймера окна (с NULL функцией обратного вызова) значение должно быть уникальным только для других таймеров Windows, связанных с текущим окном. Для таймера обратного вызова значение должно быть уникальным для всех таймеров во всех процессах. Поэтому при создании таймера обратного вызова более вероятно, что возвращаемое значение может отличаться от указанного значения.

nElapse
Задает значение времени ожидания или интервал в миллисекундах.

lpfnTimer
Указывает адрес TimerProc функции обратного вызова, предоставляемой приложением, которая обрабатывает WM_TIMER сообщения. Если этот параметр имеет значение NULL , WM_TIMER сообщения помещаются в очередь сообщений приложения и обрабатываются CWnd объектом.

Возвращаемое значение

Идентификатор таймера нового таймера, если функция выполнена успешно. Это значение может быть или не равно значению, переданному с помощью nIDEvent параметра. Приложение всегда должно передать возвращаемое значение KillTimer функции члена, чтобы завершить таймер. Ненулевое значение в случае успешного выполнения; в противном случае — значение 0.

Remarks

Указывается значение интервала, и каждый раз, когда истекает интервал, система отправляет сообщение в WM_TIMER очередь установки приложения или передает сообщение в TimerProc функцию обратного вызова, определенную приложением.

lpfnTimer Функции обратного вызова не нужно присвоить имя TimerProc , но она должна быть объявлена как статическая и определена следующим образом.

void CALLBACK TimerProc(
    HWND hWnd,   // handle of CWnd that called SetTimer
    UINT nMsg,   // WM_TIMER
    UINT_PTR nIDEvent,   // timer identification
    DWORD dwTime    // system time);

Пример

В этом примере CWnd::SetTimer CWnd::OnTimer CWnd::KillTimer для работы с сообщениями используются, и WM_TIMER . Первый таймер настраивается для отправки WM_TIMER сообщения в главное окно фрейма каждые 2 секунды в OnStartTimer . OnTimerОбработчик событий обрабатывает WM_TIMER сообщения для главного окна фрейма. Этот метод заставляет динамик ПК выдавать звуковой сигнал каждые 2 секунды. Второй таймер отправляет сообщение функции обратного вызова каждые 3,75 секунд. OnStopTimer останавливает оба таймера, вызывая CWnd::KillTimer для каждого идентификатора таймера.

void CMainFrame::OnStartTimer()
{
   // This timer uses a WM_TIMER message, not a callback.
   // Therefore, the timer is specific to this window.
   // m_nWindowTimer is a UINT_PTR field.
   m_nWindowTimer = SetTimer(1, 2000, NULL);

   // For this demo, we specify an interval that won't overlap
   // with the window timer.
   m_nCallbackTimer = SetTimer(2, 3750, &CMainFrame::MyTimerProc);

   // See whether we got the ID we requested in the first parameter.
#ifdef _DEBUG
   CString str;
   str.Format(_T("m_ncallbackTImer ID = %d"), m_nCallbackTimer);
   TRACE(str);
#endif
}

void CALLBACK CMainFrame::MyTimerProc(
    HWND hWnd,         // handle of CWnd that called SetTimer
    UINT nMsg,         // WM_TIMER
    UINT_PTR nIDEvent, // timer identification
    DWORD dwTime       // system time
)
{
   MessageBeep(0x00000030L); // Windows question sound.
}

void CMainFrame::OnStopTimer()
{
   KillTimer(m_nWindowTimer);
   KillTimer(m_nCallbackTimer);
}

void CMainFrame::OnTimer(UINT nIDEvent)
{
   MessageBeep(0xFFFFFFFF); // Beep

   // Call base class handler.
   CMDIFrameWnd::OnTimer(nIDEvent);
}

CWnd::SetWindowContextHelpId

Вызовите эту функцию-член, чтобы связать идентификатор контекста справки с указанным окном.

BOOL SetWindowContextHelpId(DWORD dwContextHelpId);

Параметры

dwContextHelpId
Идентификатор контекста справки.

Возвращаемое значение

Ненулевое значение, если функция выполнена успешно; в противном случае — 0.

Remarks

Если у дочернего окна нет идентификатора контекста справки, он наследует идентификатор родительского окна. Аналогично, если собственное окно не имеет идентификатора контекста справки, оно наследует идентификатор своего окна-владельца. Такое наследование идентификаторов контекста справки позволяет приложению задать только один идентификатор для диалогового окна и всех его элементов управления.

Пример

// The following code fragment is from CMyDlg::OnInitDialog
// CMyDlg is derived from CDialog.

// Associate a help context id with the control.
// IDC_TESTHELP_CONTROL is the id of the control
// and HIDC_TESTHELP_CONTROL is its help context
// id associated with the control.
CWnd *pWnd = GetDlgItem(IDC_TESTHELP_CONTROL);
pWnd->SetWindowContextHelpId(HIDC_TESTHELP_CONTROL);

CWnd::SetWindowPlacement

Задает состояние отображения, а также обычное (восстановленное), свернутое и развернутое состояния окна.

BOOL SetWindowPlacement(const WINDOWPLACEMENT* lpwndpl);

Параметры

lpwndpl
Указывает на WINDOWPLACEMENT структуру, указывающую новое состояние отображения и позиции.

Возвращаемое значение

Ненулевое значение, если функция выполнена успешно; в противном случае — 0.

CWnd::SetWindowPos

Изменяет размер, расположение и Z-порядок дочернего элемента, окна всплывающего окна и верхнего уровня.

BOOL SetWindowPos(
    const CWnd* pWndInsertAfter,
    int x,
    int y,
    int cx,
    int cy,
    UINT nFlags);

Параметры

pWndInsertAfter
Определяет CWnd объект, который будет предшествовать (больше) этому CWnd объекту в Z-порядке. Этот параметр может быть указателем на CWnd или указатель на одно из следующих значений:

  • wndBottom Помещает окно в нижнюю часть Z-порядка. Если это самое CWnd верхнее окно, окно теряет свое самое верхнее состояние, система помещает окно в нижнюю часть всех окон.

  • wndTop Размещает окно в верхней части Z-порядка.

  • wndTopMost Помещает окно над всеми окнами, не являющимися верхними. Окно сохраняет свое самое верхнее расположение, даже если оно деактивировано.

  • wndNoTopMost Перемещает окно в верхнюю часть всех окон, не являющихся верхними (то есть позади всех окон переднего плана). Этот флаг не действует, если окно уже является окном, не являющимся самым верхним.

Правила использования этого параметра см. в подразделе «Примечания» этого раздела.

x
Задает новое расположение левой стороны окна.

y
Указывает новое расположение верхней части окна.

cx
Задает новую ширину окна.

cy
Задает новую высоту окна.

nFlags
Задает параметры изменения размера и позиционирования. Этот параметр может быть сочетанием следующих флагов:

  • SWP_DRAWFRAME Рисует рамку (определенную при создании окна) вокруг окна.

  • SWP_FRAMECHANGED Отправляет WM_NCCALCSIZE сообщение в окно, даже если размер окна не изменяется. Если этот флаг не указан, WM_NCCALCSIZE отправляется только при изменении размера окна.

  • SWP_HIDEWINDOW Скрывает окно.

  • SWP_NOACTIVATE Не активирует окно. Если этот флаг не установлен, окно активируется и перемещается в верхнюю часть самой верхней или неверхней группы (в зависимости от значения pWndInsertAfter параметра).

  • SWP_NOCOPYBITS Отменяет все содержимое клиентской области. Если этот флаг не указан, допустимое содержимое клиентской области сохраняется и копируется обратно в клиентскую область после изменения размера окна или его расположения.

  • SWP_NOMOVE Оставляет текущую позицией (игнорирует x y Параметры и).