Класс 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 Вызывается платформой для получения строки свойства help объекта.
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 Открывает буфер обмена. Другие приложения не смогут изменять буфер обмена до вызова функции WindowsCloseClipboard.
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 Возвращает указатель на сообщение, обрабатываемое этим окном в настоящий момент. Должен вызываться только в OnMessage функции-члене обработчика сообщений.
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 Вызывается при очистке буфера обмена с помощью вызова функции WindowsEmptyClipboard.
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 Вызывается при наклоне или повороте горизонтального колесика прокрутки мыши.
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 или Юникод в сообщении 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 Вызывается для всех окон верхнего уровня после изменения файла WIN.INIинициализации Windows.
CWnd::OnWndMsg Указывает, что сообщение для окна обработано.
CWnd::OnXButtonDblClk Вызывается, когда пользователь дважды щелкает XBUTTON1 или XBUTTON2 когда курсор находится в клиентской области окна.
CWnd::OnXButtonDown Вызывается, когда пользователь нажимает XBUTTON1 или XBUTTON2 когда курсор находится в клиентской области окна.
CWnd::OnXButtonUp Вызывается, когда пользователь выпускает XBUTTON1 или XBUTTON2 когда курсор находится в клиентской области окна.
CWnd::PostNcDestroy Эта виртуальная функция вызывается функцией OnNcDedb по умолчанию после уничтожения окна.
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 уведомления автоматически перенаправляются через карту сообщений соответствующим функциям членов OnMessageCWnd. Вы переопределяете функцию-член OnMessage для обработки определенного сообщения члена в производных классах.

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

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

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

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

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

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

CObject

CCmdTarget

CWnd

Требования

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

CWnd::accDoDefaultAction

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

virtual HRESULT accDoDefaultAction(VARIANT varChild);

Параметры

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

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

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

Remarks

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

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

CWnd::accHitTest

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

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

Параметры

xLeft
Координата X точки для проверки нажатия (в единицах экрана).

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

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

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

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

Remarks

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

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

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

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 пакете SDK для Windows.

Remarks

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

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

CWnd::accNavigate

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

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

Параметры

navDir
Задает направление навигации. СмnavDir. в IAccessible::accNavigate пакете SDK для Windows.

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

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

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

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

Remarks

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

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

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

CWnd::accSelect

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

virtual HRESULT accSelect(
    long flagsSelect,
    VARIANT varChild);

Параметры

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

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

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

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

Remarks

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

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

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

CWnd::AnimateWindow

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

BOOL AnimateWindow(
    DWORD dwTime,
    DWORD dwFlags);

Параметры

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

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

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

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

Remarks

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

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 данных с наименьшим прямоугольником, который полностью заключает область обновления и флаг, указывающий, был ли фон удален.

Область обновления задается функциями InvalidateInvalidateRect- или 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

Привязывает свойство простой привязки вызывающего объекта по умолчанию (например, элемент управления редактированием), помеченное в библиотеке типов, к базовому курсору, определенному элементом DataSourceUserNameуправления источниками данных , 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
[in, out] Указатель на структуру прямоугольника. Во входных данных эта структура содержит прямоугольник клиента. После завершения метода эта структура содержит прямоугольник окна, который может содержать указанный прямоугольник клиента.

nAdjustType
[in] Используется для 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 объекте CRectCPoint, на которые указываются lpRectlpPoint новые экранные координаты, а затем заменяет координаты в структуре новыми координатами. Новые координаты экрана относятся к левому верхнему углу системного дисплея.

Функция-член 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, как описано в пакете SDK для Windows.

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
[in] Указатель на строку, завершающуюся значением NULL, которая содержит имя зарегистрированного класса системного окна; или имя предопределенного класса системного окна.

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

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

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

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

nID
[in] Идентификатор окна.

pContext
[in] Указатель на структуру 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
Идентифицирует объект, к которым обращается активный прокси-сервер специальных возможностей. Может быть одним из следующих значений.

Значение Значение
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, который будет представлен в программе CWnd MFC объектом.

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

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

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 вместо обычного окна.

Для следующих компонентов поддерживается CreateControlтолько подмножество флагов WindowsdwStyle:

  • 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
Побитовое сочетание (OR) расширенных стилей окон; в противном случае NULL для расширенного стиля окна по умолчанию.

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

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

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

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

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

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

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

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

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

lpParam
Указатель на пользовательские данные, передаваемые методу CWnd::OnCreatelpCreateParams в поле.

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_NCDESTROY отправляет WM_DESTROY сообщения в окно. Он не уничтожает CWnd объект.

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

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

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

Функция-член DestroyWindow также уничтожает бессерверные диалоговые окна, созданные 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();

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

A HWND к объекту Windows.

Пример

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

CWnd::DlgDirList

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

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

Параметры

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

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

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

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

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

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

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

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

  • DDL_DIRECTORY Каталоги.

  • DDL_ARCHIVE Архивы.

  • DDL_POSTMSGSLB_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длиной 0 или указать только имя каталога, но не включать спецификацию файла, строка будет изменена на "*.*".

Если 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
Указывает на строку, завершающуюся значением NULL, которая содержит путь или имя файла. DlgDirListComboBox изменяет эту строку, поэтому эти данные не должны быть в виде строкового литерала. См. следующий раздел "Примечания".

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

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

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

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

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

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

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

  • DDL_DIRECTORY Каталоги.

  • DDL_ARCHIVE Архивы.

  • DDL_POSTMSGSCB_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 копирует выделенный фрагмент в указанный буфер. Если выделенного фрагмента нет, содержимое буфера не изменяется.

DlgDirSelectComboBoxCB_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 функция-член должна предшествовать инструкциям макросов в исходном файле.

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

CWnd::DragAcceptFiles

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

void DragAcceptFiles(BOOL bAccept = TRUE);

Параметры

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

Remarks

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

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

CWnd::DragDetect

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

BOOL DragDetect(POINT pt) const;

Параметры

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

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

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

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

Remarks

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

CWnd::DrawAnimatedRects

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

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

Параметры

idAni
Указывает тип анимации. При указании IDANI_CAPTIONзаголовок окна будет анимироваться из позиции, указанной в позиции, указанной lprcFrom в параметре lprcTo. Эффект аналогичен минимизации или максимизации окна.

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

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

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

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

Remarks

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

CWnd::DrawCaption

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

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

Параметры

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

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

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

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

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

Remarks

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

CWnd::DrawMenuBar

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

void DrawMenuBar();

Remarks

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

Пример

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

CWnd::EnableActiveAccessibility

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

void EnableActiveAccessibility();

Remarks

Поддержка активных специальных возможностей 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. в пакете SDK для Windows.

Просто вызов 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

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

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
Указатель на строку, завершающуюся значением NULL, указывающую имя ресурса.

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

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

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

Remarks

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

CWnd::FilterToolTipMessage

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

void FilterToolTipMessage(MSG* pMsg);

Параметры

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

Remarks

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

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

CWnd::FindWindow

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

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

Параметры

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

lpszWindowName
Указывает на строку, завершающуюся значением NULL, которая указывает имя окна (заголовок окна). Если 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

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

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

Параметры

hwndParent
Дескриптор родительского окна, дочерние окна которого необходимо искать.

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

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

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

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

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

Remarks

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

CWnd::FlashWindow

Мигает заданное окно один раз.

BOOL FlashWindow(BOOL bInvert);

Параметры

bInvert
Указывает, следует ли CWnd мигать или возвращаться в исходное состояние. Мигает CWnd из одного состояния в другое, если bInvert есть TRUE. В противном случае bInvertFALSEокно возвращается в исходное состояние (активное или неактивное).

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

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

Remarks

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

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

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

Эта функция всегда возвращает ненулевое значение для свернутых окон. Если окно свернуто, FlashWindow будет мигать значок окна; 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, как описано в пакете SDK для Windows.

CWnd::FromHandle

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

static CWnd* PASCAL FromHandle(HWND hWnd);

Параметры

hWnd
Окно HWND Windows.

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

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

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

CWnd::FromHandlePermanent

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

static CWnd* PASCAL FromHandlePermanent(HWND hWnd);

Параметры

hWnd
Окно HWND Windows.

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

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

Remarks

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

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

CWnd::get_accChild

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

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

Параметры

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

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

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

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

Remarks

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

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

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

CWnd::get_accChildCount

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

virtual HRESULT get_accChildCount(long* pcountChildren);

Параметры

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

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

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

Remarks

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

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

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

CWnd::get_accDefaultAction

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

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

Параметры

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

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

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

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

Remarks

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

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

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

CWnd::get_accDescription

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

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

Параметры

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

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

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

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

Remarks

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

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

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

CWnd::get_accFocus

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

virtual HRESULT get_accFocus(VARIANT* pvarChild);

Параметры

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

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

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

Remarks

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

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

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

CWnd::get_accHelp

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

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

Параметры

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

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

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

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

Remarks

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

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

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

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 пакете SDK для Windows.

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

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

Remarks

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

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

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

CWnd::get_accKeyboardShortcut

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

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

Параметры

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

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

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

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

Remarks

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

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

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

CWnd::get_accName

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

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

Параметры

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

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

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

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

Remarks

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

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

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

CWnd::get_accParent

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

virtual HRESULT get_accParent(IDispatch** ppdispParent);

Параметры

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

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

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

Remarks

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

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

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

CWnd::get_accRole

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

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

Параметры

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

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

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

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

Remarks

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

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

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

CWnd::get_accSelection

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

virtual HRESULT get_accSelection(VARIANT* pvarChildren);

Параметры

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

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

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

Remarks

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

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

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

CWnd::get_accState

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

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

Параметры

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

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

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

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

Remarks

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

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

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

CWnd::get_accValue

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

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

Параметры

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

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

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

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

Remarks

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

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

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

CWnd::GetActiveWindow

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

static CWnd* PASCAL GetActiveWindow();

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

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

Remarks

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

CWnd::GetAncestor

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

CWnd* GetAncestor(UINT gaFlags) const;

Параметры

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

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

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

Remarks

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

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 объект для получения клиентских координат. И lefttop члены будут иметь значение 0. Элементы rightbottom будут содержать ширину и высоту окна.

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 , содержащую сообщение, которое в настоящее время обрабатывает окно. Должен вызываться только в том случае, если в обработчике OnMessage.

Пример

См. пример для 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_CLASSDCтемCS_OWNDC, ни , эта функция возвращает .NULL

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

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

CWnd::GetDCRenderTarget

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

CDCRenderTarget* GetDCRenderTarget();

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

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

Remarks

CWnd::GetDescendantWindow

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

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

Параметры

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

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

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

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

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 (для без знака).

При возникновении ошибок, например при обнаружении нечисловых символов и превышении указанного выше максимального значения, копируется 0 в расположение, GetDlgItemInt на который указывает 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.

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

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

Remarks

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

CWnd::GetDSCCursor

Вызовите эту функцию-член, чтобы получить указатель на базовый курсор, определенный DataSourceUserNamePasswordв свойствах , и 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 , если аргумент не нужен. Полный список возможных значений см. в разделе GetLayeredWindowAttributes.

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

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

Remarks

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

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, как описано в пакете SDK для Windows.

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 windowed Содержит HWND и связывает с ним объект COleControlSite . Элемент m_hWnd имеет значение HWND элемента управления, а m_pSite член указывает на элемент управленияCOleControlSite.COleControlSiteOrWnd
Элемент управления ActiveX без окон Содержит нет HWND. Элемент m_pSite указывает на элемент COleControlSiteOrWnd управления COleControlSite, а m_hWnd элемент — NULL.
Стандартное окно Содержит только объект HWND. Элемент m_hWnd имеет значение HWND окна, а m_pSite элемент — NULL.COleControlSiteOrWnd

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 пакете SDK для Windows.

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_hWndNULLthis если указатель имеет значение .NULL

HWND GetSafeHwnd() const;

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

Возвращает дескриптор окна для окна. Возвращает значение NULL , CWnd если оно не присоединено к окну или используется с указателем NULLCWnd .

Пример

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

CWnd::GetSafeOwner

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

static CWnd* GetSafeOwner(
    CWnd* pParent = NULL,
    HWND* pWndTop = NULL);

Параметры

pParent
Указатель на родительское CWnd окно. Может иметь значение NULL.

pWndTop
Указатель на окно, которое в настоящее время находится наверху. Может иметь значение NULL.

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

Указатель на безопасного владельца для данного окна.

Remarks

Безопасный владелец — это первое не дочернее родительское pParentокно . В противном случае pParentNULLдля поиска владельца используется главное окно потока (извлекаемое с помощью 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, как описано в пакете SDK для Windows.

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 . Дополнительные сведения об этой структуре см. в пакете SDK для Windows.

nMask
Задает параметры полосы прокрутки для извлечения. Значение по умолчанию задает сочетание значений SIF_PAGE, SIF_TRACKPOSSIF_POSи SIF_RANGE. Дополнительные сведения о значениях см SCROLLINFO . в nMask статье.

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

Если сообщение извлекло какие-либо значения, возвращается TRUEзначение . В противном случае значение равно FALSE.

Remarks

GetScrollInfo позволяет приложениям использовать 32-разрядные позиции прокрутки.

Структура SCROLLINFO содержит сведения о полосе прокрутки, включая минимальное и максимальное положение прокрутки, размер страницы и положение поля прокрутки (большой палец). SCROLLINFO Дополнительные сведения об изменении значений по умолчанию структуры см. в разделе о структуре в пакете SDK для Windows.

Обработчики сообщений MFC Windows, указывающие положение полосы прокрутки, CWnd::OnHScroll и CWnd::OnVScroll, предоставляют только 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

Копирует текущие минимальные и максимальные позиции полосы прокрутки для заданной полосы прокрутки в расположения, заданные и lpMinPoslpMaxPos.

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
Указывает выполняемое действие. FALSEGetSystemMenu В противном случае bRevert возвращает дескриптор в копию используемого в настоящее время меню управления. Эта копия изначально идентична меню "Управление", но может быть изменена. Если bRevert это так TRUE, GetSystemMenu перезагрузит меню управления обратно в состояние по умолчанию. Предыдущее, возможно, измененное, меню управления, если таковое имеется, уничтожается. Возвращаемое значение не определено в этом случае.

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

Идентифицирует копию меню "Элемент управления", если bRevert есть FALSE. В противном случае bRevertTRUEвозвращаемое значение не определено.

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

Remarks

Любое окно, которое не используется GetSystemMenu для создания собственной копии меню управления, получает стандартное меню управления.

Указатель, возвращаемый GetSystemMenu функцией-членом, CMenu::InsertMenuможно использовать с CMenu::AppendMenuфункциями или 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, как описано в пакете SDK для Windows.

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 нет.

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, как описано в пакете SDK для Windows.

CWnd::GetWindowlessChildCount

Извлекает количество связанных дочерних окон без окон.

long GetWindowlessChildCount();

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

Количество дочерних окон без окон, связанных с CWnd объектом.

CWnd::GetWindowPlacement

Получает состояние отображения, а также обычное (восстановленное), свернутое и развернутое состояния окна.

BOOL GetWindowPlacement(WINDOWPLACEMENT* lpwndpl) const;

Параметры

lpwndpl
Указывает на структуру WINDOWPLACEMENT , которая получает сведения о состоянии отображения и положении.

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

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

Remarks

Элемент flags структуры, полученной WINDOWPLACEMENT этой функцией, всегда равен 0. Если CWnd значение развернуто, showCmd элемент WINDOWPLACEMENT is 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
Указывает максимальное число символов, копируемых в буфер, включая завершающий символ NULL. Если строка длиннее указанного числа 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 в пакете SDK для Windows.

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 вызове функции-члена; в противном случае FALSEbErase фон остается неизменным. Если 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 вызове функции-члена; в противном случае FALSEbErase фон остается неизменным. Если 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 вызове функции-члена; в противном случае FALSEbErase фон остается неизменным. Если bErase для TRUE какой-либо части региона обновления фон в целом регионе, а не только в данной части, удаляется.

Windows отправляет сообщение всякий WM_PAINT разCWnd, когда область обновления не пуста, и в очереди приложений нет других сообщений для этого окна.

Заданный регион должен быть создан ранее одной из функций региона.

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
Указатель на завершающуюся символом null строку байтов, определяющую типы параметров после pbParamInfo. Возможные значения см. в разделе "Примечания" для COleDispatchDriver::InvokeHelper.

...
Список параметров, типов, указанных в pbParamInfoпараметре .

Remarks

Параметр pbParamInfo определяет типы параметров, передаваемых в метод или свойство. Список переменных аргументов представлен ... в объявлении синтаксиса.

Эта функция преобразует параметры VARIANTARG в значения, а затем вызывает IDispatch::Invoke метод в элементе управления ActiveX. Если вызов IDispatch::Invoke завершается сбоем, эта функция создает исключение. Если возвращается SCODEIDispatch::InvokeDISP_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 if the feature is enabled; otherwise 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 выбирает следующий элемент управления или группу элементов управления, а клавиша СТРЕЛКА ВНИЗ выбирает следующий элемент управления в группе.

Не следует передавать сообщение, обработанное IsDialogMessageTranslateMessage функциями или DispatchMessage Windows, так как оно уже обработано.

CWnd::IsDlgButtonChecked

Определяет, имеет ли элемент управления кнопки флажок рядом с ним.

UINT IsDlgButtonChecked(int nIDButton) const;

Параметры

nIDButton
Указывает целочисленный идентификатор элемента управления "Кнопка".

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

Ненулевое значение, если заданный элемент управления установлен, и 0, если он не установлен. Можно установить только переключатели и флажки. Для кнопок с тремя состояниями возвращаемое значение может быть равно 2, если кнопка не определена. Эта функция-член возвращает 0 для pushbutton.

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.

Если приложение с заблокированным окном (или любыми заблокированными дочерними окнами) вызывает GetDCGetDCExфункцию или 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

Создает и отображает окно, содержащее предоставленное приложением сообщение и заголовок, а также сочетание предопределенных значков и pushbuttons, описанных в списке стилей Message-Box .

int MessageBox(
    LPCTSTR lpszText,
    LPCTSTR lpszCaption = NULL,
    UINT nType = MB_OK);

Параметры

lpszText
Указывает на CString объект или строку, завершающуюся значением NULL, содержащую отображаемое сообщение.

lpszCaption
Указывает на объект или строку, завершаемую CString значением NULL, которая будет использоваться для заголовка окна сообщения. В противном случае lpszCaptionNULLиспользуется заголовок "Ошибка" по умолчанию.

nType
Задает содержимое и поведение окна сообщения.

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

Этот метод использует функциюMessageBox, определенную в пакете SDK для Windows. Этот метод возвращает результат вызова этой функции.

Remarks

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

Ниже показаны различные системные значки, которые можно использовать в окне сообщения:

Значок Макрос
Stop or X icon. MB_ICONHAND, MB_ICONSTOP и MB_ICONERROR.
Help or question mark icon. MB_ICONQUESTION
Important or exclamation point icon. MB_ICONEXCLAMATION и MB_ICONWARNING
Information or letter I icon. 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 в пакете SDK для Windows.

Если nFlags ненулевое значение, ModifyStyle вызывает функцию SetWindowPos API Windows и перерисовывает окно, объединяя 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 в пакете SDK для Windows

Если nFlags ненулевое значение, ModifyStyleEx вызывает функцию SetWindowPos API Windows и перерисовывает окно, объединяя 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

Для объекта x верхнего уровня CWnd параметры 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, как описано в пакете SDK для Windows.

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 указывает, что окно свернуто.

Значение CWnd, если TRUEактивируется; в противном случае деактивировано.

Remarks

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

Примечание

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

CWnd::OnActivateApp

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

afx_msg void OnActivateApp(
    BOOL bActive,
    DWORD dwThreadID);

Параметры

bActive
Указывает, активируется ли CWnd он или деактивируется. TRUECWnd означает, что активируется. FALSECWnd означает, что деактивируется.

dwThreadID
Указывает значение идентификатора потока. В противном случае bActiveTRUEdwThreadID определяет поток, владеющий CWnd деактивацией. dwThreadIDFALSEВ противном случае bActive идентифицирует поток, которому принадлежит активируемый 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
[in] Указатель на CWnd объект, представляющий окно, в котором пользователь нажимал кнопку команды или нажимал клавишу КОМАНДЫ. Это может быть дочернее окно окна, получающего сообщение.

nCmd
[in] Указывает команду приложения. Список возможных значений см. в командах cmd в разделе lParam параметра WM_APPCOMMAND.

nDevice
[in] Устройство ввода, создающее событие ввода. Список возможных значений см. на устройствах uDevice в разделе lParam параметра WM_APPCOMMAND.

nKey
[in] Указывает все виртуальные клавиши, которые находятся вниз, например клавиши CTRL или левой кнопки мыши. Список возможных значений см dwKeys . в разделах параметра lParamWM_APPCOMMAND. Дополнительные сведения см. в подразделе "Параметры сообщения" в разделе "О вводе мыши".

Remarks

Этот метод получает WM_APPCOMMAND уведомление, описанное в пакете SDK для Windows.

Примечание

Это функция-член вызывается платформой, чтобы разрешить приложению обработать сообщение 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 себя. Приложение не должно пытаться настроить захват мыши в ответ на это сообщение. Когда оно получает это сообщение, окно должно перерисовывать себя при необходимости, чтобы отразить новое состояние захвата мыши.

Сведения о функции Windows см. в ReleaseCapture пакете SDK для Windows.

Примечание

Это функция-член вызывается платформой, чтобы разрешить приложению обработать сообщение 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_ACTIVEWindows XP: элемент управления должен быть нарисован в стиле, используемом для активных элементов управления.

Remarks

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

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 Enhanced 101 и 102 расширенные клавиши — это правая клавиша ALT и правая клавиша CTRL в главном разделе клавиатуры; клавиши INS, DEL, HOME, END, PAGE UP, 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
[in] Задает новый цвет раскраски. Цветной формат — это шестнадцатеричное число формы 0xAARRGGBB, где каждый из четырех компонентов находится в диапазоне от 0x00 до 0xFF. Компонент AA является альфа-значением, RR — это красный цвет, GG зеленый, а BB — синий.

bOpacity
[in] TRUE Значение , если новый цвет смешивается с непрозрачностью; FALSE Если это не так.

Remarks

Этот метод получает WM_DWMNCRENDERINGCHANGED сообщение уведомления, описанное в пакете SDK для Windows.

Примечание

Это функция-член вызывается платформой, чтобы разрешить приложению обработать сообщение 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 обнаруживает, что более 12,5 процента системного времени в течение 30–60-секундного интервала тратится на сжатие памяти.

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 списка каждый раз, когда приложение добавляет новый элемент.

Два элемента в поле со списком lpCompareItemStructили списке реформируются в структуре, на которую COMPAREITEMSTRUCT указывает . OnCompareItem должен возвращать значение, указывающее, какие элементы должны отображаться перед другим. Как правило, Windows выполняет этот вызов несколько раз, пока не определит точное положение нового элемента.

hwndItem Если элемент COMPAREITEMSTRUCT структуры принадлежит объекту CListBox или CComboBox объекту, CompareItem вызывается виртуальная функция соответствующего класса. Переопределите CComboBox::CompareItem или CListBox::CompareItem в производном CListBox или CComboBox классе для сравнения элементов.

Примечание

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

CWnd::OnCompositionChanged

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

afx_msg void OnCompositionChanged();

Remarks

Этот метод получает WM_DWMCOMPOSITIONCHANGED уведомление, описанное в пакете SDK для Windows.

Примечание

Это функция-член вызывается платформой, чтобы разрешить приложению обработать сообщение 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 Элемент управления "Кнопка"

  • 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 Сканировать код (значение, зависящее от OEM). Низкий байт слова высокого порядка.
8 Расширенный ключ, например ключ функции или ключ на цифровой клавиатуре (1, если он является расширенным ключом; в противном случае — 0).
9-10 Не используется.
11-12 Используется внутри Windows.
13 Код контекста (1, если клавиша ALT удерживается, пока нажимается клавиша; в противном случае — 0).
14 Предыдущее состояние ключа (1, если ключ не работает перед вызовом, 0, если ключ включен).
15 Состояние перехода (1, если клавиша отпущена, 0, если нажата клавиша).

Remarks

Эту функцию-член можно использовать для указания символьного значения мертвого ключа. Мертвый ключ — это ключ, такой как символ umlaut (двойная точка), который объединяется с другими символами для формирования составного символа. Например, символ umlaut-O состоит из мертвого ключа, umlaut и ключа O.

Приложение обычно используется для OnDeadChar отправки отзывов пользователей о каждом нажатии клавиши. Например, приложение может отображать акцент в текущей позиции символа, не перемещая курсор.

Так как между нажатием клавиш и OnDeadChar вызовами не обязательно существует связь "один к одному", информация обычно nFlags не полезна для приложений. Сведения, приведенные в этом nFlags разделе, относятся только к последнему вызову OnKeyUp функции-члена или OnKeyDown функции-члена, которая предшествует вызову OnDeadChar .

Для клавиатур IBM Enhanced 101 и 102 расширенные клавиши — это правая клавиша ALT и правая клавиша CTRL в главном разделе клавиатуры; клавиши INS, DEL, HOME, END, PAGE UP, PAGE DOWN и стрелки в кластерах слева от цифровой клавиатуры; и клавиши косой черты (/) и ВВОД в цифровой клавиатуре. Некоторые другие клавиатуры могут поддерживать бит расширенной клавиши.nFlags

Примечание

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

CWnd::OnDeleteItem

Платформа вызывает эту функцию-член, чтобы сообщить владельцу поля списка или поля со списком, что поле списка или поле со списком CComboBox::DeleteStringCListBox::DeleteStringCComboBox::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
Указывает на имя устройства, указанное в файле WIN.INIинициализации Windows.

Remarks

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

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

Примечание

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

CWnd::OnDrawClipboard

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

afx_msg void OnDrawClipboard();

Remarks

Только приложения, присоединенные к цепочке clipboard-viewer путем вызова 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
[out] Задайте для него TRUE значение, если реализация инициализирует альфа-канал растрового изображения, выбранного в dc.

Remarks

Переопределите этот метод в производном классе и нарисуйте указанный контекст устройства для настройки эскизов и просмотра. В противном случае bThumbnailTRUEszRequiredThumbnailSize можно игнорировать. В этом случае следует помнить, что вы рисуете растровое изображение полного размера (т. е. растровое изображение, охватывающее всю клиентную область). Контекст устройства (dc) поставляется с выбранным 32-разрядным растровым изображением. Реализация по умолчанию отправляется WM_PRINT в это окно с PRF_CHILDRENPRF_CLIENTфлагами, а также PRF_NONCLIENT флагами.

CWnd::OnDrawItem

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

afx_msg void OnDrawItem(
    int nIDCtl,
    LPDRAWITEMSTRUCT lpDrawItemStruct);

Параметры

nIDCtl
Содержит идентификатор элемента управления, отправляющего WM_DRAWITEM сообщение. Если меню отправило сообщение, nIDCtl содержит значение 0.

lpDrawItemStruct
Указывает длинный указатель на структуру DRAWITEMSTRUCT данных, содержащую сведения об отрисованном элементе и типе документа.

Remarks

Член itemActionDRAWITEMSTRUCT структуры определяет выполняемую операцию рисования. Данные в этом элементе позволяют владельцу элемента управления определить, какое действие рисования требуется.

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

hwndItem Если член принадлежит объекту CButton, CMenuCListBoxили 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 включен или отключен объект. Этот параметр имеет значение, если CWnd он включен. Он указывает FALSETRUECWnd, что он отключен.

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 уведомление, описанное в пакете SDK для Windows.

Окно вводит модальный цикл перемещения или изменения размера, когда пользователь щелкает строку заголовка окна или границу размера, или когда окно передает WM_SYSCOMMAND сообщение функции и параметр wParam этого сообщения CWnd::DefWindowProc указывает SC_MOVE или SC_SIZE.

Примечание

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

CWnd::OnEraseBkgnd

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

afx_msg BOOL OnEraseBkgnd(CDC* pDC);

Параметры

pDC
Указывает объект контекста устройства.

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

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

Remarks

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

Реализация по умолчанию удаляет фон с помощью кисти фона класса окна, указанной hbrBackground членом структуры класса окна.

Если элемент 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 уведомление, описанное в пакете SDK для Windows.

Окно вводит модальный цикл перемещения или изменения размера, когда пользователь щелкает заголовок окна или границу размера, или когда окно передает WM_SYSCOMMAND сообщение функции, а wParam параметр этого сообщения CWnd::DefWindowProc указывает SC_MOVE или SC_SIZE.

Примечание

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

CWnd::OnFontChange

Все окна верхнего уровня в системе получают OnFontChange вызов от платформы после того, как приложение изменяет пул ресурсов шрифтов.

afx_msg void OnFontChange();

Remarks

Приложение, которое добавляет или удаляет шрифты из системы (например, через AddFontResource функцию или RemoveFontResource функцию Windows), должно отправлять WM_FONTCHANGE сообщение во все окна верхнего уровня.

Чтобы отправить это сообщение, используйте SendMessage функцию Windows с параметром hWndHWND_BROADCAST.

CWnd::OnGetDlgCode

Вызывается, чтобы элемент управления мог самостоятельно обрабатывать нажатия на клавиши со стрелками и клавишу TAB.

afx_msg UINT OnGetDlgCode();

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

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

  • DLGC_BUTTON Кнопка (универсальная).

  • DLGC_DEFPUSHBUTTON Pushbutton по умолчанию.

  • DLGC_HASSETSELEM_SETSEL Сообщения.

  • DLGC_UNDEFPUSHBUTTON Обработка pushbutton по умолчанию не используется. (Приложение может использовать этот флаг, DLGC_BUTTON чтобы указать, что он обрабатывает ввод кнопки, но использует систему для обработки pushbutton по умолчанию.)

  • DLGC_RADIOBUTTON Переключатель.

  • DLGC_STATIC Статический элемент управления.

  • DLGC_WANTALLKEYS Все входные данные с клавиатуры.

  • DLGC_WANTARROWS Клавиши со стрелками.

  • DLGC_WANTCHARSWM_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
[in] Идентификатор горячего ключа, создающего сообщение. Если сообщение было создано системным горячим ключом, этот параметр будет иметь одно из следующих значений:

  • IDHOT_SNAPDESKTOP — нажата горячая клавиша на рабочем столе.
  • IDHOT_SNAPWINDOW — нажата горячая клавиша окна привязки.

nKey1
[in] Побитовое сочетание флагов (OR), указывающее клавиши, которые были нажаты в сочетании с клавишей, указанной параметром nKey2 . Допустимые значения:

  • MOD_ALT — удерживается любой из клавиш ALT.
  • MOD_CONTROL — удерживается клавиша CTRL.
  • MOD_SHIFT — удерживается любой из клавиш SHIFT.
  • MOD_WIN — любой из ключей WINDOWS удерживался. Эти ключи помечены логотипом Microsoft Windows.

nKey2
[in] Код виртуального ключа горячего ключа.

Remarks

Этот метод получает WM_HOTKEY уведомление, описанное в пакете SDK для Windows. Это сообщение помещается в начало очереди сообщений, связанной с потоком, который зарегистрировал горячий ключ. Используйте функцию 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
[in] Этот флаг может содержать следующие значения:

  • GIDC_ARRIVAL — в систему добавлено новое устройство.
  • GIDC_REMOVAL — Устройство было удалено из системы.

Remarks

Этот метод получает WM_INPUT_DEVICE_CHANGE уведомление, описанное в пакете SDK для Windows. Это универсальное сообщение устройства ввода.

Примечание

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

CWnd::OnInputLangChange

Платформа вызывает этот элемент для самого верхнего затронутого окна после изменения языка ввода приложения.

afx_msg void OnInputLangChange(
    UINT nCharSet,
    UINT nLocaleId);

Параметры

nCharSet
[in] Кодировка нового языкового стандарта. Дополнительные сведения см. в lfCharSet описании LOGFONT параметра структуры.

nLocaleId
[in] Входной идентификатор языкового стандарта. Дополнительные сведения см. в разделе "Константы идентификаторов языка" и "Строки".

Remarks

Этот метод получает WM_INPUTLANGCHANGE сообщение уведомления, описанное в пакете SDK для Windows.

Примечание

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

CWnd::OnInputLangChangeRequest

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

afx_msg void OnInputLangChangeRequest(
    UINT nFlags,
    UINT nLocaleId);

Параметры

nFlags
[in] Побитовая комбинация флагов, указывающая, что новый языковой стандарт был выбран из предыдущего или следующего языкового стандарта в установленном списке языковых стандартов или что новый макет клавиатуры входного языкового стандарта можно использовать с системным набором символов. Возможные значения: INPUTLANGCHANGE_BACKWARD, INPUTLANGCHANGE_FORWARDи INPUTLANGCHANGE_SYSCHARSET.

nLocaleId
[in] Входной идентификатор языкового стандарта. Дополнительные сведения см. в разделе "Константы идентификаторов языка" и "Строки".

Remarks

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

Примечание

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

CWnd::OnKeyDown

Платформа вызывает эту функцию-член при нажатии клавиши без системы.

afx_msg void OnKeyDown(
    UINT nChar,
    UINT nRepCnt,
    UINT nFlags);

Параметры

nChar
Указывает код виртуального ключа заданного ключа. Список стандартных кодов виртуальных ключей см. в разделе Winuser.h.

nRepCnt
Число повторов (количество повторений нажатия клавиши повторяется в результате того, что пользователь удерживает клавишу).

nFlags
Указывает код сканирования, код перехода ключа, предыдущее состояние ключа и код контекста, как показано в следующем списке:

Значение Описание
0-7 Сканировать код (значение, зависящее от OEM).
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 Enhanced 101 и 102 расширенные клавиши — это правая клавиша ALT и правая клавиша CTRL в главном разделе клавиатуры; клавиши INS, DEL, HOME, END, PAGE UP, PAGE DOWN и стрелки в кластерах слева от цифровой клавиатуры; и клавиши косой черты (/) и ВВОД в цифровой клавиатуре. Некоторые другие клавиатуры могут поддерживать бит расширенной клавиши.nFlags

Примечание

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

CWnd::OnKeyUp

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

afx_msg void OnKeyUp(
    UINT nChar,
    UINT nRepCnt,
    UINT nFlags);

Параметры

nChar
Указывает код виртуального ключа заданного ключа. Список стандартных кодов виртуальных ключей см. в разделе Winuser.h

nRepCnt
Число повторов (количество повторений нажатия клавиши повторяется в результате того, что пользователь удерживает клавишу).

nFlags
Указывает код сканирования, код перехода ключа, предыдущее состояние ключа и код контекста, как показано в следующем списке:

Значение Описание
0-7 Сканировать код (значение, зависящее от OEM). Низкий байт слова высокого порядка.
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 Enhanced 101 и 102- расширенные клавиши — это правая клавиша ALT и правая клавиша CTRL в главном разделе клавиатуры; клавиши INS, DEL, HOME, END, PAGE UP, PAGE DOWN и стрелки в кластерах слева от цифровой клавиатуры; и клавиши косой черты (/) и ВВОД на цифровой клавиатуре. Некоторые другие клавиатуры могут поддерживать бит расширенного ключа в nFlags.

Примечание

Это функция-член вызывается платформой, чтобы разрешить приложению обработать сообщение 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_DBLCLKSWNDCLASS будут принимать OnLButtonDblClk вызовы. Это значение по умолчанию для окон класса Microsoft Foundation. 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_DBLCLKSWNDCLASS будут принимать OnMButtonDblClk вызовы. Это значение по умолчанию для всех окон класса Microsoft Foundation. Windows создает вызов, когда пользователь нажимает, отпускаетOnMButtonDblClk, а затем снова нажимает среднюю кнопку мыши в пределах ограничения времени двойного щелчка. Двойной щелчок средней кнопки мыши фактически создает четыре события: WM_MBUTTONDOWN и WM_MBUTTONUP сообщения, звонок и другое WM_MBUTTONDBLCLKWM_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 для активации. При получении дочернего окна pActivateWnd MDI содержит указатель на активируемое дочернее окно. Этот указатель может быть временным и не должен храниться для последующего использования.

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 измерения элемента управления и позволяет Windows правильно обрабатывать взаимодействие пользователя с элементом управления.

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

Windows инициирует вызов OnMeasureItem владельца полей со списком и списков, созданных с OWNERDRAWFIXED помощью стиля перед отправкой WM_INITDIALOG сообщения. В результате, когда владелец получает этот вызов, Windows еще не определил высоту и ширину шрифта, используемого в элементе управления; вызовы функций и вычисления, требующие этих значений, должны происходить в главной функции приложения или библиотеки.

Если измеряемый элемент является CMenuобъектом или CListBoxCComboBox объектом, MeasureItem вызывается виртуальная функция соответствующего класса. Переопределите MeasureItem функцию-член класса соответствующего элемента управления, чтобы вычислить и задать размер каждого элемента.

OnMeasureItem вызывается только в том случае, если класс элемента управления создается во время выполнения или создается с помощью LBS_OWNERDRAWVARIABLE стиля или CBS_OWNERDRAWVARIABLE стиля. Если элемент управления создается редактором диалогов, OnMeasureItem не будет вызываться. Это связано с тем, что WM_MEASUREITEM сообщение отправляется в начале процесса создания элемента управления. При использовании подкласса или DDX_ControlSubclassDlgItemSubclassWindowподкласса обычно происходит после процесса создания. Таким образом, нет способа обрабатывать WM_MEASUREITEM сообщение в функции элемента управления OnChildNotify , который является механизмом, используемым MFC для реализации ON_WM_MEASUREITEM_REFLECT.

Примечание

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

CWnd::OnMenuChar

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

afx_msg LRESULT OnMenuChar(
    UINT nChar,
    UINT nFlags,
    CMenu* pMenu);

Параметры

nChar
В зависимости от параметров сборки указывает символ ANSI или Юникод, нажатый пользователем.

nFlags
Содержит флаг, MF_POPUP если меню является всплывным меню. Он содержит флаг, MF_SYSMENU если меню является меню "Элемент управления".

pMenu
Содержит указатель на выбранный.CMenu Указатель может быть временным и не должен храниться.

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

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

Значение Описание
0 Сообщает Windows отменить символ, нажатый пользователем и создающий короткий сигнал на системном динамике.
1 Сообщает Windows закрыть текущее меню.
2 Сообщает Windows, что слово с низким порядком возвращаемого значения содержит номер элемента для определенного элемента. Этот элемент выбирается Windows.

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

Remarks

Он отправляется в CWnd меню, которому принадлежит меню. OnMenuChar также вызывается, когда пользователь нажимает клавиши ALT и любой другой ключ, даже если клавиша не соответствует символу mnemonic. В этом случае pMenu указывает на меню, принадлежащей CWndей, и nFlags имеет значение 0.

Примечание

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

CWnd::OnMenuDrag

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

afx_msg UINT OnMenuDrag(
    UINT nPos,
    CMenu* pMenu);

Параметры

nPos
[in] Позиция индекса элемента меню при запуске операции перетаскивания.

pMenu
[in] Указатель на CMenu объект, содержащий пункт меню.

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

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

Remarks

Этот метод получает WM_MENUDRAG уведомление, описанное в пакете SDK для Windows.

Примечание

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

CWnd::OnMenuGetObject

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

afx_msg UINT OnMenuGetObject(MENUGETOBJECTINFO* pMenuGetObjectInfo);

Параметры

pMenu
[in] Указатель на структуру MENUGETOBJECTINFO , содержащую сведения о меню перетаскивания, на котором находится курсор мыши.

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

Возвращаемое значение Значение
MNGO_NOERROR Указатель интерфейса, поддерживающий операции перетаскивания и перетаскивания, возвращается в pvObj элементе MENUGETOBJECTINFO структуры. В настоящее время поддерживается только IDropTarget интерфейс.
MNGO_NOINTERFACE Интерфейс перетаскивания и перетаскивания не поддерживается.

Remarks

Этот метод получает WM_MENUGETOBJECT уведомление, описанное в пакете SDK для Windows.

Примечание

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

CWnd::OnMenuRButtonUp

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

afx_msg void OnMenuRButtonUp(
    UINT nPos,
    CMenu* pMenu);

Параметры

nPos
[in] Позиция индекса элемента меню при освобождении правой кнопки мыши.

pMenu
[in] Указатель на CMenu объект, содержащий пункт меню.

Remarks

Этот метод получает WM_MENURBUTTONUP уведомление, описанное в пакете SDK для Windows. Сообщение 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
[in] Побитовое сочетание флагов (OR), указывающее, какие клавиши-модификаторы нажимаются. Например, флаг указывает, MK_CONTROL что нажата клавиша CTRL.

point
[in] CPoint Объект, указывающий x и y координаты курсора относительно левого верхнего угла клиентской области.

Remarks

Этот метод получает WM_MOUSEHOVER уведомление, описанное в пакете SDK для Windows.

Параметр 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

Платформа вызывает этот элемент, когда горизонтальное колесико прокрутки мыши наклоняется или вращается.

afx_msg void OnMouseHWheel(
    UINT nFlags,
    short zDelta,
    CPoint pt);

Параметры

nFlags
[in] Побитовое сочетание флагов (OR), указывающее, какие клавиши-модификаторы нажимаются. Например, флаг указывает, MK_CONTROL что нажата клавиша CTRL. Список флагов см. в подразделе "Параметры сообщения" в разделе "О вводе мыши".

zDelta
[in] Указывает расстояние поворота колесика, выраженное WHEEL_DELTAв кратных или делениях, равное 120. Положительное значение указывает, что колесо было повернуто вправо; отрицательное значение указывает, что колесо было повернуто влево.

pt
[in] CPoint Объект, указывающий x и y координаты курсора относительно левого верхнего угла клиентской области.

Remarks

Этот метод получает WM_MOUSEHWHEEL сообщение уведомления, описанное в пакете SDK для Windows. Это сообщение отправляется в окно с фокусом при наклоне или повороте горизонтального колесика прокрутки мыши.

Примечание

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

CWnd::OnMouseLeave

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

afx_msg void OnMouseLeave();

Remarks

Этот метод получает WM_MOUSELEAVE уведомление, описанное в пакете SDK для Windows.

Примечание

Это функция-член вызывается платформой, чтобы разрешить приложению обработать сообщение 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 автоматически направляет сообщение в элемент управления или дочернее окно с фокусом. Функция DefWindowProc Win32 распространяет сообщение вверх по родительской цепочке в окно, которое обрабатывает его.

Параметр 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, первый прямоугольник в массиве, заданном элементом rgrcNCCALCSIZE_PARAMS структуры, содержит координаты окна. Для дочернего окна координаты относятся к клиентской области родительского окна. Для окон верхнего уровня координаты являются координатами экрана. Приложение должно изменить rgrc[0] прямоугольник в соответствии с размером и положением клиентской области.

Допустимые rgrc[1] прямоугольники rgrc[2] являются допустимыми только в том TRUEслучаеbCalcValidRects. В этом случае 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
[in] Значение проверки нажатия, возвращаемое CWnd::DefWindowProc функцией в результате обработки WM_NCHITTEST сообщения.

point
[in] Объект CPoint , указывающий координаты x и y курсора относительно левого верхнего угла экрана.

Remarks

Этот метод получает WM_NCMOUSEHOVER уведомление, описанное в пакете SDK для Windows.

Примечание

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

CWnd::OnNcMouseLeave

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

afx_msg void OnNcMouseLeave();

Remarks

Этот метод получает WM_NCMOUSELEAVE уведомление, описанное в пакете SDK для Windows.

Примечание

Это функция-член вызывается платформой, чтобы разрешить приложению обработать сообщение 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
[in] TRUE if Desktop Window Manager (DWM) rendering is enabled for the nonclient area of the window; FALSE if rendering is disabled.

Remarks

Этот метод получает WM_DWMNCRENDERINGCHANGED уведомление, описанное в пакете SDK для Windows.

Примечание

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

CWnd::OnNcXButtonDblClk

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

void OnNcXButtonDblClk(
    short nHitTest,
    UINT nButton,
    CPoint point);

Параметры

nHitTest
[in] Значение проверки нажатия, возвращаемое CWnd::DefWindowProc функцией в результате обработки WM_NCHITTEST сообщения.

nButton
[in] Значение, если XBUTTON1 первая кнопка Microsoft Intellimouse X дважды щелкается или XBUTTON2 если вторая кнопка X дважды щелкается.

point
[in] CPoint Объект, указывающий x и y координаты курсора относительно левого верхнего угла клиентской области.

Remarks

Этот метод получает WM_XBUTTONDBLCLK уведомление, описанное в пакете SDK для Windows. Это сообщение отправляется в окно, содержащее курсор. Если окно захватило мышь, это сообщение не публикуется.

Примечание

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

CWnd::OnNcXButtonDown

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

afx_msg void OnNcXButtonDown(
    short nHitTest,
    UINT nButton,
    CPoint point);

Параметры

nHitTest
[in] Значение проверки нажатия, возвращаемое CWnd::DefWindowProc функцией в результате обработки WM_NCHITTEST сообщения.

nButton
[in] Значение, указывающее, XBUTTON1 нажата ли первая кнопка мыши X или XBUTTON2 если нажата вторая кнопка X.

point
[in] CPoint Объект, указывающий x и y координаты курсора относительно левого верхнего угла экрана.

Remarks

Этот метод получает WM_NCXBUTTONDOWN уведомление, описанное в пакете SDK для Windows. Это сообщение отправляется в окно, содержащее курсор. Если окно захватило мышь, это сообщение не публикуется.

Примечание

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

CWnd::OnNcXButtonUp

Платформа вызывает эту функцию-член, когда пользователь отпускает XBUTTON1 или XBUTTON2 мышь, когда курсор находится в неклиентной области окна.

afx_msg void OnNcXButtonUp(
    short nHitTest,
    UINT nButton,
    CPoint point);

Параметры

nHitTest
[in] Значение проверки нажатия, возвращаемое CWnd::DefWindowProc функцией в результате обработки WM_NCHITTEST сообщения.

nButton
[in] Значение, указывающее, XBUTTON1 выпущена ли первая кнопка мыши X или XBUTTON2 если отпустится вторая кнопка X.

point
[in] Объект CPoint , указывающий координаты x и y курсора относительно левого верхнего угла экрана.

Remarks

Этот метод получает WM_NCXBUTTONUP уведомление, описанное в пакете SDK для Windows. Это сообщение отправляется в окно, содержащее курсор. Если окно захватило мышь, это сообщение не публикуется.

Примечание

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

CWnd::OnNextMenu

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

afx_msg void OnNextMenu(
    UINT nKey,
    LPMDINEXTMENU lpMdiNextMenu);

Параметры

nKey
[in] Побитовое сочетаниеOR флагов, указывающее, какие клавиши-модификаторы нажимаются. Например, флаг указывает, MK_CONTROL что нажата клавиша CTRL. Список флагов см. в подразделе "Параметры сообщения" в разделе "О вводе мыши".

lpMdiNextMenu
[in] Указатель на структуру MDINEXTMENU , содержащую сведения о меню для активации.

Remarks

Этот метод получает WM_UNINITMENUPOPUP уведомление, описанное в пакете SDK для Windows. В ответ на это сообщение приложение может задать 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 или Юникод в сообщении WM_NOTIFY уведомления.

afx_msg UINT OnNotifyFormat(
    CWnd* pWnd,
    UINT nCommand);

Параметры

pWnd
[in] Указатель на CWnd объект, представляющий окно отправки WM_NOTIFY сообщения. Этот параметр является указателем на элемент управления, если nCommand параметр имеет значение NF_QUERY, или указатель на родительское окно элемента управления, если nCommand есть NF_REQUERY.

nCommand
[in] Значение команды, которое специализируется на сообщении WM_NOTIFY . Допустимые значения:

  • NF_QUERY — Это запрос, определяющий, следует ли использовать структуры ANSI или Юникод в WM_NOTIFY сообщениях. Это сообщение отправляется из элемента управления в родительское окно во время создания элемента управления и в ответ на NF_REQUERY форму этого сообщения.
  • NF_REQUERY — Сообщение — это запрос на отправку NF_QUERY формы этого сообщения элементу управления в его родительское окно. Этот запрос отправляется из родительского окна и запрашивает у элемента управления запрос родительского элемента о типе структуры, используемой в WM_NOTIFY сообщениях. nCommand Если параметр имеет значениеNF_REQUERY, возвращаемое значение является результатом операции повторного запроса.

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

Возвращаемое значение Значение
NFR_ANSI Структуры ANSI должны использоваться в WM_NOTIFY сообщениях, отправляемых элементом управления.
NFR_UNICODE Структуры Юникода должны использоваться в WM_NOTIFY сообщениях, отправляемых элементом управления.
0 Произошла ошибка.

Remarks

Этот метод получает WM_NOTIFYFORMAT уведомление, описанное в пакете SDK для Windows. 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см. в следующих разделах пакета SDK для Windows:

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
[in] Событие управления питанием.

nEventData
[in] Данные, относящиеся к событиям.

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

Если событие является запросом, вернитесь TRUE , чтобы предоставить запрос или BROADCAST_QUERY_DENY отклонить запрос.

Remarks

Этот метод получает WM_POWERBROADCAST сообщение, описанное в пакете SDK для Windows.

Параметр 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_ACTIVEWindows XP: элемент управления должен быть нарисован в стиле, используемом для активных элементов управления.

Remarks

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

CWnd::OnRawInput

Платформа вызывает эту функцию-член, когда текущее окно получает необработанные входные данные.

afx_msg void OnRawInput(
    UINT nInputCode,
    HRAWINPUT hRawInput);

Параметры

nInputCode
[in] Входной код, указывающий, произошли ли входные данные, когда приложение находилось на переднем плане или нет. В любом случае приложение должно вызываться CWnd::DefWindowProc , чтобы система может выполнить очистку. Этот параметр может иметь одно из следующих значений:

  • RIM_INPUT — входные данные произошли, когда приложение находилось на переднем плане.
  • RIM_INPUTSINK — входные данные произошли, когда приложение не находилось на переднем плане.

hRawInput
[in] RAWINPUT Обработка структуры, содержащей необработанные входные данные с устройства.

Remarks

Этот метод получает WM_INPUT уведомление, описанное в пакете SDK для Windows.

Примечание

Это функция-член вызывается платформой, чтобы разрешить приложению обработать сообщение 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 звонки. Это значение по умолчанию для окон в библиотеке классов Microsoft Foundation. 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
[in] Код состояния описывает изменение состояния сеанса.

nId
[in] Идентификатор сеанса.

Remarks

Этот метод получает WM_WTSSESSION_CHANGE уведомление, описанное в пакете SDK для Windows.

Параметр 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 с кнопкой мыши, messageMessageBeep вызывается функция-член.

Параметр сообщения равен 0 при входе в CWnd режим меню.

Примечание

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

CWnd::OnSetFocus

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

afx_msg void OnSetFocus(CWnd* pOldWnd);

Параметры

pOldWnd
Содержит CWnd объект, который теряет фокус ввода (может быть NULL). Указатель может быть временным и не должен храниться для последующего использования.

Remarks

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

Примечание

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

CWnd::OnSettingChange

Платформа вызывает OnSettingChange все окна верхнего уровня, когда функция Win32 SystemParametersInfo изменяет системный параметр.

afx_msg void OnSettingChange(
    UINT uFlags,
    LPCTSTR lpszSection);

Параметры

uFlags
Когда система отправляет сообщение в результате SystemParametersInfo вызова, этот параметр является флагом, указывающим системный параметр, который был изменен. Список значений смSystemParametersInfo. в пакете SDK для Windows. Когда приложение отправляет сообщение, этот параметр должен иметь значение 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_MINIMIZEDSIZE_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
Идентифицирует глобальный объект памяти. Объект памяти содержит структуру RECT данных, которая указывает область для закрашиваемого владельца буфера обмена.

Remarks

Функция-член OnSizeClipboard вызывается с прямоугольником NULL (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_SYSKEYUPWM_SYSKEYDOWN сообщения претворяются.

afx_msg void OnSysChar(
    UINT nChar,
    UINT nRepCnt,
    UINT nFlags);

Параметры

nChar
Задает код ключа ASCII ключа клавиши control-menu.

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-menu. (Список стандартных кодов виртуальных ключей см. в разделе Winuser.h)

Если код контекста равен 0, WM_SYSCHAR можно передать WM_SYSCHAR сообщение TranslateAccelerator в функцию Windows, которая будет обрабатывать его, как если бы это было нормальное ключевое сообщение, а не системный символьный ключ. Это позволяет использовать сочетания клавиш с активным окном, даже если активное окно не имеет фокуса ввода.

Для клавиатур IBM Enhanced 101 и 102 расширенные клавиши — это правая клавиша ALT и правая клавиша CTRL в главном разделе клавиатуры; клавиши INS, DEL, HOME, END, PAGE UP, 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_CLOSECWnd Закройте объект.

  • SC_HOTKEYCWnd Активируйте объект, связанный с указанным приложением горячим ключом. Слово с низким порядком lParam идентифицирует HWND окно для активации.

  • SC_HSCROLL Прокрутите по горизонтали.

  • SC_KEYMENU Получение меню с помощью нажатия клавиши.

  • SC_MAXIMIZE (или SC_ZOOM) CWnd Развернуть объект.

  • SC_MINIMIZE (или SC_ICON) CWnd Свернуть объект.

  • SC_MOUSEMENU Получите меню с помощью щелчка мыши.

  • SC_MOVECWnd Перемещение объекта.

  • SC_NEXTWINDOW Перейдите к следующему окну.

  • SC_PREVWINDOW Перейдите к предыдущему окну.

  • SC_RESTORE Окно восстановления до нормального положения и размера.

  • SC_SCREENSAVE Выполняет приложение средства сохранения экрана, указанное в разделе SYSTEM.INI [boot] файла.

  • SC_SIZECWnd Размер объекта.

  • SC_TASKLISTВыполните или активируйте приложение диспетчера задач Windows.

  • SC_VSCROLL Прокрутите по вертикали.

lParam
Если с помощью мыши выбрана команда "Меню управления", lParam она содержит координаты курсора. Слово с низким порядком содержит координату x, а слово высокого порядка содержит координату y. В противном случае этот параметр не используется.

  • SC_HOTKEY Активируйте окно, связанное с указанным приложением горячим ключом. Слово с низким порядком lParam идентифицирует окно для активации.

  • SC_SCREENSAVEВыполните приложение для сохранения экрана, указанное в разделе "Рабочий стол" панель управления.

Remarks

По умолчанию выполняет запрос меню управления для предопределенных действий, OnSysCommand указанных в предыдущей таблице.

В WM_SYSCOMMAND сообщениях четыре бита nID параметра с низким порядком используются внутри Windows. Когда приложение проверяет значение nID, оно должно объединить значение 0xFFF0 со nID значением с помощью побитового оператора AND, чтобы получить правильный результат.

Элементы меню в меню "Элемент управления" можно изменить с помощью GetSystemMenuAppendMenuфункций , 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 Сканировать код (значение, зависящее от OEM). Низкий байт слова высокого порядка.
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 Сканировать код (значение, зависящее от OEM). Низкий байт слова высокого порядка.
8 Расширенный ключ, например ключ функции или ключ на цифровой клавиатуре (1, если он является расширенным ключом; в противном случае — 0).
9-10 Не используется.
11-12 Используется внутри Windows.
13 Код контекста (1, если клавиша ALT удерживается вниз при нажатии клавиши, 0 в противном случае).
14 Предыдущее состояние ключа (1, если ключ не работает до отправки сообщения, 0, если ключ включен).
15 Состояние перехода (1, если клавиша отпущена, 0, если нажата клавиша).

Для OnSysKeyDown вызовов бит перехода ключа (бит 15) равен 0. Бит контекстного кода (бит 13) равен 1, если клавиша ALT не работает во время нажатия клавиши; Значение равно 0, если сообщение отправляется в активное окно, так как окно не имеет фокуса ввода.

Remarks

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

Если код контекста равен 0, WM_SYSKEYDOWN полученное OnSysKeyDown сообщение может быть передано TranslateAccelerator в функцию Windows, которая будет обрабатывать его, как если бы это было обычное ключевое сообщение, а не сообщение с системным ключом. Это позволяет использовать сочетания клавиш с активным окном, даже если активное окно не имеет фокуса ввода.

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

Для клавиатур IBM Enhanced 101 и 102 расширенные клавиши — это правая клавиша ALT и правая клавиша CTRL в главном разделе клавиатуры; клавиши INS, DEL, HOME, END, PAGE UP, 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 Сканировать код (значение, зависящее от OEM). Низкий байт слова высокого порядка.
8 Расширенный ключ, например ключ функции или ключ на цифровой клавиатуре (1, если он является расширенным ключом; в противном случае — 0).
9-10 Не используется.
11-12 Используется внутри Windows.
13 Код контекста (1, если клавиша ALT удерживается вниз при нажатии клавиши, 0 в противном случае).
14 Предыдущее состояние ключа (1, если ключ не работает до отправки сообщения, 0, если ключ включен).
15 Состояние перехода (1, если клавиша отпущена, 0, если нажата клавиша).

Для OnSysKeyUp вызовов бит перехода ключа (бит 15) равен 1. Бит контекстного кода (бит 13) равен 1, если клавиша ALT не работает во время нажатия клавиши; Значение равно 0, если сообщение отправляется в активное окно, так как окно не имеет фокуса ввода.

Remarks

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

Если код контекста равен 0, WM_SYSKEYUP полученное OnSysKeyUp сообщение может быть передано TranslateAccelerator в функцию Windows, которая будет обрабатывать его, как если бы это было обычное ключевое сообщение, а не сообщение с системным ключом. Это позволяет использовать сочетания клавиш с активным окном, даже если активное окно не имеет фокуса ввода.

Для клавиатур IBM Enhanced 101 и 102 расширенные клавиши — это правая клавиша ALT и правая клавиша CTRL в главном разделе клавиатуры; клавиши INS, DEL, HOME, END, PAGE UP, PAGE DOWN и стрелки в кластерах слева от цифровой клавиатуры; и клавиши косой черты (/) и ВВОД в цифровой клавиатуре. Некоторые другие клавиатуры могут поддерживать бит расширенного ключа в nFlags.

Для пользователей, отличных от США Расширенные 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 Указатель на строку, которая должна отображаться в указанном окне

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

Если элемент управления подсказки найден, идентификатор элемента управления окна. Если элемент управления подсказкой не найден, -1.

Remarks

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

Если область, с которой связана подсказка, не является кнопкой, OnToolHitTest задает флаги TTF_NOTBUTTON структуры и TTF_CENTERTIP.

Переопределите для предоставления OnToolHitTest информации, отличной от предоставленной по умолчанию.

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

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 касания.

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
[in] Задает код символа нажатия клавиши.

nRepCnt
[in] Указывает число повторов для текущего сообщения. Значением является число попыток автоматического нажатия клавиши в результате того, что пользователь удерживает ключ. Если нажатие клавиши удерживается достаточно долго, отправляется несколько сообщений. Однако счетчик повторов не является накопительным.

nFlags
[in] Флаги, указывающие код сканирования, расширенный ключ, контекстный код, предыдущее состояние ключа и состояние перехода, как показано в следующей таблице:

Пометка битов Описание
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 уведомление, описанное в пакете SDK для Windows. Сообщение WM_UNICHAR предназначено для отправки или публикации символов Юникода в окна ANSI. Это эквивалентно сообщению, но использует кодировку WM_CHAR формата преобразования Юникод-32 (UTF-32), тогда как в WM_CHAR сообщении используется UTF-16.

Примечание

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

CWnd::OnUnInitMenuPopup

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

afx_msg void OnUnInitMenuPopup(
    CMenu* pPopupMenu,
    UINT nFlags);

Параметры

pMenu
[in] Указатель на CMenu объект, представляющий меню или подменю.

nFlags
[in] Меню, которое было уничтожено. В настоящее время это может быть только меню окна. MF_SYSMENU

Remarks

Этот метод получает WM_UNINITMENUPOPUP уведомление, описанное в пакете SDK для Windows.

Примечание

Это функция-член вызывается платформой, чтобы разрешить приложению обработать сообщение 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_ACTIVEWindows XP: элемент управления должен быть нарисован в стиле, используемом для активных элементов управления.

Remarks

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

CWnd::OnUserChanged

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

afx_msg void OnUserChanged();

Remarks

Этот метод получает WM_USERCHANGED сообщение уведомления, описанное в пакете SDK для Windows. Когда пользователь входит в систему или выключается, операционная система обновляет параметры пользователя. Система отправляет это сообщение сразу после обновления параметров.

Примечание

Это функция-член вызывается платформой, чтобы разрешить приложению обработать сообщение 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_THUMBPOSITIONSB_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
[in] TRUE Значение , если текущее окно развернуто, и FALSE если это не так.

Remarks

Этот метод получает WM_DWMWINDOWMAXIMIZEDCHANGE уведомление, описанное в пакете SDK для Windows.

Примечание

Это функция-член вызывается платформой, чтобы разрешить приложению обработать сообщение 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

Платформа вызывает эту функцию-член после внесения изменений в файл WIN.INIинициализации Windows.

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
[in] Побитовое сочетание флагов (OR), указывающее, какие клавиши-модификаторы нажимаются. Например, флаг указывает, MK_CONTROL что нажата клавиша CTRL.

nButton
[in] Значение, если XBUTTON1 первая кнопка Microsoft Intellimouse X дважды щелкается, или XBUTTON2, если вторая кнопка X дважды щелкается.

point
[in] CPoint Объект, указывающий x и y координаты курсора относительно левого верхнего угла клиентской области.

Remarks

Этот метод получает WM_XBUTTONDBLCLK уведомление, описанное в пакете SDK для Windows. Если мышь не захвачена, сообщение будет отправлено в окно под курсором. В противном случае сообщение будет опубликовано в окне, которое захватило мышь.

Параметр 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
[in] Побитовое сочетание флагов (OR), указывающее, какие клавиши-модификаторы нажимаются. Например, флаг указывает, MK_CONTROL что нажата клавиша CTRL.

nButton
[in] Значение, указывающее XBUTTON1 , была ли нажата первая кнопка Microsoft Intellimouse X или XBUTTON2 если была нажата вторая кнопка X.

point
[in] CPoint Объект, указывающий x и y координаты курсора относительно левого верхнего угла клиентской области.

Remarks

Этот метод получает WM_XBUTTONDOWN уведомление, описанное в пакете SDK для Windows. Если мышь не захвачена, сообщение будет отправлено в окно под курсором. В противном случае сообщение будет опубликовано в окне, которое захватило мышь.

Параметр 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
[in] Побитовое сочетание флагов (OR), указывающее, какие клавиши-модификаторы нажимаются. Например, флаг указывает, MK_CONTROL что нажата клавиша CTRL.

nButton
[in] Значение, указывающее, XBUTTON1 была ли первая кнопка Microsoft Intellimouse X дважды щелкать или XBUTTON2 дважды щелкнуть вторую кнопку X.

point
[in] CPoint Объект, указывающий x и y координаты курсора относительно левого верхнего угла клиентской области.

Remarks

Этот метод получает WM_XBUTTONUP уведомление, описанное в пакете SDK для Windows. Если мышь не захвачена, сообщение будет отправлено в окно под курсором. В противном случае сообщение будет опубликовано в окне, которое захватило мышь.

Параметр 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 теперь назначает элемент csthis hMenu указателю, если меню и 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, как описано в пакете SDK для Windows.

CWnd::RedrawWindow

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

BOOL RedrawWindow(
    LPCRECT lpRectUpdate = NULL,
    CRgn* prgnUpdate = NULL,
    UINT flags = RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE);

Параметры

lpRectUpdate
Указывает на структуруRECT, содержащую координаты прямоугольника обновления. Этот параметр игнорируется, если prgnUpdate содержит допустимый дескриптор региона.

prgnUpdate
Идентифицирует регион обновления. Если оба prgnUpdate и lpRectUpdateNULLесть, в регион обновления добавляется вся клиентская область.

flags
Для отмены окна используются следующие флаги:

  • RDW_ERASE Приводит к тому, что окно получает WM_ERASEBKGND сообщение при переопределении окна. Флаг RDW_INVALIDATE также должен быть указан; в противном случае RDW_ERASE не действует.

  • RDW_FRAME Приводит к тому, что любая часть неклиентной области окна, пересекающая область обновления, получает WM_NCPAINT сообщение. Флаг RDW_INVALIDATE также должен быть указан; в противном случае RDW_FRAME не действует.

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

  • RDW_INVALIDATElpRectUpdate Недопустимый или prgnUpdate (только один может быть недействителенNULL). В обоих случаях NULLокно становится недействительным.

Для проверки окна используются следующие флаги:

  • RDW_NOERASE Подавляет все ожидающие WM_ERASEBKGND сообщения.

  • RDW_NOFRAME Подавляет все ожидающие WM_NCPAINT сообщения. Этот флаг должен использоваться вместе с RDW_VALIDATE и обычно используется с RDW_NOCHILDREN. Этот параметр следует использовать с осторожностью, так как он может препятствовать правильному рисованию частей окна.

  • RDW_NOINTERNALPAINT Подавляет все ожидающие внутренние WM_PAINT сообщения. Этот флаг не влияет на WM_PAINT сообщения, полученные из недопустимых областей.

  • RDW_VALIDATElpRectUpdate Проверяет или prgnUpdate (возможно, только один из них не NULLявляется). В обоих случаях NULLпроверяется все окно. Этот флаг не влияет на внутренние WM_PAINT сообщения.

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

  • RDW_ERASENOWВызывает получение WM_NCPAINT затронутых окон (как указано RDW_ALLCHILDREN в параметрах и флагах) и RDW_NOCHILDRENWM_ERASEBKGND при необходимости сообщений перед возвратом функции. WM_PAINT сообщения откладываются.

  • RDW_UPDATENOWВызывает получение WM_ERASEBKGNDWM_NCPAINTзатронутых окон (как указано RDW_ALLCHILDREN в параметрах и RDW_NOCHILDREN флагах) и WM_PAINT сообщений при необходимости перед возвратом функции.

По умолчанию окна, затронутые RedrawWindow функцией, зависят от того, имеет ли указанное WS_CLIPCHILDREN окно стиль. Дочерние окна WS_CLIPCHILDREN окон не затрагиваются. Однако те окна, которые не WS_CLIPCHILDREN являются окнами, рекурсивно проверяются или недействительны до тех пор, пока WS_CLIPCHILDREN не будет обнаружено окно. Следующие флаги определяют, какие окна затрагиваются функцией RedrawWindow :

  • RDW_ALLCHILDREN Включает дочерние окна, если таковые имеются, в операции переопределений.

  • RDW_NOCHILDREN Исключает дочерние окна, если таковые есть, из операции переопределений.

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

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

Remarks

RedrawWindow Если функция-член используется для отмены части окна рабочего стола, это окно не получает WM_PAINT сообщение. Чтобы перезапаковать рабочий стол, приложение должно использовать CWnd::ValidateRgn, CWnd::UpdateWindowCWnd::InvalidateRgnилиRedrawWindow

CWnd::ReflectChildNotify

Эта функция сообщения вызывается платформой из OnChildNotify.

BOOL ReflectChildNotify(
    UINT message,
    WPARAM wParam,
    LPARAM lParam,
    LRESULT* pResult);

Параметры

message
Указывает отражаемое сообщение.

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

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

pResult
Результат, созданный дочерним окном, возвращаемым родительским окном. Может иметь значение NULL.

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

TRUE , если сообщение было отражено; в противном случае FALSE.

Remarks

Это вспомогающая функция, которая отражает message его источник.

Отражаемые сообщения отправляются напрямую или CWnd::OnWndMsgCCmdTarget::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 вызова. Возвращает значение, указанное как nResultEndModalLoop.

CWnd::ScreenToClient

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

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

Параметры

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

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

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 структуру , указывающую часть клиентской области для прокрутки. В противном случае lpRectNULLпрокручивается вся клиентская область. Курсор перемещается, если прямоугольник курсора пересекает прямоугольник прокрутки.

lpClipRect
Указывает на CRect объект или RECT структуру, задающую отсеченный прямоугольник для прокрутки. Прокручиваются только биты внутри этого прямоугольника. Биты за пределами этого прямоугольника не затрагиваются, даже если они находятся в lpRect прямоугольнике. В противном случае lpClipRectNULLна прямоугольнике прокрутки не выполняется обрезка.

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, , lpRectCliplpRectUpdateи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, поиск продолжается под временными окнами. В этом случае только постоянные окна, возникшие во время поиска, получают сообщение. Если 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 передает сообщение в процедуру окна и возвращается немедленно; он не ожидает завершения обработки сообщения.

CWnd::SetActiveWindow

Делает CWnd активное окно.

CWnd* SetActiveWindow();

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

Окно, которое ранее было активным.

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

Remarks

Функцию-член SetActiveWindow следует использовать с осторожностью, так как она позволяет приложению произвольно взять на себя активное окно и фокус ввода. Как правило, Windows заботится обо всех активациях.

CWnd::SetCapture

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

CWnd* SetCapture();

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

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

Remarks

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

Во время записи ввода мыши сообщения WM_NCHITTESTWM_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_DESTROY передавать сообщение в следующее окно в цепочке. WM_CHANGECBCHAIN

Эта функция-член отправляет 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 подписывается. Если этот параметр меньше TRUEnValue 0, знак "минус" помещается перед первой цифрой в строке. Если этот параметр имеет значение FALSE, nValue не подписан.

Remarks

SetDlgItemIntWM_SETTEXT отправляет сообщение заданному элементу управления.

Пример

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

CWnd::SetDlgItemText

Задает заголовок или текст элемента управления, принадлежащий окну или диалоговому окну.

void SetDlgItemText(
    int nID,
    LPCTSTR lpszString);

Параметры

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

lpszString
Указывает на CString объект или строку, завершающуюся значением NULL, которая содержит текст, копируемый в элемент управления.

Remarks

SetDlgItemTextWM_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_SYSCHARWM_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, как описано в пакете SDK для Windows.

CWnd::SetMenu

Задает текущее меню для указанного меню.

BOOL SetMenu(CMenu* pMenu);

Параметры

pMenu
Определяет новое меню. Если этот параметр задан NULL, текущее меню удаляется.

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

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

Remarks

Вызывает перерисовку окна в соответствии с изменением меню.

SetMenu не уничтожает предыдущее меню. Приложение должно вызвать CMenu::DestroyMenu функцию-член для выполнения этой задачи.

Пример

См. пример для CMenu::LoadMenu.

CWnd::SetOwner

Задает владельцу текущего окна указанный объект окна.

void SetOwner(CWnd* pOwnerWnd);

Параметры

pOwnerWnd
Идентифицирует нового владельца объекта окна. Если этот параметр задан NULL, объект окна не имеет владельца.

Remarks

Затем этот владелец может получать сообщения команд из текущего объекта окна. По умолчанию родительский элемент текущего окна является его владельцем.

Часто бывает полезно установить соединения между объектами окна, которые не связаны с иерархией окон. Например, 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
Указывает, является ли полоса прокрутки элементом управления или частью неклиентной области окна. Если она является частью неклиентной области, nBar также указывает, располагается ли полоса прокрутки по горизонтали, вертикали или и тому, и другое. Это должно быть одно из следующих элементов:

  • SB_CTL Содержит параметры для элемента управления полосой прокрутки. Элемент m_hWnd данных должен быть дескриптором элемента управления полосой прокрутки.

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

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

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

bRedraw
Указывает, следует ли перерисовывать полосу прокрутки для отражения новой позиции. В противном случае bRedrawTRUEполоса прокрутки будет перерисовывана. Если это так FALSE, он не перерисовывался. Полоса прокрутки перерисовка по умолчанию.

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

В случае успешного выполнения возвращается TRUEзначение . В противном случае значение равно FALSE.

Remarks

Структура SCROLLINFO содержит сведения о полосе прокрутки, включая минимальные и максимальные позиции прокрутки, размер страницы и положение поля прокрутки (большой палец). SCROLLINFO Дополнительные сведения об изменении значений по умолчанию структуры см. в разделе структуры в пакете SDK Windows.

MFC Windows обработчики сообщений, которые указывают позицию полосы прокрутки и CWnd::OnHScrollCWnd::OnVScrollпредоставляют только 16 бит данных о положении. GetScrollInfo и SetScrollInfo предоставьте 32 бита данных положения полосы прокрутки. Таким образом, приложение может вызываться GetScrollInfo при обработке или CWnd::OnHScrollCWnd::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

FALSE Этот параметр bRedraw полезен, когда полоса прокрутки будет перерисовывана последующим вызовом другой функции.

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 функции-члена, параметр в SetScrollPos функции-члене должен иметь значение 0, bRedraw чтобы предотвратить двойной вывод полосы прокрутки.

Диапазон по умолчанию для стандартной полосы прокрутки составляет от 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 функцией обратного вызова) значение должно быть уникальным только для других таймеров окон, связанных с текущим окном. Для таймера обратного вызова значение должно быть уникальным для всех таймеров во всех процессах. Таким образом, при создании таймера обратного вызова, скорее всего, возвращаемое значение может отличаться от указанного значения.

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_FRAMECHANGEDWM_NCCALCSIZE Отправляет сообщение в окно, даже если размер окна не изменяется. Если этот флаг не указан, WM_NCCALCSIZE отправляется только при изменении размера окна.

  • SWP_HIDEWINDOW Скрывает окно.

  • SWP_NOACTIVATE Не активирует окно. Если этот флаг не задан, окно активируется и перемещается в верхнюю или не верхнюю группу (в зависимости от параметра pWndInsertAfter ).

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

  • SWP_NOMOVEСохраняет текущую позицию (игнорирует и y параметрыx).

  • SWP_NOOWNERZORDER Не изменяет положение окна владельца в порядке Z.

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

  • SWP_NOREPOSITION аналогичен SWP_NOOWNERZORDER.

  • SWP_NOSENDCHANGING Предотвращает получение WM_WINDOWPOSCHANGING сообщения в окне.

  • SWP_NOSIZEСохраняет текущий размер (игнорирует и cy параметрыcx).

  • SWP_NOZORDER Сохраняет текущее упорядочение (игнорирует pWndInsertAfter).

  • SWP_SHOWWINDOW Отображает окно.

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

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

Remarks

Windows упорядочивается на экране в соответствии с их Z-порядком; окно в верхней части Z-порядка отображается поверх всех остальных окон в порядке.

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

Окно можно переместить в верхнюю часть Z-порядка, задав pWndInsertAfter параметр &wndTopMost и убедив, что SWP_NOZORDER флаг не задан или задав z-порядок окна, чтобы он был выше всех существующих верхних окон. При создании крайнего верхнего окна его собственные окна также делаются верхними. Его владельцы не изменяются.

Крайнее верхнее окно больше не является самым верхним, если оно перемещается в нижнюю часть (&wndBottom) порядка Z или после любого не самого верхнего окна. Когда самое верхнее окно делается не самым верхним, все его владельцы и его собственные окна также сделаны не самыми верхними окнами.

Если ни одно из этих значений SWP_NOZORDER (SWP_NOACTIVATEто есть, когда приложение запрашивает одновременную активацию и размещение окна в указанном порядке Z), значение, указанное в pWndInsertAfter следующих обстоятельствах, используется только в следующих случаях:

  • Ни &wndTopMost в параметре, ни &wndNoTopMost не указан.pWndInsertAfter

  • Это окно не является активным.

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

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

При использовании Windows версии 3.1 и более поздних окна можно переместить в верхнюю часть Z-порядка и заблокировать их, задав их WS_EX_TOPMOST стили. Такое самое верхнее окно сохраняет самую верхнюю позицию даже при отключении. Например, при выборе команды WinHelp Always On Top окно справки становится самым верхним, а затем оно остается видимым при возвращении в приложение.

Чтобы создать самое верхнее окно, вызовите SetWindowPospWndInsertAfter параметр, равный параметру &wndTopMost, или задайте WS_EX_TOPMOST стиль при создании окна.

Если Z-порядок содержит окна со стилем WS_EX_TOPMOST , окно, перемещенное со &wndTopMost значением, помещается в верхнюю часть всех верхних окон, но под любыми верхними окнами. Когда приложение активирует неактивное окно без бита WS_EX_TOPMOST , окно перемещается над всеми не самыми верхними окнами, но под любыми самыми верхними окнами.

Если SetWindowPos вызывается, когда pWndInsertAfter параметр находится &wndBottom и CWnd является самым верхним окном, окно теряет самое верхнее состояние (WS_EX_TOPMOST очищается), а система помещает окно в нижней части Z-порядка.

Пример

void CMyApp::OnHideApplication()
{
   //m_pMainWnd is the main application window, a member of CMyApp
   ASSERT_VALID(m_pMainWnd);

   // hide the application's windows before closing all the documents
   m_pMainWnd->ShowWindow(SW_HIDE);
   m_pMainWnd->ShowOwnedPopups(FALSE);

   // put the window at the bottom of z-order, so it isn't activated
   m_pMainWnd->SetWindowPos(&CWnd::wndBottom, 0, 0, 0, 0,
                            SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
}

CWnd::SetWindowRgn

Вызовите эту функцию-член, чтобы задать область окна.

int SetWindowRgn(
    HRGN hRgn,
    BOOL bRedraw);

Параметры

hRgn
Дескриптор для региона.

bRedraw
Если TRUEоперационная система перерисовывает окно после задания региона; в противном случае это не делается. Как правило, задано значение bRedrawTRUE ,если окно отображается. Если задано значение TRUE, система отправляет WM_WINDOWPOSCHANGING сообщения в WM_WINDOWPOSCHANGED окно.

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

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

Remarks

Координаты области окна относительно левого верхнего угла окна, а не клиентской области окна.

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

CWnd::SetWindowText

Задает заголовок окна на указанный текст.

void SetWindowText(LPCTSTR lpszString);

Параметры

lpszString
Указывает на объект или строку, завершаемую CString null, которая будет использоваться в качестве нового заголовка или текста элемента управления.

Remarks

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

Эта функция вызывает WM_SETTEXT отправку сообщения в это окно.

Пример

// set the text in IDC_EDITNAME
CWnd *pWnd = GetDlgItem(IDC_EDITNAME);
pWnd->SetWindowText(_T("Gerald Samper"));

// Get the text back. CString is convenient, because MFC
// will automatically allocate enough memory to hold the
// text--no matter how large it is.

CString str;
pWnd->GetWindowText(str);
ASSERT(str == _T("Gerald Samper"));

// The LPTSTR override works, too, but it might be too short.
// If we supply a buffer that's too small, we'll only get those
// characters that fit.

TCHAR sz[10];
int nRet = pWnd->GetWindowText(sz, 10);

// Nine characters, plus terminating null
ASSERT(_tcscmp(sz, _T("Gerald Sa")) == 0);
ASSERT(nRet == 9);

// You can query the length of the text without the length of
// the string using CWnd::GetWindowTextLength()
nRet = pWnd->GetWindowTextLength();
ASSERT(nRet == 13);

CWnd::ShowCaret

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

void ShowCaret();

Remarks

После отображения курсор начинает автоматически мигать.

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

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