Класс CWnd

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

Синтаксис

class CWnd : public CCmdTarget

Участники

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

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

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

Имя Описание
CWnd::accDoDefaultAction Вызывается платформой для выполнения объектом действия по умолчанию.
CWnd::accHitTest Вызывается платформой для извлечения дочернего элемента или дочернего объекта в заданной точке экрана.
CWnd::accLocation Вызывается платформой для получения текущего положения указанного объекта на экране.
CWnd::accNavigate Вызывается платформой для перехода к другому элементу пользовательского интерфейса внутри контейнера и, если возможно, для извлечения объекта.
CWnd::accSelect Вызывается платформой для изменения выбранной области или перемещения фокуса клавиатурного ввода указанного объекта.
CWnd::AnimateWindow Анимирует связанный объект"Окно".
CWnd::ArrangeIconicWindows Упорядочивает все свернутые (преобразованные в значки) дочерние окна.
CWnd::Attach Прикрепляет дескриптор Windows к объекту CWnd.
CWnd::BeginModalState Данная функция-член вызывается для преобразования окна фрейма в модальное.
CWnd::BeginPaint Подготавливает CWnd к рисованию.
CWnd::BindDefaultProperty Привязывает простое стандартное свойство привязки вызывающего объекта, отмеченное в библиотеке типов, к курсору, связанному с элементом управления источником данных.
CWnd::BindProperty Привязывает связанное с курсором свойство на элементе управления, привязанном к данным, к элементу управления источником данных и регистрирует такую связь в диспетчере привязки MFC.
CWnd::BringWindowToTop Перемещает CWnd на вершину стека перекрывающихся окон.
CWnd::CalcWindowRect Вызывается для вычисления размеров прямоугольной области окна из клиентской прямоугольной области.
CWnd::CancelToolTips Отключает элемент управления "Всплывающая подсказка".
CWnd::CenterWindow Выравнивает окно по центру относительно его родительских окон.
CWnd::ChangeClipboardChain Удаляет объект CWnd из цепи в окне буфера обмена.
CWnd::CheckDlgButton Устанавливает флажок для элемента управления "Кнопка" или снимает его.
CWnd::CheckRadioButton Отмечает указанный переключатель и убирает отметку для остальных переключателей в указанной группе кнопок.
CWnd::ChildWindowFromPoint Определяет, в каком из указанных дочерних окон содержится заданная точка (если такие окна имеются).
CWnd::ClientToScreen Преобразует клиентские координаты указанной точки или прямоугольника на экране в экранные координаты.
CWnd::CloseWindow Сворачивает окно.
CWnd::ContinueModal Сохраняет модальное состояние окна.
CWnd::Create Создает и инициализирует дочернее окно, связанное с объектом CWnd.
CWnd::CreateAccessibleProxy Создает прокси-сервер Active Accessibility для указанного объекта.
CWnd::CreateCaret Создает новую форму системного курсора и получает его во владение.
CWnd::CreateControl Создает элемент управления ActiveX, который будет представлен в программе MFC объектом CWnd.
CWnd::CreateEx Создает перекрывающееся, всплывающее или дочернее окно Windows и прикрепляет его к объекту CWnd.
CWnd::CreateGrayCaret Создает серый блок для системного курсора и получает этот курсор во владение.
CWnd::CreateSolidCaret Создает сплошной блок для системного курсора и получает этот курсор во владение.
CWnd::DeleteTempMap Автоматически вызывается обработчиком времени простоя CWinApp и удаляет все временные объекты CWnd, созданные FromHandle.
CWnd::DestroyWindow Уничтожает прикрепленное окно Windows.
CWnd::Detach Отсоединяет дескриптор Windows от объекта CWnd и возвращает дескриптор.
CWnd::DlgDirList Заполняет список файлами или каталогами.
CWnd::DlgDirListComboBox Заполняет список элемента управления "Поле со списком" перечнем файлов или каталогов.
CWnd::DlgDirSelect Извлекает текущее выделение из списка.
CWnd::DlgDirSelectComboBox Извлекает текущее выделение списка элемента управления "Поле со списком".
CWnd::DragAcceptFiles Указывает, что в окно можно перетаскивать файлы.
CWnd::DragDetect Захватывает мышь и отслеживает ее движение, пока пользователь не отпустит левую кнопку мыши, не нажмет клавишу ESC или не переместит мышь за пределы прямоугольника перетаскивания, в котором находится указанная точка.
CWnd::DrawAnimatedRects Рисует каркасный прямоугольник и анимирует его для обозначения открытия значка, а также сворачивания или разворачивания окна.
CWnd::DrawCaption Рисует заголовок.
CWnd::DrawMenuBar Перерисовывает строку меню.
CWnd::EnableActiveAccessibility Включает пользовательские функции Active Accessibility.
CWnd::EnableDynamicLayout Включает динамическое изменение положения и размера дочерних окон при изменении размеров родительского окна.
CWnd::EnableD2DSupport Включает или отключает поддержку окнами D2D. Данный метод следует вызывать до инициализации основного окна.
CWnd::EnableScrollBar Включает или выключает одну или обе стрелки полосы прокрутки.
CWnd::EnableScrollBarCtrl Включает или выключает элемент управления "Полоса прокрутки" того же уровня.
CWnd::EnableToolTips Включает элемент управления "Всплывающая подсказка".
CWnd::EnableTrackingToolTips Включает элемент управления "Всплывающая подсказка" в режиме отслеживания.
CWnd::EnableWindow Разрешает или запрещает ввод с помощью мыши и клавиатуры.
CWnd::EndModalLoop Снимает с окна модальное состояние.
CWnd::EndModalState Данная функция-член вызывается для изменения состояния окна с модального на немодальное.
CWnd::EndPaint Отмечает завершение рисования.
CWnd::ExecuteDlgInit Инициирует ресурс диалогового окна.
CWnd::FilterToolTipMessage Извлекает заголовок или текст, связанный с элементом управления в диалоговом окне.
CWnd::FindWindow Возвращает дескриптор окна, идентифицированного по имени и классу.
CWnd::FindWindowEx Возвращает дескриптор окна, идентифицированного по имени и классу.
CWnd::FlashWindow Окно однократно мигает.
CWnd::FlashWindowEx Мигание окна с дополнительными возможностями.
CWnd::FromHandle Возвращает указатель на объект CWnd, когда дескриптор передается окну. CWnd Если объект не присоединен к дескриптору, создается и присоединяется временный CWnd объект.
CWnd::FromHandlePermanent Возвращает указатель на объект CWnd, когда дескриптор передается окну.
CWnd::get_accChild Вызывается платформой для извлечения адреса интерфейса IDispatch для указанного дочернего элемента.
CWnd::get_accChildCount Вызывается платформой для извлечения количества дочерних элементов, принадлежащих этому объекту.
CWnd::get_accDefaultAction Вызывается платформой для извлечения строки, описывающей действие объекта по умолчанию.
CWnd::get_accDescription Вызывается платформой для извлечения строки, описывающей внешний вид указанного объекта.
CWnd::get_accFocus Вызывается платформой для извлечения объекта, имеющего фокус клавиатурного ввода.
CWnd::get_accHelp Вызывается платформой для получения строки свойства справки объекта.
CWnd::get_accHelpTopic Вызывается платформой для извлечения полного пути файла WinHelp, связанного с указанным объектом и идентификатором нужного раздела в файле.
CWnd::get_accKeyboardShortcut Вызывается платформой для извлечения сочетания клавиш указанного объекта или клавиши доступа к нему.
CWnd::get_accName Вызывается платформой для извлечения имени указанного объекта.
CWnd::get_accParent Вызывается платформой для извлечения интерфейса IDispatch родительского элемента данного объекта.
CWnd::get_accRole Вызывается платформой для извлечения информации, описывающей роль указанного объекта.
CWnd::get_accSelection Вызывается платформой для извлечения выбранного дочернего элемента этого объекта.
CWnd::get_accState Вызывается платформой для извлечения текущего состояния указанного объекта.
CWnd::get_accValue Вызывается платформой для извлечения значения указанного объекта.
CWnd::GetActiveWindow Извлекает активное окно.
CWnd::GetAncestor Извлекает объект окна-предка для указанного окна.
CWnd::GetCapture Извлекает объект CWnd, захваченный мышью.
CWnd::GetCaretPos Извлекает клиентские координаты текущего положения курсора.
CWnd::GetCheckedRadioButton Возвращает идентификатор отмеченного переключателя в группе кнопок.
CWnd::GetClientRect Возвращает размеры клиентской области CWnd.
CWnd::GetClipboardOwner Извлекает указатель на текущего владельца буфера обмена.
CWnd::GetClipboardViewer Извлекает указатель на первое окно в цепочке окон буфера обмена.
CWnd::GetControlUnknown Извлекает указатель на неизвестный элемент управления ActiveX.
CWnd::GetDC Извлекает контекст отображения для клиентской области.
CWnd::GetDCEx Извлекает контекст отображения для клиентской области и включает обрезку при рисовании.
CWnd::GetDCRenderTarget Извлекает целевой объект отрисовки из контекста устройства для окна CWnd.
CWnd::GetDescendantWindow Выполняет поиск всех окон-потомков и возвращает окно с указанным идентификатором.
CWnd::GetDesktopWindow Извлекает окно рабочего стола Windows.
CWnd::GetDlgCtrlID Если окно CWnd является дочерним, вызов этой функции возвращает значение его идентификатора.
CWnd::GetDlgItem Извлекает из указанного диалогового окна элемент управления с указанным идентификатором.
CWnd::GetDlgItemInt Преобразует текст элемента управления в указанном диалоговом окне в целое число.
CWnd::GetDlgItemText Извлекает заголовок или текст, связанный с элементом управления.
CWnd::GetDSCCursor Извлекает указатель на базовый курсор, который определяется свойствами DataSource, UserName, Password, и SQL элемента управления источником данных.
CWnd::GetDynamicLayout Извлекает указатель на объект диспетчера динамического макета.
CWnd::GetExStyle Возвращает расширенный стиль окна.
CWnd::GetFocus Извлекает объект CWnd, на котором в данный момент установлен фокус ввода.
CWnd::GetFont Извлекает текущий шрифт.
CWnd::GetForegroundWindow Возвращает указатель на окно переднего плана (окно верхнего уровня, в котором пользователь работает на данный момент).
CWnd::GetIcon Извлекает дескриптор значка.
CWnd::GetLastActivePopup Определяет последнее проявлявшее активность всплывающее окно, принадлежащее классу CWnd.
CWnd::GetLayeredWindowAttributes Получает ключ цвета прозрачности многослойного окна.
CWnd::GetMenu Извлекает указатель на заданное меню.
CWnd::GetNextDlgGroupItem Ищет следующий (или предыдущий) элемент управления в группе элементов управления.
CWnd::GetNextDlgTabItem Извлекает первый элемент управления со WS_TABSTOP стилем, который следует (или предшествует) указанному элементу управления.
CWnd::GetNextWindow Возвращает следующее или предыдущее окно в списке диспетчера окон.
CWnd::GetOleControlSite Извлекает настраиваемый сайт для указанного элемента управления ActiveX.
CWnd::GetOpenClipboardWindow Извлекает указатель на окно с открытым буфером обмена.
CWnd::GetOwner Извлекает указатель на владельца объекта CWnd.
CWnd::GetParent Извлекает родительское окно объекта CWnd (при наличии).
CWnd::GetParentFrame Извлекает родительское окно фрейма объекта CWnd.
CWnd::GetParentOwner Возвращает указатель на родительское окно дочернего окна.
CWnd::GetProperty Извлекает свойство элемента управления ActiveX.
CWnd::GetRenderTarget Возвращает целевой объект отрисовки, связанный с данным окном.
CWnd::GetSafeHwnd Возвращает m_hWndзначение NULL или 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 Открывает буфер обмена. Другие приложения не смогут изменять буфер обмена до вызова функции Windows CloseClipboard .
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 Вызывается при очистке буфера обмена через вызов функции Windows EmptyClipboard .
CWnd::OnDeviceChange Сообщает приложению или драйверу устройства об изменении конфигурации оборудования устройства или компьютера.
CWnd::OnDevModeChange Вызывается для всех окон верхнего уровня, когда пользователь меняет параметры режима устройства.
CWnd::OnDrawClipboard Вызывается при изменении содержимого буфера обмена.
CWnd::OnDrawItem Вызывается, когда необходимо визуально изобразить рисуемый владельцем дочерний элемент управления "Кнопка", элемент управления "Поле со списком", элемент управления "Поле" или меню.
CWnd::OnDropFiles Вызывается, когда пользователь отпускает левую кнопку мыши в окне, зарегистрировавшем себя в качестве получателя переносимых файлов.
CWnd::OnEnable Вызывается при включении или отключении объекта CWnd.
CWnd::OnEndSession Вызывается во время окончания сессии.
CWnd::OnEnterIdle Вызывается для информирования процедуры главного окна приложения о переходе модального диалогового окна или меню в состояние простоя.
CWnd::OnEnterMenuLoop Вызывается при входе в модальный цикл меню.
CWnd::OnEnterSizeMove Вызывается, когда затронутое окно входит в модальный цикл перемещения или изменения размера.
CWnd::OnEraseBkgnd Вызывается, когда требуется стирание фона окна.
CWnd::OnExitMenuLoop Вызывается при выходе из модального цикла меню.
CWnd::OnExitSizeMove Вызывается, когда затронутое окно выходит из модального цикла перемещения или изменения размера.
CWnd::OnFontChange Вызывается при изменении пула ресурсов шрифтов.
CWnd::OnGetDlgCode Вызывается, чтобы элемент управления мог самостоятельно обрабатывать нажатия на клавиши со стрелками и клавишу TAB.
CWnd::OnGetMinMaxInfo Вызывается, когда Windows требуется получить сведения о положении в развернутом состоянии, размерах, минимальном или максимальном размере отслеживания.
CWnd::OnHelpInfo Вызывается платформой, когда пользователь нажимает клавишу F1.
CWnd::OnHotKey Вызывается, когда пользователь нажимает общесистемное сочетание клавиш.
CWnd::OnHScroll Вызывается, когда пользователь щелкает горизонтальную полосу прокрутки объекта CWnd.
CWnd::OnHScrollClipboard Вызывается, когда владелец буфера обмена должен прокрутить изображение из буфера, объявить необходимый раздел недействительным, а также обновить значения полосы прокрутки.
CWnd::OnIconEraseBkgnd Вызывается, когда объект CWnd сворачивается (преобразуется в значок) и фон значка необходимо заполнить до его рисования.
CWnd::OnInitMenu Вызывается непосредственно перед тем, как меню станет активным.
CWnd::OnInitMenuPopup Вызывается непосредственно перед тем, как всплывающее меню станет активным.
CWnd::OnInputDeviceChange Вызывается при добавлении в систему устройства ввода-вывода или его удаления из нее.
CWnd::OnInputLangChange Вызывается после изменения языка ввода приложения.
CWnd::OnInputLangChangeRequest Вызывается, когда пользователь выбирает новый язык ввода.
CWnd::OnKeyDown Вызывается при нажатии несистемной клавиши.
CWnd::OnKeyUp Вызывается, когда нажатая несистемная клавиша отпускается.
CWnd::OnKillFocus Вызывается непосредственно перед тем, как объект CWnd теряет фокус ввода.
CWnd::OnLButtonDblClk Вызывается, когда пользователь дважды щелкает левой кнопкой мыши.
CWnd::OnLButtonDown Вызывается, когда пользователь щелкает левой кнопкой мыши.
CWnd::OnLButtonUp Вызывается, когда пользователь отпускает левую кнопку мыши.
CWnd::OnMButtonDblClk Вызывается, когда пользователь дважды щелкает средней кнопкой мыши.
CWnd::OnMButtonDown Вызывается, когда пользователь щелкает средней кнопкой мыши.
CWnd::OnMButtonUp Вызывается, когда пользователь отпускает среднюю кнопку мыши.
CWnd::OnMDIActivate Вызывается при активации или деактивации дочернего окна MDI.
CWnd::OnMeasureItem Вызывается для рисуемого владельцем дочернего элемента управление "Поле со списком", элемента управление "Список" или меню при создании нового элемента управления. Объект CWnd сообщает Windows размеры этого элемента управления.
CWnd::OnMenuChar Вызывается, когда пользователь нажимает назначенный символ меню, не соответствующий ни одному из символов, назначенных для текущего меню.
CWnd::OnMenuDrag Вызывается, когда пользователь начинает перетаскивать элемент меню.
CWnd::OnMenuGetObject Вызывается когда курсор мыши попадает на элемент меню или перемещается из центра элемента в его верхнюю или нижнюю часть.
CWnd::OnMenuRButtonUp Вызывается, если пользователь отпускает правую кнопку мыши, когда курсор находится на элементе меню.
CWnd::OnMenuSelect Вызывается, когда пользователь выбирает элемент меню.
CWnd::OnMouseActivate Вызывается, если пользователь щелкает кнопкой мыши, когда курсор находится в неактивном окне.
CWnd::OnMouseHover Вызывается при наведении курсора на клиентская область окна в течение определенного периода времени, указанного в предыдущем вызове TrackMouseEvent.
CWnd::OnMouseHWheel Вызывается при наклоне или повороте горизонтального колесика прокрутки мыши.
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 Эта виртуальная функция вызывается по умолчанию функцией OnNcDesksk после уничтожения окна.
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.

Замечания

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

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

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

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

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

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

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

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

CObject

CCmdTarget

CWnd

Требования

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

CWnd::accDoDefaultAction

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

virtual HRESULT accDoDefaultAction(VARIANT varChild);

Параметры

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

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

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

Замечания

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

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

CWnd::accHitTest

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

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

Параметры

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

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

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

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

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

Замечания

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

Замечания

Переопределите эту функцию в 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.

Замечания

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

Замечания

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

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

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

CWnd::AnimateWindow

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

BOOL AnimateWindow(
    DWORD dwTime,
    DWORD dwFlags);

Параметры

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

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

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

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

Замечания

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

CWnd::ArrangeIconicWindows

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

UINT ArrangeIconicWindows();

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

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

Замечания

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

Замечания

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

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

Не вызывайте функцию-член 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

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

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

Параметры

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

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

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

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

Замечания

Объект 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, чтобы получить этот указатель.

Замечания

Объект 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();

Замечания

Кроме того 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.

Замечания

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

Дополнительные ограничения использования см. в разделе 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.

Замечания

Примечание.

Использование этой функции-члена не влияет на подсказки инструментов, управляемые кодом. Это влияет только на элемент управления подсказками инструментов, управляемый 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
Указатель на альтернативное окно относительно центра (кроме родительского окна).

Замечания

Обычно вызывается из 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, состояние кнопки не определено.

Замечания

Функция 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
Указывает целый идентификатор переключателя, который должен быть проверка.

Замечания

Функция 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 объект, содержащий координаты клиента, которые необходимо преобразовать.

Замечания

Функция-член ClientToScreen использует координаты клиента в структуре или RECT объектеPOINT, CPointCRect на который указывает lpPointlpRect или вычисляет новые координаты экрана; затем заменяет координаты в структуре новыми координатами. Новые координаты экрана относятся к левому верхнему углу системного дисплея.

Функция-член 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();

Замечания

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

CWnd::ContinueModal

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

virtual BOOL ContinueModal();

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

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

Замечания

По умолчанию он возвращает ненулевое значение до 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.

Замечания

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

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 в который хранится код результата.

Замечания

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

CWnd::CreateCaret

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

void CreateCaret(CBitmap* pBitmap);

Параметры

pBitmap
Определяет растровое изображение, определяющее фигуру курсора.

Замечания

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

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

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

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

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.

Замечания

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

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

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

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

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

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

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

Пример

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

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

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

   // remainder of class declaration omitted...

CWnd::CreateEx

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

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

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

Параметры

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Замечания

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

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, высота устанавливается на системную высоту границы окна.

Замечания

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

Параметры 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, высота устанавливается на системную высоту границы окна.

Замечания

Фигура в виде фигуры может быть линией или блоком.

Параметры 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();

Замечания

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

CWnd::Default

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

LRESULT Default();

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

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

Замечания

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

Пример

// 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
Указывает дополнительные сведения, зависящие от сообщений.

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

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

Замечания

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

CWnd::DeleteTempMap

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

static void PASCAL DeleteTempMap();

Замечания

Удаляет все временные объекты, 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.

Замечания

Функция-член 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();

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

Объект 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.

Замечания

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

Замечания

DlgDirListComboBoxCB_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.

Замечания

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

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

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

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

CWnd::DlgDirSelectComboBox

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

BOOL DlgDirSelectComboBox(
    LPTSTR lpString,
    int nIDComboBox);

Параметры

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

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

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

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

Замечания

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

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

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

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

CWnd::DoDataExchange

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

virtual void DoDataExchange(CDataExchange* pDX);

Параметры

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

Замечания

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

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

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

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

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

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

CWnd::DragAcceptFiles

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

void DragAcceptFiles(BOOL bAccept = TRUE);

Параметры

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

Замечания

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

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

CWnd::DragDetect

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

BOOL DragDetect(POINT pt) const;

Параметры

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

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

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

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

Замечания

Эта функция-член эмулирует функциональные возможности функции функции 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.

Замечания

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

CWnd::DrawCaption

Рисует окно подпись.

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

Параметры

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

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

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

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

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

Замечания

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

CWnd::DrawMenuBar

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

void DrawMenuBar();

Замечания

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

Пример

Пример см. в примере CWnd::GetMenu.

CWnd::EnableActiveAccessibility

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

void EnableActiveAccessibility();

Замечания

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

CWnd::EnableDynamicLayout

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

void EnableDynamicLayout(BOOL bEnable = TRUE);

Параметры

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

Замечания

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

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

Замечания

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

CWnd::EnableToolTips

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

BOOL EnableToolTips(BOOL bEnable = TRUE);

Параметры

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

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

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

Замечания

Переопределите 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, если окно было включено ранее или произошла ошибка.

Замечания

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

CWnd::EnableWindow

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

BOOL EnableWindow(BOOL bEnable = TRUE);

Параметры

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

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

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

Замечания

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

Если состояние включено изменяется, 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.

Замечания

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

CWnd::EndModalState

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

virtual void EndModalState();

CWnd::EndPaint

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

void EndPaint(LPPAINTSTRUCT lpPaint);

Параметры

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

Замечания

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

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

Пример

Пример см. в примере CWnd::BeginPaint.

CWnd::ExecuteDlgInit

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

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

Параметры

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

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

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

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

Замечания

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
Указатель на сообщение подсказки средства.

Замечания

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

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

CWnd::FindWindow

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

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

Параметры

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

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

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

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

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

Замечания

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

Пример

// 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, которая указывает имя класса или атом класса, созданный предыдущим вызовом RegisterClass или RegisterClassEx.

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

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

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

Замечания

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

CWnd::FlashWindow

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

BOOL FlashWindow(BOOL bInvert);

Параметры

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

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

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

Замечания

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

Замечания

Этот метод эмулирует функциональные возможности функции функции 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.

Замечания

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.

Замечания

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

Замечания

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

Замечания

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

Замечания

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

Замечания

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

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

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

CWnd::get_accHelp

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

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

Параметры

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

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

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

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

Замечания

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

Замечания

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

Замечания

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

Замечания

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

Замечания

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

Замечания

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

Замечания

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

Замечания

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

Замечания

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

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

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

CWnd::GetActiveWindow

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

static CWnd* PASCAL GetActiveWindow();

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

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

Замечания

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

CWnd::GetAncestor

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

CWnd* GetAncestor(UINT gaFlags) const;

Параметры

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

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

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

Замечания

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

CWnd::GetCapture

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

static CWnd* PASCAL GetCapture();

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

Определяет окно с записью мыши. NULL Если окно не имеет записи мыши.

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

Замечания

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

CWnd::GetCaretPos

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

static CPoint PASCAL GetCaretPos();

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

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

Замечания

В координатах CWnd клиента окна указана позиция в окне.

CWnd::GetCheckedRadioButton

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

int GetCheckedRadioButton(
    int nIDFirstButton,
    int nIDLastButton);

Параметры

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

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

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

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

CWnd::GetClientRect

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

void GetClientRect(LPRECT lpRect) const;

Параметры

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

Замечания

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

Пример

Пример см. в примере CWnd::IsIconic.

CWnd::GetClipboardOwner

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

static CWnd* PASCAL GetClipboardOwner();

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

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

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

Замечания

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

CWnd::GetClipboardViewer

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

static CWnd* PASCAL GetClipboardViewer();

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

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

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

CWnd::GetControlUnknown

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

LPUNKNOWN GetControlUnknown();

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

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

Замечания

Этот указатель не следует выпускать 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-handler .

static const MSG* PASCAL GetCurrentMessage();

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

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

Пример

Пример см. в примере CMDIFrameWnd::MDICascade.

CWnd::GetDC

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

CDC* GetDC();

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

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

Замечания

Для распространенных контекстов устройства присваивает атрибуты 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 Возвращает контекст устройства из кэша, а не OWNDCCLASSDC окна. Переопределяет 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.

Замечания

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

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

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

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

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

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

CWnd::GetDCRenderTarget

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

CDCRenderTarget* GetDCRenderTarget();

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

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

Замечания

CWnd::GetDescendantWindow

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

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

Параметры

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

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

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

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

Замечания

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

CWnd::GetDesktopWindow

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

static CWnd* PASCAL GetDesktopWindow();

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

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

Замечания

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

CWnd::GetDlgCtrlID

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

int GetDlgCtrlID() const;

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

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

Замечания

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

Пример

Пример см. в примере CWnd::OnCtlColor.

CWnd::GetDlgItem

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

CWnd* GetDlgItem(int nID) const;

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

Параметры

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

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

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

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

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

Замечания

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

Пример

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

CWnd::GetDlgItemInt

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

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

Параметры

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

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

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

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

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

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

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

Замечания

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

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

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

CWnd::GetDlgItemText

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

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

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

Параметры

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

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

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

rString
Ссылка на CString.

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

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

Замечания

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

CWnd::GetDSCCursor

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

IUnknown* GetDSCCursor();

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

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

Замечания

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

Замечания

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

CWnd::GetExStyle

Возвращает расширенный стиль окна.

DWORD GetExStyle() const;

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

Расширенный стиль окна. Дополнительные сведения о расширенных стилях окон, используемых в MFC, см. в разделе "Расширенные стили окон".

CWnd::GetFocus

Извлекает указатель на CWnd текущий момент с фокусом ввода.

static CWnd* PASCAL GetFocus();

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

Указатель на окно с текущим фокусом или NULL если нет окна фокуса.

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

CWnd::GetFont

Отправляет WM_GETFONT сообщение в окно, чтобы получить текущий шрифт.

CFont* GetFont() const;

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

Указатель на объект, подключенный CFont к текущему шрифту окна.

Замечания

Этот метод не действует, если окно не обрабатывает WM_GETFONT сообщение. Многие классы MFC, производные от CWnd процесса этого сообщения, потому что они присоединены к предопределенному классу окна, включающем обработчик сообщений для WM_GETFONT сообщения. Для использования этого метода классы, производные от CWnd них, должны определять обработчик метода для WM_GETFONT сообщения.

CWnd::GetForegroundWindow

Возвращает указатель на окно переднего плана (окно, с которым работает пользователь).

static CWnd* PASCAL GetForegroundWindow();

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

Указатель на окно переднего плана. Это может быть временный CWnd объект.

Замечания

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

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.

Замечания

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

CWnd::GetMenu

Извлекает указатель на меню для этого окна.

CMenu* GetMenu() const;

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

Определяет меню. Если нет меню, это значение NULLCWnd . Возвращаемое значение не определено, если CWnd является дочерним окном.

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

Замечания

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

Пример

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.

Замечания

Эта функция-член эмулирует функциональные возможности функции функции 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разделе "Примечания".

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

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

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

Замечания

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

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

Примечание.

Так как MFC поддерживает элементы ActiveX без окон, стандартные элементы ActiveX и окна, ссылаясь на элемент управления только HWND недостаточно. Объект COleControlSiteOrWnd содержит сведения, определяющие объект как элемент ActiveX с окном, бессерверный элемент ActiveX или окно, как показано ниже.

Тип элемента управления или окна Идентификация сведений
Элемент управления ActiveX с окном Содержит HWND объект COleControlSite и связывает его с ним. Элемент m_hWnd имеет значение HWND элемента управления, а m_pSite член COleControlSiteOrWnd указывает на элемент управленияCOleControlSite.
Элемент activeX без окна Содержит нет HWND. Элемент m_pSiteCOleControlSiteOrWnd указывает на элемент элемента управления COleControlSite, а m_hWnd член — NULL.
Стандартное окно Содержит только .HWND Элемент m_hWndCOleControlSiteOrWnd имеет значение HWND окна, а m_pSite член — NULL.

CWnd::GetNextDlgTabItem

Извлекает указатель на первый элемент управления, созданный с WS_TABSTOP помощью стиля, который предшествует или следует указанному элементу управления.

CWnd* GetNextDlgTabItem(
    CWnd* pWndCtl,
    BOOL bPrevious = FALSE) const;

COleControlSiteOrWnd* GetNextDlgTabItem(
    COleControlSiteOrWnd* pCurSiteOrWnd,
    BOOL bPrevious) const;

Параметры

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

pCurSiteOrWnd
Определяет COleControlSiteOrWnd элемент управления. Дополнительные сведения о COleControlSiteOrWnd см. в разделе CWnd::GetNextDlgGroupItem.

bPrevious
Указывает, как функция выполняет поиск в диалоговом окне. Если TRUEфункция ищет предыдущий элемент управления в диалоговом окне; если FALSEон ищет следующий элемент управления.

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

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

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

Дополнительные сведения о COleControlSiteOrWnd см. в разделе CWnd::GetNextDlgGroupItem.

CWnd::GetNextWindow

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

CWnd* GetNextWindow(UINT nFlag = GW_HWNDNEXT) const;

Параметры

nFlag
Указывает, возвращает ли функция указатель на следующее окно или предыдущее окно. Это может быть либо GW_HWNDNEXTокно, которое возвращает окно, которое следует CWnd объекту в списке диспетчера окон, либо GW_HWNDPREVвозвращает предыдущее окно в списке диспетчера окон.

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

Определяет следующее (или предыдущее) окно в списке диспетчера окон, если функция-член выполнена успешно.

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

Замечания

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

Если 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.

Замечания

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

Концепция владения этой функции отличается от концепции GetWindowвладения.

CWnd::GetParent

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

CWnd* GetParent() const;

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

См. раздел "Возвращаемые значения" в GetParent пакете SDK для Windows.

Замечания

Функция GetParent возвращает указатель на немедленный родительский элемент (если он существует). В отличие от этого GetParentOwner функция возвращает указатель на самое немедленное родительское или владельца окно, которое не является дочерним WS_CHILD окном (не имеет стиля). Если у вас есть дочернее окно в дочернем окне GetParent и GetParentOwner возвращается другой результат.

CWnd::GetParentFrame

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

CFrameWnd* GetParentFrame() const;

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

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

Замечания

Функция-член выполняет поиск по родительской цепочке до тех пор, пока не найден объект (или производный CFrameWnd класс).

CWnd::GetParentOwner

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

CWnd* GetParentOwner() const;

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

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

Замечания

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.

Замечания

GetProperty возвращает значение через pvProp.

Примечание.

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

Дополнительные сведения об использовании этой функции-члена с контейнерами элементов ActiveX см. в статье "Контейнеры элементов activeX: программирование элементов ActiveX в контейнере элементов управления ActiveX".

CWnd::GetRenderTarget

Возвращает целевой объект отрисовки, связанный с данным окном.

CHwndRenderTarget* GetRenderTarget();

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

Указатель на целевой объект отрисовки или NULL.

CWnd::GetSafeHwnd

Возвращает значение или значение m_hWndуказателя thisNULL.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.

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

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

Замечания

Безопасный владелец — это первое родительское окно pParent, не являющегося дочерним. В противном pParentNULLслучае основное окно потока (полученное через AfxGetMainWnd) используется для поиска владельца.

Примечание.

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

CWnd::GetScrollBarCtrl

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

virtual CScrollBar* GetScrollBarCtrl(int nBar) const;

Параметры

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

  • SB_HORZ Извлекает положение горизонтальной полосы прокрутки.

  • SB_VERT Извлекает положение вертикальной полосы прокрутки.

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

Элемент управления NULL полосой прокрутки или нет.

Замечания

Эта функция-член не работает на полосах прокрутки, созданных при WS_HSCROLL установке битов WS_VSCROLL во время создания окна. Реализация CWnd этой функции просто возвращается NULL. Производные классы, такие как CView, реализуют описанные функциональные возможности.

CWnd::GetScrollBarInfo

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

BOOL GetScrollBarInfo(
    LONG idObject,
    PSCROLLBARINFO psbi) const;

Параметры

idObject
Указывает объект меню. Список возможных значений см. в разделе GetScrollBarInfo.

psbi
Указатель на структуру SCROLLBARINFO , которая получает информацию.

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

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

Замечания

Эта функция-член эмулирует функциональные возможности функции функции 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_POSи SIF_TRACKPOSSIF_RANGE. Дополнительные сведения о значениях см. в разделе SCROLLINFOnMask .

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

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

Замечания

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

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

Обработчики сообщений Windows MFC, указывающие позицию полосы прокрутки 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.

Замечания

Текущая позиция — это относительное значение, которое зависит от текущего диапазона прокрутки. Например, если диапазон прокрутки составляет от 50 до 100, а поле прокрутки находится в середине панели, текущее положение равно 75.

CWnd::GetScrollRange

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

void GetScrollRange(
    int nBar,
    LPINT lpMinPos,
    LPINT lpMaxPos) const;

Параметры

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

  • SB_HORZ Извлекает положение горизонтальной полосы прокрутки.

  • SB_VERT Извлекает положение вертикальной полосы прокрутки.

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

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

Замечания

Если CWnd полоса прокрутки отсутствует, GetScrollRange функция-член копирует 0 в lpMinPos и lpMaxPos.

Диапазон по умолчанию для стандартной полосы прокрутки составляет от 0 до 100. Диапазон по умолчанию для элемента управления полосой прокрутки пуст (оба значения — 0).

CWnd::GetStyle

Возвращает стиль текущего окна.

DWORD GetStyle() const;

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

Стиль окна. Дополнительные сведения о стилях окон, используемых в MFC, см. в разделе "Стили окон".

CWnd::GetSystemMenu

Позволяет приложению получить доступ к оконному меню для копирования и изменения.

CMenu* GetSystemMenu(BOOL bRevert) const;

Параметры

bRevert
Указывает действие, которое необходимо выполнить. Если bRevert это FALSEтак, GetSystemMenu возвращает дескриптор в копию меню управления, используемое в настоящее время. Эта копия изначально идентична меню "Элемент управления", но может быть изменена. Если bRevert это TRUEтак, GetSystemMenu сбрасывает меню управления обратно в состояние по умолчанию. Предыдущее, возможно, измененное, меню управления, если таковой имеется, уничтожается. Возвращаемое значение не определено в этом случае.

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

Определяет копию меню "Элемент управления", если bRevert есть FALSE. Если bRevert это TRUEтак, возвращаемое значение не определено.

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

Замечания

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

Указатель, возвращаемый GetSystemMenu функцией-членом, можно использовать с CMenu::AppendMenuCMenu::InsertMenuфункцией управления или CMenu::ModifyMenu функциями для изменения меню управления.

Меню "Элемент управления" изначально содержит элементы, определенные с различными значениями идентификаторов, такими как SC_CLOSE, SC_MOVEи SC_SIZE. Элементы в меню "Элемент управления" создают WM_SYSCOMMAND сообщения. Все предопределенные элементы меню управления имеют номера идентификаторов, превышающие 0xF000. Если приложение добавляет элементы в меню "Управление", оно должно использовать номера идентификаторов меньше F000.

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

Пример

// The following code fragment is taken from CMyDlg::OnInitDialog
// CMyDlg is derived from CDialog

// Add "About..." menu item to system menu.

// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);

CMenu *pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
   CString strAboutMenu;
   strAboutMenu.LoadString(IDS_ABOUT);
   if (!strAboutMenu.IsEmpty())
   {
      pSysMenu->AppendMenu(MF_SEPARATOR);
      pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
   }
}

// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE);  // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon

CWnd::GetTitleBarInfo

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

BOOL GetTitleBarInfo(PTITLEBARINFO pti) const;

Параметры

pti
Указатель на структуру TITLEBARINFO , которая получает информацию.

Замечания

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

CWnd::GetTopLevelFrame

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

CFrameWnd* GetTopLevelFrame() const;

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

Определяет окно фрейма верхнего уровня окна.

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

Замечания

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

CWnd::GetTopLevelOwner

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

CWnd* GetTopLevelOwner() const;

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

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

Замечания

Окно верхнего уровня — это окно, которое является дочерним элементом рабочего стола. Если CWnd не подключено окно, эта функция возвращается NULL.

CWnd::GetTopLevelParent

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

CWnd* GetTopLevelParent() const;

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

Определяет родительское окно верхнего уровня окна окна.

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

Замечания

GetTopLevelParent аналогично GetTopLevelFrame и GetTopLevelOwner, однако, он игнорирует значение, заданное в качестве текущего окна владельца.

CWnd::GetTopWindow

Выполняет поиск дочернего окна верхнего уровня, к CWndкоторому принадлежит.

CWnd* GetTopWindow() const;

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

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

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

Замечания

Если 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.

Замечания

Если CWnd был создан стиль CS_OWNDC и режим сопоставления не MM_TEXTявляется, GetUpdateRect функция-член предоставляет прямоугольник в логических координатах. GetUpdateRect В противном случае дает прямоугольник в координатах клиента. Если нет области обновления, GetUpdateRect установите прямоугольник пустым (задает все координаты 0).

Параметр bErase указывает, следует ли GetUpdateRect удалять фон области обновления. Если bErase область TRUE обновления не пуста, фон удаляется. Чтобы удалить фон, GetUpdateRect отправляет WM_ERASEBKGND сообщение.

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

Функция-член BeginPaint автоматически проверяет регион обновления, поэтому любой вызов GetUpdateRect , сделанный сразу после вызова, чтобы BeginPaint получить пустую область обновления.

CWnd::GetUpdateRgn

Извлекает регион обновления в регион, определенный по pRgn.

int GetUpdateRgn(
    CRgn* pRgn,
    BOOL bErase = FALSE);

Параметры

pRgn
Определяет регион обновления.

bErase
Указывает, будут ли вырисовываться фоновые и неклиентные области дочерних окон. Если значение равно FALSE, рисование не выполняется.

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

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

  • SIMPLEREGION Регион не имеет перекрывающихся границ.

  • COMPLEXREGION Регион имеет перекрывающиеся границы.

  • NULLREGION Регион пуст.

  • ERROR Не было создано ни одного региона.

Замечания

Координаты этого региона относительно левого верхнего угла (координаты клиента).

Функция-член 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.

Замечания

Контекст отображения окна разрешает рисование в любом месте CWnd, так как источник контекста является левым верхним углом CWnd вместо клиентской области.

Атрибуты по умолчанию назначаются контексту отображения при каждом получении контекста. Предыдущие атрибуты теряются.

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

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

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

CWnd::GetWindowInfo

Извлекает сведения о окне.

BOOL GetWindowInfo(PWINDOWINFO pwi) const;

Параметры

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

Замечания

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

CWnd::GetWindowlessChildCount

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

long GetWindowlessChildCount();

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

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

CWnd::GetWindowPlacement

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

BOOL GetWindowPlacement(WINDOWPLACEMENT* lpwndpl) const;

Параметры

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

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

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

Замечания

Элемент flags структуры, полученной WINDOWPLACEMENT этой функцией, всегда равен 0. Если CWnd развернуто, showCmd член WINDOWPLACEMENT имеет SW_SHOWMAXIMIZEDзначение . Если окно свернуто, это SW_SHOWMINIMIZED. SW_SHOWNORMAL Это в противном случае.

CWnd::GetWindowRect

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

void GetWindowRect(LPRECT lpRect) const;

Параметры

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

Замечания

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

CWnd::GetWindowRgn

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

int GetWindowRgn(HRGN hRgn)const;

Параметры

hRgn
Дескриптор области окна.

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

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

  • NULLREGION Регион пуст.

  • SIMPLEREGION Регион является одним прямоугольником.

  • COMPLEXREGION Область состоит из нескольких прямоугольников.

  • ERROR Ошибка; регион не влияет.

Замечания

Область окна определяет область в окне, в которой операционная система разрешает рисование. Операционная система не отображает ни одну часть окна, которая находится за пределами области окна.

Координаты области окна относительно левого верхнего угла окна, а не клиентской области окна.

Чтобы задать область окна окна, вызовите .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 нет подпись или если подпись пуст.

Замечания

CWnd Если объект является элементом управления, GetWindowText функция-член копирует текст в элементе управления вместо копирования подпись.

Эта функция-член вызывает WM_GETTEXT отправку сообщения в CWnd объект.

Пример

Пример см. в примере CWnd::SetWindowText.

CWnd::GetWindowTextLength

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

int GetWindowTextLength() const;

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

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

Замечания

Если CWnd это элемент управления, GetWindowTextLength функция-член возвращает длину текста в элементе управления вместо подпись.

Эта функция-член вызывает WM_GETTEXTLENGTH отправку сообщения в CWnd объект.

Пример

Пример см. в примере CWnd::SetWindowText.

CWnd::HideCaret

Скрывает курсор, удалив его из отображаемой области.

void HideCaret();

Замечания

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

Замечания

MF_UNHILITE Флаги MF_HILITE и флаги можно использовать только с этой функцией-членом. Они не могут использоваться с CMenu::ModifyMenu функцией-членом.

CWnd::HtmlHelp

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

virtual void HtmlHelp(
    DWORD_PTR dwData,
    UINT nCmd = 0x000F);

Параметры

dwData
Указывает дополнительные данные. Используемое значение зависит от значения nCmd параметра.

nCmd
Задает тип запрошенной справки. Список возможных значений и их влияние dwData на параметр см uCommand . в описании параметра, описанного в справочнике по API справки HTML в пакете SDK для Windows.

Замечания

Дополнительные сведения см. в разделе CWinApp::HtmlHelp.

CWnd::InitDynamicLayout

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

void InitDynamicLayout();

Замечания

Не вызывайте этот метод напрямую.

CWnd::Invalidate

Отменяет всю клиентную область CWnd.

void Invalidate(BOOL bErase = TRUE);

Параметры

bErase
Указывает, следует ли удалить фон в регионе обновления.

Замечания

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

Замечания

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

Замечания

Недопустимый регион вместе со всеми другими областями в регионе обновления помечается для рисования при WM_PAINT следующем отправке сообщения. Недопустимые области накапливаются в регионе обновления до тех пор, пока регион не будет WM_PAINT обработан при следующей отправке сообщения или пока регион не будет проверен ValidateRect функцией-членом.ValidateRgn

Параметр bErase указывает, следует ли удалять фон в области обновления при обработке региона обновления. Если bErase это TRUEтак, фон удаляется при BeginPaint вызове функции-члена; в противном случае FALSEbErase фон остается неизменным. Если bErase для TRUE любой части области обновления фон в целом регионе, а не только в данной части, удаляется.

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

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

CWnd::InvokeHelper

Вызовите эту функцию-член, чтобы вызвать метод или свойство ActiveX Control, указанное 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.

Замечания

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

Эта функция преобразует параметры VARIANTARG в значения, а затем вызывает IDispatch::Invoke метод в элементе управления ActiveX. Если вызов IDispatch::Invoke завершается сбоем, эта функция создает исключение. SCODE Если возвращается DISP_E_EXCEPTIONIDispatch::Invoke код состояния, эта функция создает COleException объект, в противном случае он создает COleDispatchExceptionобъект.

Примечание.

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

Дополнительные сведения об использовании этой функции-члена с контейнерами элементов ActiveX см. в статье "Контейнеры элементов activeX: программирование элементов ActiveX в контейнере элементов управления ActiveX".

CWnd::IsChild

Указывает, является ли окно, указанное pWnd дочерним окном или другим прямым потомком CWnd.

BOOL IsChild(const CWnd* pWnd) const;

Параметры

pWnd
Определяет окно для проверки.

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

Указывает результат функции. Значение ненулевое, если окно, определяемое pWnd дочерним окном CWnd; в противном случае — 0.

Замечания

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

CWnd::IsD2DSupportEnabled

Определяет, включена ли поддержка D2D.

BOOL IsD2DSupportEnabled();

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

TRUE Значение FALSE.

CWnd::IsDialogMessage

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

BOOL IsDialogMessage(LPMSG lpMsg);

Параметры

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

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

Указывает, обработана ли функция-член заданного сообщения. Это ненулевое значение, если сообщение обработано; в противном случае — 0. Если возвращается значение 0, вызовите CWnd::PreTranslateMessage функцию-член базового класса, чтобы обработать сообщение. В переопределении CWnd::PreTranslateMessage функции-члена код выглядит следующим образом:

BOOL CAboutDlg::PreTranslateMessage(MSG *pMsg)
{
   if (IsDialogMessage(pMsg))
      return TRUE;
   else
      return CDialog::PreTranslateMessage(pMsg);
}

Замечания

IsDialogMessage При обработке сообщения функция проверка для клавиатурных сообщений и преобразует их в команды выбора для соответствующего диалогового окна. Например, клавиша TAB выбирает следующий элемент управления или группу элементов управления, а клавиша СТРЕЛКА ВНИЗ выбирает следующий элемент управления в группе.

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

CWnd::IsDlgButtonChecked

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

UINT IsDlgButtonChecked(int nIDButton) const;

Параметры

nIDButton
Задает целый идентификатор элемента управления кнопкой.

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

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

Замечания

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

CWnd::IsDynamicLayoutEnabled

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

BOOL IsDynamicLayoutEnabled() const;

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

TRUE Значение FALSE.

Замечания

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.

Замечания

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 полностью скрыто другими окнами.

Замечания

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

Замечания

Ожидающие WM_TIMER сообщения, связанные с таймером, не удаляются из очереди сообщений.

Пример

Пример см. в примере CWnd::SetTimer.

CWnd::LoadDynamicLayoutResource

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

BOOL LoadDynamicLayoutResource(LPCTSTR lpszResourceName);

Параметры

lpszResourceName
Имя ресурса, содержащего необходимые сведения о динамическом макете для этого окна.

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

Ненулевое значение, если функция выполнена успешно. В случае ошибки — 0.

Замечания

Не вызывайте этот метод напрямую.

CWnd::LockWindowUpdate

Отключает рисование в заданном окне.

BOOL LockWindowUpdate();

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

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

Замечания

Не удается переместить заблокированное окно. Одновременно можно заблокировать только одно окно. Чтобы разблокировать окно, заблокированное с LockWindowUpdateпомощью вызова UnlockWindowUpdate.

Если приложение с заблокированным окном (или любым заблокированным дочерним окнам) вызывает GetDCфункцию , GetDCExили BeginPaint Windows, вызываемая функция возвращает контекст устройства, видимый регион которого пуст. Это произойдет, пока приложение не разблокирует окно, вызвав функцию-член UnlockWindowUpdate .

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

Функция-член LockWindowUpdate не делает заданное окно невидимым и не очищает WS_VISIBLE бит стиля.

CWnd::m_hWnd

Дескриптор окна Windows, подключенного к этому CWnd.

HWND m_hWnd;

Замечания

Элемент 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. Этот метод возвращает результат вызова этой функции.

Замечания

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

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

Значок Макрос
Stop or X icon, consisting of a red circle with a white x in the middle. MB_ICONHAND, MB_ICONSTOP и MB_ICONERROR
Help or question mark icon, consisting of a thought bubble icon with a question mark in it. МБ_ICONQUESTION
Important or exclamation point icon, consisting of a yellow triangle with a black exclamation point in it. МБ_ICONEXCLAMATION и МБ_ICONWARNING
Information or letter I icon, consiting of a thought bubble with a lowercase letter i in it. МБ_ICONASTERISK и МБ_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. Список предустановленных флагов см. в разделе "Примечания".

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

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

Замечания

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

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

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

Замечания

Стили для добавления или удаления можно объединить с помощью побитового оператора 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 в обработчике OnPaint сообщений получается WM_PAINT как обычно. Если этот параметр имеет значение FALSE, повторение любого типа не происходит. Это относится к клиентской области, к неклиентной области (включая заголовки и полосы прокрутки), а также к любой части родительского окна, обнаруженной в результате CWndперемещения. Если этот параметр задан FALSE, приложение должно явно недействительным или перераспределывать все части и родительское CWnd окно, которые должны быть перезаписаны.

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

Замечания

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

Замечания

Эта функция-член эмулирует функциональные возможности функции функции 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активируется; в противном случае деактивировано.

Замечания

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

Примечание.

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

CWnd::OnActivateApp

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

afx_msg void OnActivateApp(
    BOOL bActive,
    DWORD dwThreadID);

Параметры

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

dwThreadID
Указывает значение идентификатора потока. Если bActive это TRUEтак, dwThreadID определяет поток, принадлежащий CWnd деактивации. Если bActive это FALSEтак, dwThreadID определяет поток, принадлежащий активируемой CWnd .

Замечания

Примечание.

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

CWnd::OnAmbientProperty

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

virtual BOOL OnAmbientProperty(
    COleControlSite* pSite,
    DISPID dispid,
    VARIANT* pvar);

Параметры

pSite
Указатель на сайт элемента управления, запрашивающего свойство окружения.

dispid
Идентификатор диспетчера запрошенного внешнего свойства.

pvar
Указатель на структуру, выделенную VARIANT вызывающим объектом, с помощью которой будет возвращено значение внешнего свойства.

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

TRUE Значение , если свойство окружения поддерживается; FALSE Если нет.

Замечания

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

Замечания

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

Примечание.

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

CWnd::OnAskCbFormatName

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

afx_msg void OnAskCbFormatName(
    UINT nMaxCount,
    LPTSTR lpszString);

Параметры

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

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

Замечания

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

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

Примечание.

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

CWnd::OnCancelMode

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

afx_msg void OnCancelMode();

Замечания

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

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

CWnd::OnCaptureChanged

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

afx_msg void OnCaptureChanged(CWnd* pWnd);

Параметры

pWnd
Указатель на окно для получения записи мыши

Замечания

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

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

Примечание.

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

CWnd::OnChangeCbChain

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

afx_msg void OnChangeCbChain(
    HWND hWndRemove,
    HWND hWndAfter);

Параметры

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

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

Замечания

Каждый CWnd объект, получающий OnChangeCbChain вызов, должен использовать SendMessage функцию Windows для отправки WM_CHANGECBCHAIN сообщения в следующее окно в цепочке просмотра буфера обмена (дескриптор, возвращаемый SetClipboardViewer). Если hWndRemove это следующее окно в цепочке, окно, указанное hWndAfter в следующем окне, и сообщения буфера обмена передаются в него.

Примечание.

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

CWnd::OnChangeUIState

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

afx_msg void OnChangeUIState(
    UINT nAction,
    UINT nUIElement);

Параметры

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

  • UIS_CLEAR Элемент состояния пользовательского интерфейса (указанный в nUIElementпараметре) должен быть скрыт.

  • UIS_INITIALIZE Элемент состояния пользовательского интерфейса (указанный в nUIElement) должен быть изменен на основе последнего входного события. Дополнительные сведения см. в разделе WM_CHANGEUISTATE"Примечания".

  • UIS_SET Элемент состояния пользовательского интерфейса (указанный в nUIElement) должен быть видимым.

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

  • UISF_HIDEACCEL Ускорители клавиатуры.

  • UISF_HIDEFOCUS Индикаторы фокуса.

  • UISF_ACTIVE Windows XP: элемент управления должен быть нарисован в стиле, используемом для активных элементов управления.

Замечания

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

Замечания

Эта функция вызывается до OnKeyUp функции-члена и после OnKeyDown вызова функции-члена. OnChar содержит значение нажатия или выпуска клавиши клавиатуры.

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

Для клавиатуры IBM Enhanced 101 и 102-key расширенные клавиши — это правильный 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 или больше указывает отсчитываемый от нуля индекс элемента в поле списка и указывает, что поле списка должно выполнять действие по умолчанию для нажатия клавиш на заданном элементе.

Замечания

Примечание.

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

Замечания

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

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

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

CWnd::OnClipboardUpdate

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

afx_msg void OnClipboardUpdate();

CWnd::OnClose

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

afx_msg void OnClose();

Замечания

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

CWnd::OnColorizationColorChanged

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

afx_msg void OnColorizationColorChanged(
    DWORD dwColorizationColor,
    BOOL bOpacity);

Параметры

dwColorizationColor
[in] Задает новый цвет цветовой параметров. Формат цвета — шестнадцатеричное число формы 0xAARRGGBB, где каждый из четырех компонентов диапазонов от 0x00 до 0xFF. Компонент AA является альфа-значением, RR — это цвет красный, GG зеленый, а BB — синий.

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

Замечания

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

Примечание.

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

CWnd::OnCommand

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

virtual BOOL OnCommand(
    WPARAM wParam,
    LPARAM lParam);

Параметры

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

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

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

Приложение возвращает ненулевое значение, если оно обрабатывает это сообщение; в противном случае — 0.

Замечания

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

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

Примечание.

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

CWnd::OnCompacting

Платформа вызывает эту функцию-член для всех окон верхнего уровня, когда Windows обнаруживает, что более 12,5 процента системного времени в течение 30–60-секундного интервала тратится на сжатие памяти.

afx_msg void OnCompacting(UINT nCpuTime);

Параметры

nCpuTime
Указывает соотношение времени ЦП, затраченного в настоящее время на сжатие памяти Windows на время ЦП, затраченное на выполнение других операций. Например, 8000h представляет 50 процентов времени, затраченного на сжатие памяти ЦП.

Замечания

Это означает, что системная память низка.

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.

Замечания

Если поле со списком или списком создается с CBS_SORT помощью или LBS_SORT стиля, Windows отправляет сообщение владельца WM_COMPAREITEM со списком или списка при добавлении нового элемента в приложение.

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

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

Примечание.

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

CWnd::OnCompositionChanged

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

afx_msg void OnCompositionChanged();

Замечания

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

Примечание.

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

CWnd::OnContextMenu

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

afx_msg void OnContextMenu(
    CWnd* pWnd,
    CPoint pos);

Параметры

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

pos
Позиция курсора в координатах экрана во время щелчка мыши.

Замечания

Это сообщение можно обработать, отображая контекстное меню с помощью .TrackPopupMenu

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

CWnd::OnCopyData

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

afx_msg BOOL OnCopyData(
    CWnd* pWnd,
    COPYDATASTRUCT* pCopyDataStruct);

Параметры

pWnd
Указатель на CWnd объект, отправляющий данные.

pCopyDataStruct
Указатель на структуру COPYDATASTRUCT , содержащую отправленные данные.

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

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

Замечания

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

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

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

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

Примечание.

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

CWnd::OnCreate

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

afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);

Параметры

lpCreateStruct
Указывает на структуру CREATESTRUCT , содержащую сведения о создаваемом объекте CWnd .

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

OnCreate Должен вернуть значение 0, чтобы продолжить создание CWnd объекта. Если приложение возвращает значение -1, окно будет уничтожено.

Замечания

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

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

Структура 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 Элемент управления List-box

  • CTLCOLOR_MSGBOX Поле сообщения

  • CTLCOLOR_SCROLLBAR Элемент управления прокрутки

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

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

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

Замечания

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

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

Замечания

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

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

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

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

Примечание.

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

CWnd::OnDeleteItem

Платформа вызывает эту функцию-член, чтобы сообщить владельцу поля списка владельца или поля со списком, что поле списка или поле со списком уничтожено или что элементы были удалены CComboBox::DeleteString, CListBox::DeleteStringCComboBox::ResetContentили CListBox::ResetContent.

afx_msg void OnDeleteItem(
    int nIDCtl,
    LPDELETEITEMSTRUCT lpDeleteItemStruct);

Параметры

nIDCtl
Идентификатор элемента управления, отправляющего WM_DELETEITEM сообщение.

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

Замечания

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

Примечание.

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

CWnd::OnDestroy

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

afx_msg void OnDestroy();

Замечания

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
Адрес структуры, содержащей данные, относящиеся к событиям. Его значение зависит от заданного события.

Замечания

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

Если операционная система принудительно удаляет устройство, оно может не отправлять DBT_DEVICEQUERYREMOVE сообщение перед этим.

Параметр nEvent может быть одним из следующих значений:

  • DBT_DEVICEARRIVAL Устройство вставлено и теперь доступно.

  • DBT_DEVICEQUERYREMOVE Запрашивается разрешение на удаление устройства. Любое приложение может запретить этот запрос и отменить удаление.

  • DBT_DEVICEQUERYREMOVEFAILED Запрос на удаление устройства был отменен.

  • DBT_DEVICEREMOVEPENDING Устройство будет удалено. Невозможно отрицать.

  • DBT_DEVICEREMOVECOMPLETE Устройство удалено.

  • DBT_DEVICETYPESPECIFIC Событие для конкретного устройства.

  • DBT_CONFIGCHANGED Текущая конфигурация изменилась.

  • DBT_DEVNODES_CHANGED Узел устройства изменился.

Примечание.

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

CWnd::OnDevModeChange

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

afx_msg void OnDevModeChange(LPTSTR lpDeviceName);

Параметры

lpDeviceName
Указывает на имя устройства, указанное в файле инициализации Windows, WIN.INI.

Замечания

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

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

Примечание.

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

CWnd::OnDrawClipboard

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

afx_msg void OnDrawClipboard();

Замечания

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

Замечания

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

CWnd::OnDrawItem

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

afx_msg void OnDrawItem(
    int nIDCtl,
    LPDRAWITEMSTRUCT lpDrawItemStruct);

Параметры

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

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

Замечания

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

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

hwndItem Если член принадлежит объекту CButton, CMenuCListBoxили CComboBox, DrawItem вызывается виртуальная функция соответствующего класса. Переопределите DrawItem функцию-член класса соответствующего элемента управления для рисования элемента.

Примечание.

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

CWnd::OnDropFiles

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

afx_msg void OnDropFiles(HDROP hDropInfo);

Параметры

hDropInfo
Указатель на внутреннюю структуру данных, описывающую удаленные файлы. Этот дескриптор используется функциями DragFinish, DragQueryFileи DragQueryPoint Windows для получения сведений об удаленных файлах.

Замечания

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

Примечание.

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

CWnd::OnEnable

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

afx_msg void OnEnable(BOOL bEnable);

Параметры

bEnable
Указывает, CWnd включен или отключен объект. Этот параметр имеет TRUE значение, если он включен; он FALSE имеет значение, если CWndCWnd он отключен.

Замечания

OnEnable вызывается до EnableWindow возврата функции-члена, но после изменения состояния включено окно (WS_DISABLED бит стиля).

Примечание.

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

CWnd::OnEndSession

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

afx_msg void OnEndSession(BOOL bEnding);

Параметры

bEnding
Указывает, завершается ли сеанс. Значение TRUE />, если сеанс завершается; в противном случае FALSE.

Замечания

Вызов 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). Этот указатель может быть временным и не должен храниться для последующего использования.

Замечания

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

Примечание.

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

CWnd::OnEnterMenuLoop

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

afx_msg void OnEnterMenuLoop(BOOL bIsTrackPopupMenu);

Параметры

bIsTrackPopupMenu
Указывает, является ли это всплывающее меню. Имеет ненулевое значение, если функция выполнена успешно; в противном случае — 0.

Замечания

Примечание.

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

CWnd::OnEnterSizeMove

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

afx_msg void OnEnterSizeMove();

Замечания

Этот метод получает 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.

Замечания

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

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

Замечания

Примечание.

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

CWnd::OnExitSizeMove

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

afx_msg void OnExitSizeMove();

Замечания

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

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

Примечание.

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

CWnd::OnFontChange

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

afx_msg void OnFontChange();

Замечания

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

Замечания

Как правило, Windows обрабатывает все входные данные со стрелками и клавишами TAB в CWnd элемент управления. Переопределяя OnGetDlgCodeэлемент управления, CWnd может выбрать определенный тип входных данных для процесса.

Функции по умолчанию OnGetDlgCode для предопределенных классов элементов управления возвращают код, соответствующий каждому классу.

CWnd::OnGetMinMaxInfo

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

afx_msg void OnGetMinMaxInfo(MINMAXINFO* lpMMI);

Параметры

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

Замечания

Максимальный размер — это размер окна, когда его границы полностью расширены. Максимальный размер окна отслеживания — это самый большой размер окна, который можно достичь с помощью границ для размера окна. Минимальный размер окна отслеживания — это наименьший размер окна, который можно достичь с помощью границ для размера окна.

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

Примечание.

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

CWnd::OnHelp

Обрабатывает справку F1 в приложении (с использованием текущего контекста).

afx_msg void OnHelp();

Замечания

Дополнительные сведения см. в разделе CWinApp::OnHelp.

CWnd::OnHelpFinder

ID_HELP_FINDER Обрабатывает команды и ID_DEFAULT_HELP команды.

afx_msg void OnHelpFinder();

Замечания

Дополнительные сведения см. в разделе CWinApp::OnHelpFinder.

CWnd::OnHelpIndex

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

afx_msg void OnHelpIndex();

Замечания

Дополнительные сведения см. в разделе CWinApp::OnHelpIndex.

CWnd::OnHelpInfo

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

afx_msg BOOL OnHelpInfo(HELPINFO* lpHelpInfo);

Параметры

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

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

Возвращает значение TRUE , если окно имеет фокус клавиатуры или если меню активно в окне. Если в окне нет фокуса клавиатуры, возвращается FALSE.

Замечания

Если меню активно при нажатии клавиши F1, отправляется в окно, WM_HELP связанное с меню; в противном случае WM_HELP отправляется в окно с фокусом клавиатуры. Если окно не имеет фокуса клавиатуры, WM_HELP отправляется в активное окно.

CWnd::OnHelpUsing

Обрабатывает команду ID_HELP_USING.

afx_msg void OnHelpUsing();

Замечания

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

Замечания

Этот метод получает 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_THUMBPOSITIONSB_THUMBTRACK; в противном случае не используется. В зависимости от начального диапазона nPos прокрутки может быть отрицательным и должен быть приведение к int при необходимости.

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

Замечания

Код 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; в противном случае не используется.

Замечания

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

Примечание.

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

CWnd::OnIconEraseBkgnd

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

afx_msg void OnIconEraseBkgnd(CDC* pDC);

Параметры

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

Замечания

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

Функция-член DefWindowProc заполняет фон значка фоновой кистью родительского окна.

Примечание.

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

CWnd::OnInitMenu

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

afx_msg void OnInitMenu(CMenu* pMenu);

Параметры

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

Замечания

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

OnInitMenu вызывается только один раз, когда к меню впервые обращается (например, когда пользователь щелкает элемент в строке меню). Этот метод не предоставляет сведения о элементах меню. Когда пользователь перемещается к элементам в меню (например, перемещая мышь по нескольким пунктам меню), функция не вызывается снова. После выхода пользователя из меню (например, щелкнув клиентская область приложения) и щелкнув элемент в строке меню, функция будет вызвана снова.

Примечание.

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

CWnd::OnInitMenuPopup

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

afx_msg void OnInitMenuPopup(
    CMenu* pPopupMenu,
    UINT nIndex,
    BOOL bSysMenu);

Параметры

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

nIndex
Указывает индекс всплывающего меню в главном меню.

bSysMenu
TRUE Если всплывающее меню — это меню "Элемент управления"; в противном случае FALSE.

Замечания

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

Примечание.

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

CWnd::OnInputDeviceChange

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

afx_msg void OnInputDeviceChange(unsigned short uFlag);

Параметры

uFlag
[in] Этот флаг может содержать следующие значения:

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

Замечания

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

Примечание.

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

CWnd::OnInputLangChange

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

afx_msg void OnInputLangChange(
    UINT nCharSet,
    UINT nLocaleId);

Параметры

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

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

Замечания

Этот метод получает 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] Входной идентификатор языкового стандарта. Дополнительные сведения см. в разделе "Константы идентификатора языка" и "Строки".

Замечания

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

Примечание.

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

CWnd::OnKeyDown

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

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

Параметры

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

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

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

значение Description
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.

Замечания

Несистемный ключ — это клавиша клавиатуры, которая нажимается, если клавиша ALT не нажимается или клавиша клавиатуры, которая нажимается при CWnd нажатии фокуса ввода.

Из-за автоматического повторения несколько OnKeyDown вызовов могут возникать перед вызовом OnKeyUp функции-члена. Бит, указывающий предыдущее состояние ключа, можно использовать для определения того, является ли OnKeyDown вызов первым переходом вниз или повторяющимся переходом вниз.

Для клавиатуры IBM Enhanced 101 и 102-key расширенные клавиши — это правильный 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
Задает код сканирования, код перехода ключей, предыдущий состояние ключа и код контекста, как показано в следующем списке:

значение Description
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.

Замечания

Несистемный ключ — это клавиша клавиатуры, которая нажимается, когда клавиша ALT не нажимается или клавиша клавиатуры, которая нажимается при CWnd нажатии фокуса ввода.

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

Примечание.

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

CWnd::OnKillFocus

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

afx_msg void OnKillFocus(CWnd* pNewWnd);

Параметры

pNewWnd
Указывает указатель на окно, которое получает фокус ввода (может быть или может быть NULL временным).

Замечания

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 курсора. Эти координаты всегда относятся к левому верхнему углу окна.

Замечания

Только окна с стилем CS_DBLCLKSWNDCLASS будут получать OnLButtonDblClk звонки. Это значение по умолчанию для окон классов Microsoft Foundation. Windows вызывается OnLButtonDblClk , когда пользователь нажимает, освобождает, а затем снова нажимает левую кнопку мыши в пределах ограничения времени двойного щелчка системы. Дважды щелкнув левую кнопку мыши, на самом деле создает четыре события: WM_LBUTTONDOWNWM_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 курсора. Эти координаты всегда относятся к левому верхнему углу окна.

Замечания

Примечание.

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

Замечания

Примечание.

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

Замечания

Только окна с стилем 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 курсора. Эти координаты всегда относятся к левому верхнему углу окна.

Замечания

Примечание.

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

Замечания

Примечание.

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

CWnd::OnMDIActivate

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

afx_msg void OnMDIActivate(
    BOOL bActivate,
    CWnd* pActivateWnd,
    CWnd* pDeactivateWnd);

Параметры

bActivate
TRUE Значение , если дочерний элемент активируется и FALSE если он деактивирован.

pActivateWnd
Содержит указатель на дочернее окно MDI для активации. При получении дочернего окна pActivateWnd MDI содержит указатель на дочернее окно, активируемое. Этот указатель может быть временным и не должен храниться для последующего использования.

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

Замечания

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

Примечание.

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

CWnd::OnMeasureItem

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

afx_msg void OnMeasureItem(
    int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct);

Параметры

nIDCtl
Идентификатор элемента управления.

lpMeasureItemStruct
Указывает на MEASUREITEMSTRUCT структуру данных, содержащую измерения элемента управления "Рисование владельца".

Замечания

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

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

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

Если измеряемый элемент является CMenuCListBox объектом или CComboBox объектом, 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элемент. Указатель может быть временным и не должен храниться.

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

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

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

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

Замечания

Он отправляется 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 Меню должно быть завершено.

Замечания

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

Примечание.

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

CWnd::OnMenuGetObject

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

afx_msg UINT OnMenuGetObject(MENUGETOBJECTINFO* pMenuGetObjectInfo);

Параметры

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

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

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

Замечания

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

Примечание.

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

CWnd::OnMenuRButtonUp

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

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

Параметры

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

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

Замечания

Этот метод получает 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_POPUP, ни MF_SYSMENU не используется.

Замечания

Если 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 карта событие мыши.

Замечания

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

Замечания

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

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

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

Замечания

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

Примечание.

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

CWnd::OnMouseLeave

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

afx_msg void OnMouseLeave();

Замечания

Этот метод получает 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 курсора. Эти координаты всегда относятся к левому верхнему углу окна.

Замечания

Если мышь не захвачена, 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. Значение меньше нуля указывает поворот назад (к пользователю), а значение больше нуля указывает на поворот вперед (от пользователя). Пользователь может изменить этот ответ, изменив параметр Колесика в программном обеспечении мыши. Дополнительные сведения об этом параметре см. в примечаниях.

pt
Указывает координату x-и y курсора. Эти координаты всегда относительно левого верхнего угла экрана.

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

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

Замечания

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

Замечания

Примечание.

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

CWnd::OnMoving

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

afx_msg void OnMoving(
    UINT nSide,
    LPRECT lpRect);

Параметры

nSide
Край окна, который необходимо переместить.

lpRect
CRect Адрес или RECT структура, которая будет содержать координаты элемента.

Замечания

Примечание.

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

CWnd::OnNcActivate

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

afx_msg BOOL OnNcActivate(BOOL bActive);

Параметры

bActive
Указывает, когда необходимо изменить подпись панель или значок, чтобы указать активное или неактивное состояние. Параметр bActive заключается в томTRUE, что должен быть нарисован активный подпись или значок. Он предназначен FALSE для неактивного подпись или значка.

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

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

Замечания

Реализация по умолчанию рисует строку заголовка и текст строки заголовка в их активных цветах bActiveFALSE, если bActive это TRUE неактивные цвета.

Примечание.

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

CWnd::OnNcCalcSize

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

afx_msg void OnNcCalcSize(
    BOOL bCalcValidRects,
    NCCALCSIZE_PARAMS* lpncsp);

Параметры

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

lpncsp
Указывает на NCCALCSIZE_PARAMS структуру данных, содержащую информацию, которую приложение может использовать для вычисления нового размера и положения CWnd прямоугольника (включая клиентская область, границы, подпись, полосы прокрутки и т. д.).

Замечания

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

Независимо от значения bCalcValidRects, первый прямоугольник в массиве, указанный rgrc элементом NCCALCSIZE_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 в этом случае.

Замечания

Примечание.

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

CWnd::OnNcDestroy

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

afx_msg void OnNcDestroy();

Замечания

Реализация по умолчанию выполняет некоторую очистку, а затем вызывает функцию PostNcDestroyвиртуального члена.

Переопределите PostNcDestroy , если вы хотите выполнить собственную очистку, например delete this операцию. При переопределении OnNcDestroyнеобходимо вызвать OnNcDestroy в базовом классе, чтобы обеспечить освобождение любой памяти, выделенной для окна.

CWnd::OnNcHitTest

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

afx_msg LRESULT OnNcHitTest(CPoint point);

Параметры

point
Содержит координаты x-и y курсора. Эти координаты всегда являются координатами экрана.

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

Одно из перечисленных значений теста нажатия мыши. См WM_NCHITTEST . список значений.

Замечания

Примечание.

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

CWnd::OnNcLButtonDblClk

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

afx_msg void OnNcLButtonDblClk(
    UINT nHitTest,
    CPoint point);

Параметры

nHitTest
Задает код хит-теста. Тест попадания — это тест, определяющий расположение курсора. См WM_NCHITTEST . список значений.

point
Указывает CPoint объект, содержащий координаты экрана x и y позиции курсора. Эти координаты всегда относительно левого верхнего угла экрана.

Замечания

При необходимости WM_SYSCOMMAND отправляется сообщение.

Примечание.

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

CWnd::OnNcLButtonDown

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

afx_msg void OnNcLButtonDown(
    UINT nHitTest,
    CPoint point);

Параметры

nHitTest
Задает код хит-теста. Тест попадания — это тест, определяющий расположение курсора. См WM_NCHITTEST . список значений.

point
Указывает CPoint объект, содержащий координаты экрана x и y позиции курсора. Эти координаты всегда относительно левого верхнего угла экрана.

Замечания

При необходимости WM_SYSCOMMAND отправляется.

Примечание.

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

CWnd::OnNcLButtonUp

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

afx_msg void OnNcLButtonUp(
    UINT nHitTest,
    CPoint point);

Параметры

nHitTest
Задает код хит-теста. Тест попадания — это тест, определяющий расположение курсора. См WM_NCHITTEST . список значений.

point
Указывает CPoint объект, содержащий координаты экрана x и y позиции курсора. Эти координаты всегда относительно левого верхнего угла экрана.

Замечания

При необходимости WM_SYSCOMMAND отправляется.

Примечание.

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

CWnd::OnNcMButtonDblClk

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

afx_msg void OnNcMButtonDblClk(
    UINT nHitTest,
    CPoint point);

Параметры

nHitTest
Задает код хит-теста. Тест попадания — это тест, определяющий расположение курсора.

point
Указывает CPoint объект, содержащий координаты экрана x и y позиции курсора. Эти координаты всегда относительно левого верхнего угла экрана.

Замечания

Примечание.

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

CWnd::OnNcMButtonDown

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

afx_msg void OnNcMButtonDown(
    UINT nHitTest,
    CPoint point);

Параметры

nHitTest
Задает код хит-теста. Тест попадания — это тест, определяющий расположение курсора.

point
Указывает CPoint объект, содержащий координаты экрана x и y позиции курсора. Эти координаты всегда относительно левого верхнего угла экрана.

Замечания

Примечание.

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

CWnd::OnNcMButtonUp

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

afx_msg void OnNcMButtonUp(
    UINT nHitTest,
    CPoint point);

Параметры

nHitTest
Задает код хит-теста. Тест попадания — это тест, определяющий расположение курсора.

point
Указывает CPoint объект, содержащий координаты экрана x и y позиции курсора. Эти координаты всегда относительно левого верхнего угла экрана.

Замечания

Примечание.

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

CWnd::OnNcMouseHover

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

afx_msg void OnNcMouseHover(
    UINT nHitTest,
    CPoint point);

Параметры

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

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

Замечания

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

Примечание.

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

CWnd::OnNcMouseLeave

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

afx_msg void OnNcMouseLeave();

Замечания

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

Примечание.

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

CWnd::OnNcMouseMove

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

afx_msg void OnNcMouseMove(
    UINT nHitTest,
    CPoint point);

Параметры

nHitTest
Задает код хит-теста. Тест попадания — это тест, определяющий расположение курсора.

point
Указывает CPoint объект, содержащий координаты экрана x и y позиции курсора. Эти координаты всегда относительно левого верхнего угла экрана.

Замечания

При необходимости WM_SYSCOMMAND отправляется сообщение.

Примечание.

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

CWnd::OnNcPaint

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

afx_msg void OnNcPaint();

Замечания

Реализация по умолчанию красит рамку окна.

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

CWnd::OnNcRButtonDblClk

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

afx_msg void OnNcRButtonDblClk(
    UINT nHitTest,
    CPoint point);

Параметры

nHitTest
Задает код хит-теста. Тест попадания — это тест, определяющий расположение курсора.

point
Указывает CPoint объект, содержащий координаты экрана x и y позиции курсора. Эти координаты всегда относительно левого верхнего угла экрана.

Замечания

Примечание.

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

CWnd::OnNcRButtonDown

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

afx_msg void OnNcRButtonDown(
    UINT nHitTest,
    CPoint point);

Параметры

nHitTest
Задает код хит-теста. Тест попадания — это тест, определяющий расположение курсора.

point
Указывает CPoint объект, содержащий координаты экрана x и y позиции курсора. Эти координаты всегда относительно левого верхнего угла экрана.

Замечания

Примечание.

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

CWnd::OnNcRButtonUp

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

afx_msg void OnNcRButtonUp(
    UINT nHitTest,
    CPoint point);

Параметры

nHitTest
Задает код хит-теста. Тест попадания — это тест, определяющий расположение курсора.

point
Указывает CPoint объект, содержащий координаты экрана x и y позиции курсора. Эти координаты всегда относительно левого верхнего угла экрана.

Замечания

Примечание.

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

CWnd::OnNcRenderingChanged

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

afx_msg void OnNcRenderingChanged(BOOL bIsRendering);

Параметры

bIsRendering
[in] TRUE Значение , если отрисовка диспетчера окон рабочего стола (DWM) включена для неклиентной области окна; FALSE Значение , если отрисовка отключена.

Замечания

Этот метод получает 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 координаты курсора относительно левого верхнего угла клиентской области.

Замечания

Этот метод получает 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 координаты курсора относительно левого верхнего угла экрана.

Замечания

Этот метод получает 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 курсора относительно левого верхнего угла экрана.

Замечания

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

Примечание.

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

CWnd::OnNextMenu

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

afx_msg void OnNextMenu(
    UINT nKey,
    LPMDINEXTMENU lpMdiNextMenu);

Параметры

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

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

Замечания

Этот метод получает 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.

Замечания

OnNotify обрабатывает карту сообщений для уведомления элемента управления.

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

Дополнительные сведения о сообщении см. в техническом WM_NOTIFY примечание 61 (TN061) ON_NOTIFY и WM_NOTIFY сообщениях. Вы также можете заинтересовать связанные разделы, описанные в разделах управления и TN062, message Рефлексия ion для элементов управления 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 Произошла ошибка.

Замечания

Этот метод получает WM_NOTIFYFORMAT уведомление, описанное в пакете SDK для Windows. WM_NOTIFY сообщения отправляются из общего элемента управления в родительское окно и из родительского окна в общий элемент управления.

Примечание.

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

CWnd::OnPaint

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

afx_msg void OnPaint();

Замечания

Сообщение 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 данных, которая определяет часть клиентской области для рисования.

Замечания

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

OnPaintClipboard Следует использовать GlobalLock функцию Windows для блокировки памяти, содержащей PAINTSTRUCT структуру данных, и разблокировать ее с помощью функции Windows перед выходом GlobalUnlock .

Примечание.

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

CWnd::OnPaletteChanged

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

afx_msg void OnPaletteChanged(CWnd* pFocusWnd);

Параметры

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

Замечания

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

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

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

Примечание.

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

CWnd::OnPaletteIsChanging

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

afx_msg void OnPaletteIsChanging(CWnd* pRealizeWnd);

Параметры

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

Замечания

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

Замечания

При создании дочернего окна системные вызовы 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 запретить запрос.

Замечания

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

Параметр nPowerEvent указывает события, такие как питание батареи низкое, состояние питания изменилось, разрешение на приостановку операции запрашивается или запрещается, операция возобновляется автоматически после события, система приостанавливает операцию, или операция возобновляется после приостановки. Обычно nEventData параметр не используется. Дополнительные сведения см. в wParam разделе и lParam параметры WM_POWERBROADCAST сообщения.

Примечание.

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

CWnd::OnQueryDragIcon

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

afx_msg HCURSOR OnQueryDragIcon();

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

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

Замечания

Система вызывает этот вызов, чтобы получить курсор для отображения, пока пользователь перетаскивает свернутый окно. Если приложение возвращает дескриптор значка или курсора, система преобразует его в черный и белый. Если приложение возвращает дескриптор, дескриптор должен определить монохромный курсор или значок, совместимый с разрешением драйвера дисплея. Приложение может вызвать CWinApp::LoadCursorCWinApp::LoadIcon функции-члены для загрузки курсора или значка из ресурсов в исполняемом файле и получить этот дескриптор.

CWnd::OnQueryEndSession

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

afx_msg BOOL OnQueryEndSession();

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

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

Замечания

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

CWnd::OnQueryNewPalette

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

afx_msg BOOL OnQueryNewPalette();

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

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

CWnd::OnQueryOpen

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

afx_msg BOOL OnQueryOpen();

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

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

Замечания

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

CWnd::OnQueryUIState

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

afx_msg UINT OnQueryUIState();

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

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

  • UISF_HIDEFOCUS Индикаторы фокуса скрыты.

  • UISF_HIDEACCEL Ускорители клавиатуры скрыты.

  • UISF_ACTIVE Windows XP: элемент управления должен быть нарисован в стиле, используемом для активных элементов управления.

Замечания

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

Замечания

Этот метод получает 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 курсора. Эти координаты всегда относятся к левому верхнему углу окна.

Замечания

Только окна с стилем 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 курсора. Эти координаты всегда относятся к левому верхнему углу окна.

Замечания

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

Замечания

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

CWnd::OnRegisteredMouseWheel

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

afx_msg LRESULT OnRegisteredMouseWheel(
    WPARAM wParam,
    LPARAM lParam);

Параметры

wParam
Горизонтальное положение указателя.

lParam
Вертикальное положение указателя.

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

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

Замечания

Если не переопределено, OnRegisteredMouseWheel перенаправляет сообщение в соответствующее окно (родительское окно с фокусом) и вызывает WM_MOUSEWHEEL обработчик для этого окна.

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

Примечание.

OnRegisteredMouseWheel обрабатывает сообщения для Windows 95/98 и Windows NT 3.51. Для обработки сообщений Windows NT 4.0 используйте OnMouseWheel.

CWnd::OnRenderAllFormats

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

afx_msg void OnRenderAllFormats();

Замечания

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

CWnd::OnRenderFormat

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

afx_msg void OnRenderFormat(UINT nFormat);

Параметры

nFormat
Задает формат буфера обмена.

Замечания

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

Не вызывайте OpenClipboard функцию-член или CloseClipboard функцию Windows изнутри OnRenderFormat.

Примечание.

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

CWnd::OnSessionChange

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

afx_msg void OnSessionChange(
    UINT nSessionState,
    UINT nId);

Параметры

nSessionState
[in] Код состояния описывает изменение состояния сеанса.

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

Замечания

Этот метод получает 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, чтобы продолжить.

Замечания

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

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

Если nHitTest сообщение находится и message является HTERROR сообщением мыши вниз, MessageBeep вызывается функция-член.

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

Примечание.

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

CWnd::OnSetFocus

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

afx_msg void OnSetFocus(CWnd* pOldWnd);

Параметры

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

Замечания

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

Примечание.

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

CWnd::OnSettingChange

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

afx_msg void OnSettingChange(
    UINT uFlags,
    LPCTSTR lpszSection);

Параметры

uFlags
Когда система отправляет сообщение в результате SystemParametersInfo вызова, этот параметр является флагом, указывающим на измененный системный параметр. Список значений см SystemParametersInfo . в пакете SDK для Windows. Когда приложение отправляет сообщение, этот параметр должен иметь значение 0.

lpszSection
Указывает на строку, указывающую имя измененного раздела. (Строка не включает квадратные скобки, содержащие имя раздела.)

Замечания

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

Замечания

Окно скрыто или отображается при 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
Задает новую высоту клиентской области.

Замечания

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

Замечания

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

Замечания

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

Примечание.

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

Замечания

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

Примечание.

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

CWnd::OnStyleChanged

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

afx_msg void OnStyleChanged(
    int nStyleType,
    LPSTYLESTRUCT lpStyleStruct);

Параметры

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

  • GWL_EXSTYLE Расширенные стили окна изменились.

  • GWL_STYLE Нераспреждаемые стили окна изменились.

lpStyleStruct
Указывает на структуру STYLESTRUCT , содержащую новые стили для окна. Приложение может изучить стили, но не может изменить их.

Замечания

Примечание.

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

CWnd::OnStyleChanging

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

afx_msg void OnStyleChanging(
    int nStyleType,
    LPSTYLESTRUCT lpStyleStruct);

Параметры

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

  • GWL_EXSTYLE Расширенные стили окна изменились.

  • GWL_STYLE Нераспреждаемые стили окна изменились.

lpStyleStruct
Указывает на структуру STYLESTRUCT , содержащую новые стили для окна. Приложение может изучить стили и изменить их.

Замечания

Примечание.

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

Замечания

Он задает код виртуального ключа ключа клавиши Control-menu. (Список стандартных кодов виртуальных ключей см. в статье Winuser.h)

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

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

Примечание.

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

CWnd::OnSysColorChange

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

afx_msg void OnSysColorChange();

Замечания

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

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

CWnd::OnSysCommand

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

afx_msg void OnSysCommand(
    UINT nID,
    LPARAM lParam);

Параметры

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

  • SC_CLOSECWnd Закройте объект.

  • SC_HOTKEY Активируйте объект, связанный CWnd с заданным приложением горячим ключом. Слово 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Выполните приложение для сохранения экрана, указанное в разделе "Рабочий стол" панель управления.

Замечания

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

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

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

Замечания

Он задает значение символа мертвого ключа.

Примечание.

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

Замечания

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

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

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

Для клавиатуры IBM Enhanced 101- и 102-key расширенные клавиши — это правые клавиши 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, если сообщение отправляется в активное окно, так как окно не имеет фокуса ввода.

Замечания

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

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

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

Для пользователей, не являющихся США Расширенные клавиатуры с 102 клавишами, правый клавиша ALT обрабатывается как сочетание клавиш CTRL+ALT. Ниже показано последовательность сообщений и вызовов, которые приводят к тому, что пользователь нажимает и освобождает этот ключ:

Sequence Доступ к функциям Передано сообщение
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, этот параметр является длинным целым числом, указанным автором справки. В противном случае этот параметр равен нулю.

Замечания

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

CWnd::OnTimeChange

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

afx_msg void OnTimeChange();

Замечания

У любого приложения, которое изменяет системное время отправки этого сообщения во все окна верхнего уровня. Чтобы отправить WM_TIMECHANGE сообщение во все окна верхнего уровня, приложение может использовать SendMessage функцию Windows с заданным hwnd параметром HWND_BROADCAST.

CWnd::OnTimer

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

afx_msg void OnTimer(UINT_PTR nIDEvent);

Параметры

nIDEvent
Указывает идентификатор таймера.

Замечания

Функция 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.

Замечания

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

Если область, с которой связана подсказка, не является кнопкой, 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.

Замечания

CWnd::OnTouchInputs

Обрабатывает входные данные из сенсорного ввода Windows.

virtual BOOL OnTouchInputs(
    UINT nInputsCount,
    PTOUCHINPUT pInputs);

Параметры

nInputsCount
Общее количество сенсорных входных данных Windows.

pInputs
TOUCHINPUTМассив .

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

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

Замечания

CWnd::OnUniChar

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

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

Параметры

nChar
[in] Задает код символа нажатия клавиши.

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

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

Пометка битов Description
0-7 Задает код сканирования. Значение зависит от исходного производителя оборудования (OEM).
8 Задает расширенный ключ, например клавиши ALT справа и CTRL, которые отображаются на расширенной клавиатуре 101 или 102 клавиш. Флаг равен 1, если ключ является расширенным ключом; в противном случае значение равно 0.
9-12 Используется внутри Windows.
13 Задает код контекста. Флаг равен 1, если клавиша ALT удерживается во время нажатия клавиши; в противном случае значение равно 0.
14 Указывает предыдущее состояние ключа. Флаг равен 1, если ключ отключен до отправки сообщения или 0, если ключ находится вверх.
15 Указывает состояние перехода. Флаг равен 1, если ключ освобождается или 0, если клавиша нажимается.

Замечания

Этот метод получает 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

Замечания

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

Замечания

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

CWnd::OnUserChanged

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

afx_msg void OnUserChanged();

Замечания

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

Замечания

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

Замечания

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 не используется.

Замечания

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

Примечание.

Это функция-член вызывается платформой, чтобы разрешить приложению обработать сообщение Windows. Параметры, передаваемые в функцию, отражают параметры, полученные платформой при поступлении сообщения. При вызове реализации базового класса этой функции эта реализация будет использовать параметры, изначально переданные с сообщением, а не параметры, передаваемые в функции.

CWnd::OnWindowMaximizedChanged

Платформа вызывает этот элемент, когда текущее окно развернуто, и окно состоит из диспетчера окон рабочего стола (DWM).

afx_msg void OnWindowMaximizedChanged(BOOL bIsMaximized);

Параметры

bIsMaximized
[in] TRUE Значение , если текущее окно развернуто, и FALSE если это не так.

Замечания

Этот метод получает WM_DWMWINDOWMAXIMIZEDCHANGE уведомление, которое описано в пакете SDK для Windows.

Примечание.

Это функция-член вызывается платформой, чтобы разрешить приложению обработать сообщение Windows. Параметры, передаваемые в функцию, отражают параметры, полученные платформой при поступлении сообщения. При вызове реализации базового класса этой функции эта реализация будет использовать параметры, изначально переданные с сообщением, а не параметры, передаваемые в функции.

CWnd::OnWindowPosChanged

Платформа вызывает эту функцию-член, когда размер, позиция или порядок Z изменились в результате вызова SetWindowPos функции-члена или другой функции управления окнами.

afx_msg void OnWindowPosChanged(WINDOWPOS* lpwndpos);

Параметры

lpwndpos
Указывает на WINDOWPOS структуру данных, содержащую сведения о новом размере и расположении окна.

Замечания

Реализация по умолчанию отправляет сообщения WM_SIZE в WM_MOVE окно. Эти сообщения не отправляются, если приложение обрабатывает OnWindowPosChanged вызов без вызова базового класса. Более эффективно выполнять обработку изменений перемещения или размера во время вызова OnWindowPosChanged без вызова базового класса.

Примечание.

Это функция-член вызывается платформой, чтобы разрешить приложению обработать сообщение Windows. Параметры, передаваемые в функцию, отражают параметры, полученные платформой при поступлении сообщения. При вызове реализации базового класса этой функции эта реализация будет использовать параметры, изначально переданные с сообщением, а не параметры, передаваемые в функции.

CWnd::OnWindowPosChanging

Платформа вызывает эту функцию-член, когда размер, положение или Z-порядок будет меняться в результате вызова SetWindowPos функции-члена или другой функции управления окнами.

afx_msg void OnWindowPosChanging(WINDOWPOS* lpwndpos);

Параметры

lpwndpos
Указывает на WINDOWPOS структуру данных, содержащую сведения о новом размере и расположении окна.

Замечания

Приложение может предотвратить изменения в окне, задав или очищая соответствующие биты в flags элементе WINDOWPOS структуры.

Для окна с WS_OVERLAPPED типом или WS_THICKFRAME стилем реализация по умолчанию отправляет WM_GETMINMAXINFO сообщение в окно. Это делается для проверки нового размера и положения окна и принудительного применения CS_BYTEALIGNCLIENTCS_BYTEALIGN стилей клиента. Приложение может переопределить эту функцию, не вызывая его базовый класс.

Примечание.

Это функция-член вызывается платформой, чтобы разрешить приложению обработать сообщение Windows. Параметры, передаваемые в функцию, отражают параметры, полученные платформой при поступлении сообщения. При вызове реализации базового класса этой функции эта реализация будет использовать параметры, изначально переданные с сообщением, а не параметры, передаваемые в функции.

CWnd::OnWinIniChange

Платформа вызывает эту функцию-член после внесения изменений в файл инициализации Windows. WIN.INI

afx_msg void OnWinIniChange(LPCTSTR lpszSection);

Параметры

lpszSection
Указывает на строку, указывающую имя измененного раздела. (Строка не включает квадратные скобки, содержащие имя раздела.)

Замечания

Функция SystemParametersInfo Windows вызывается OnWinIniChange после того, как приложение использует функцию для изменения параметра в WIN.INI файле.

Чтобы отправить WM_WININICHANGE сообщение во все окна верхнего уровня, приложение может использовать SendMessage функцию Windows с заданным hwnd параметром HWND_BROADCAST.

Если приложение изменяет множество разных разделов одновременно WIN.INI , приложение должно отправлять одно WM_WININICHANGE сообщение с lpszSection заданным значением NULL. В противном случае приложение должно отправляться WM_WININICHANGE при каждом изменении WIN.INI.

Если приложение получает вызов с lpszSection заданным значением OnWinIniChangeNULL, приложение должно проверка все разделы в 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.

Замечания

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 координаты курсора относительно левого верхнего угла клиентской области.

Замечания

Этот метод получает WM_XBUTTONDBLCLK уведомление, описанное в пакете SDK для Windows. Если мышь не записана, сообщение будет размещено в окне под курсором. В противном случае сообщение публикуется в окне, которое захватило мышь.

Параметр nFlags может быть сочетанием клавиш модификатора, перечисленных в следующей таблице. Дополнительные сведения см. в разделе "Сведения о вводе мыши".

Ключ модификатора Description
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 координаты курсора относительно левого верхнего угла клиентской области.

Замечания

Этот метод получает WM_XBUTTONDOWN уведомление, описанное в пакете SDK для Windows. Если мышь не записана, сообщение будет размещено в окне под курсором. В противном случае сообщение публикуется в окне, которое захватило мышь.

Параметр nFlags может быть сочетанием клавиш модификатора, перечисленных в следующей таблице. Дополнительные сведения см. в разделе "Сведения о вводе мыши".

Ключ модификатора Description
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 координаты курсора относительно левого верхнего угла клиентской области.

Замечания

Этот метод получает WM_XBUTTONUP уведомление, описанное в пакете SDK для Windows. Если мышь не записана, сообщение будет размещено в окне под курсором. В противном случае сообщение публикуется в окне, которое захватило мышь.

Параметр nFlags может быть сочетанием клавиш модификатора, перечисленных в следующей таблице. Дополнительные сведения см. в разделе "Сведения о вводе мыши".

Ключ модификатора Description
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, если другое приложение или окно открыто буфер обмена.

Замечания

Другие приложения не смогут изменять буфер обмена до вызова 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.

Замечания

Сообщения в очереди сообщений извлекаются вызовами GetMessage функции Или PeekMessage Windows.

Функцию Windows PostMessage можно использовать для доступа к другому приложению.

Пример

Пример см. в примере AfxGetMainWnd.

CWnd::PostNcDestroy

Вызывается функцией-членом по умолчанию OnNcDestroy после уничтожения окна.

virtual void PostNcDestroy();

Замечания

Производные классы могут использовать эту функцию для пользовательской очистки, например удаления указателя this .

CWnd::PreCreateWindow

Вызывается платформой перед созданием окна Windows, подключенного к этому CWnd объекту.

virtual BOOL PreCreateWindow(CREATESTRUCT& cs);

Параметры

cs
Структура CREATESTRUCT.

Возвращаемое значение

Ненулевое значение, если создание окна должно продолжаться; Значение 0, указывающее на сбой создания.

Замечания

Предупреждение

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();

Замечания

Переопределение этой функции-члена позволяет динамическим подклассам элементов управления. Это расширенная переопределимая.

CWnd::PreTranslateMessage

Используется классом CWinApp для перевода сообщений окна перед отправкой в TranslateMessage функции Windows и 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 Рисование всех принадлежащих окон.

Замечания

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.

Замечания

Эта функция-член эмулирует функциональные возможности функции функции 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_INVALIDATE Недопустимый lpRectUpdate или 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_NOCHILDRENWM_ERASEBKGND отправке сообщений в затронутых окнах (как указано RDW_ALLCHILDREN флагами) перед возвратом функции. WM_PAINT сообщения откладываются.

  • RDW_UPDATENOWПриводит к получению затронутых окон (как указано RDW_ALLCHILDREN в параметрах и RDW_NOCHILDREN флагах), а WM_PAINT также сообщений перед возвратом функции.WM_NCPAINTWM_ERASEBKGND

По умолчанию окна, затронутые RedrawWindow функцией, зависят от того, имеет WS_CLIPCHILDREN ли указанное окно стиль. Дочерние WS_CLIPCHILDREN окна окон не затрагиваются. Однако те окна, которые не WS_CLIPCHILDREN являются окнами, рекурсивно проверяются или недопустимы до тех пор, пока WS_CLIPCHILDREN не будет обнаружено окно. Следующие флаги управляют окнами, затронутыми функцией RedrawWindow :

  • RDW_ALLCHILDREN Включает дочерние окна, если таковые имеются, в операции переопределений.

  • RDW_NOCHILDREN Исключает дочерние окна, если таковые есть, из операции переопределений.

Возвращаемое значение

Ненулевое значение, если окно было успешно удалено; в противном случае — 0.

Замечания

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.

Замечания

Это вспомогательные функции, которые отражаются message в источнике.

Рефлексия сообщения отправляются непосредственно в CWnd::OnWndMsg илиCCmdTarget::OnCmdMsg.

Дополнительные сведения об отражении сообщений см. в разделе "Обработка Рефлексия сообщений".

CWnd::ReflectLastMsg

Эта функция-член вызывается платформой, чтобы отразить последнее сообщение в дочернем окне.

static BOOL PASCAL ReflectLastMsg(
    HWND hWndChild,
    LRESULT* pResult = NULL);

Параметры

hWndChild
Дескриптор дочернего окна.

pResult
Результат, созданный дочерним окном, возвращаемым родительским окном. Может иметь значение NULL.

Возвращаемое значение

Ненулевое значение, если сообщение было обработано; в противном случае — 0.

Замечания

Эта функция-член вызывает SendChildNotifyLastMsg , если окно, hWndChild определенное элементом управления OLE, или окном на постоянной карте.

Дополнительные сведения об отражении сообщений см. в разделе "Обработка Рефлексия сообщений".

CWnd::ReleaseDC

Освобождает контекст устройства, освобождая его для использования другими приложениями.

int ReleaseDC(CDC* pDC);

Параметры

pDC
Определяет контекст устройства, который нужно освободить.

Возвращаемое значение

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

Эффект 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
Указывает, должна ли полоса быть растянута до размера кадра.

Замечания

nIDLast Параметры nIDFirst определяют диапазон идентификаторов панели управления для изменения положения в клиентской области. Параметр nIDLeftOver задает идентификатор дочернего окна (обычно представление), который перемещается и изменяется, чтобы заполнить остальную часть клиентской области, не заполненную панелью управления.

CWnd::RunModalLoop

Вызовите эту функцию-член для получения, перевода или отправки сообщений до ContinueModal возврата FALSE.

int RunModalLoop(DWORD dwFlags = 0);

Параметры

dwFlags
Указывает сообщение Windows для отправки. Может использоваться одно из следующих значений:

  • MLF_NOIDLEMSG Не отправляйте WM_ENTERIDLE сообщения родительскому элементу.

  • MLF_NOKICKIDLE Не отправляйте WM_KICKIDLE сообщения в окно.

  • MLF_SHOWONIDLE Отображение окна, когда очередь сообщений неактивна.

Возвращаемое значение

Указывает значение nResult параметра, переданного EndModalLoop функции-члену, которая затем используется для завершения модального цикла.

Замечания

По умолчанию ContinueModal возвращается FALSE после EndModalLoop вызова. Возвращает указанное значение nResultEndModalLoop.

CWnd::ScreenToClient

Преобразует экранные координаты указанной точки или прямоугольника в клиентские координаты.

void ScreenToClient(LPPOINT lpPoint) const;  void ScreenToClient(LPRECT lpRect) const;

Параметры

lpPoint
Указывает на CPoint объект или POINT структуру , содержащую координаты экрана для преобразования.

lpRect
Указывает на CRect объект или RECT структуру , содержащую координаты экрана для преобразования.

Замечания

Функция-член ScreenToClient заменяет координаты экрана, заданные lpPoint в или lpRect на клиентские координаты. Новые координаты относятся к левому верхнему углу клиентской CWnd области.

Пример

Пример см. в примере CListCtrl::GetItemRect.

CWnd::ScrollWindow

Прокручивает содержимое клиентской области текущего CWnd объекта.

void ScrollWindow(
    int xAmount,
    int yAmount,
    LPCRECT lpRect = NULL,
    LPCRECT lpClipRect = NULL);

Параметры

xAmount
Указывает объем в единицах устройства горизонтальной прокрутки. Этот параметр должен быть отрицательным значением для прокрутки влево.

yAmount
Указывает объем (в единицах устройства) вертикальной прокрутки. Этот параметр должен быть отрицательным значением для прокрутки вверх.

lpRect
Указывает на CRect объект или RECT структуру , указывающую часть клиентской области, которую нужно прокрутить. Если lpRect это NULLтак, прокручивается вся клиентская область. Курсор переместится, если прямоугольник курсора пересекает прямоугольник прокрутки.

lpClipRect
Указывает на CRect объект или RECT структуру, задающую прямоугольник для прокрутки. Прокручиваются только биты внутри этого прямоугольника. Биты за пределами этого прямоугольника не влияют, даже если они находятся в lpRect прямоугольнике. Если lpClipRect это NULLтак, на прямоугольнике прокрутки не выполняется вырезка.

Замечания

Если курсор находится в 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значение.

Замечания

Эта функция похожа на 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, lpRectUpdatelpRectClipиprgnUpdate) должны находиться в клиентских координатах независимо от того, имеет CS_OWNDC ли окно стиль или CS_CLASSDC стиль класса. LPtoDPDPtoLP При необходимости используйте функции Windows для преобразования в логические координаты и из нее.

CWnd::SendChildNotifyLastMsg

Эта функция-член вызывается платформой для предоставления сообщения уведомления дочернему окну из родительского окна, поэтому дочернее окно может обрабатывать задачу.

BOOL SendChildNotifyLastMsg(LRESULT* pResult = NULL);

Параметры

pResult
Результат, созданный дочерним окном, возвращаемым родительским окном.

Возвращаемое значение

Ненулевое значение, если дочернее окно обработало сообщение, отправленное его родительскому элементу; в противном случае — 0.

Замечания

SendChildNotifyLastMsg отправьте текущее сообщение источнику, если это сообщение, которое отражается.

Дополнительные сведения об отражении сообщений см. в разделе "Обработка Рефлексия сообщений".

CWnd::SendDlgItemMessage

Отправляет сообщение в элемент управления.

LRESULT SendDlgItemMessage(
    int nID,
    UINT message,
    WPARAM wParam = 0,
    LPARAM lParam = 0);

Параметры

nID
Указывает идентификатор элемента управления диалоговым окном, который получит сообщение.

message
Указывает сообщение, которое нужно отправить.

wParam
Указывает дополнительные сведения, зависящие от сообщений.

lParam
Указывает дополнительные сведения, зависящие от сообщений.

Возвращаемое значение

Указывает значение, возвращаемое процедурой окна элемента управления, или значение 0, если элемент управления не найден.

Замечания

Функция-член 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
Указывает дополнительные сведения, зависящие от сообщений.

Возвращаемое значение

Результат обработки сообщений; его значение зависит от отправленного сообщения.

Замечания

Функция-член 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.

Замечания

Если 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.

Замечания

Если окно было создано вызывающим потоком, SendNotifyMessage вызывает процедуру окна для окна и не возвращается, пока процедура окна не обработала сообщение. Если окно было создано другим потоком, SendNotifyMessage передает сообщение в процедуру окна и возвращается немедленно; он не ожидает завершения обработки сообщения.

CWnd::SetActiveWindow

Делает CWnd активное окно.

CWnd* SetActiveWindow();

Возвращаемое значение

Окно, которое ранее было активным.

Возвращаемый указатель может быть временным и не должен храниться для последующего использования.

Замечания

Функция-член SetActiveWindow должна использоваться с осторожностью, так как она позволяет приложению произвольно взять на себя активное окно и фокус ввода. Как правило, Windows заботится обо всех активациях.

CWnd::SetCapture

Вызывает отправку всех последующих входных данных мыши текущему CWnd объекту независимо от положения курсора.

CWnd* SetCapture();

Возвращаемое значение

Указатель на объект окна, который ранее получил все входные данные мыши. Это если NULL такого окна нет. Возвращаемый указатель может быть временным и не должен храниться для последующего использования.

Замечания

Если CWnd больше не требуется все входные данные мыши, приложение должно вызвать ReleaseCapture функцию, чтобы другие окна могли получать входные данные мыши.

При записи WM_NCHITTEST входных данных мыши сообщения не WM_SETCURSOR отправляются в активное окно.

CWnd::SetCaretPos

Задает положение курсора.

static void PASCAL SetCaretPos(POINT point);

Параметры

point
Задает новые координаты x и y (в координатах клиента) курсора.

Замечания

Функция-член 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();

Возвращаемое значение

Дескриптор следующего окна в цепочке просмотра буфера обмена в случае успешного выполнения. Приложения должны сохранять этот дескриптор (он может храниться как переменная члена) и использовать его при реагировании на сообщения цепочки буфера обмена.

Замечания

Окно, которое входит в цепочку просмотра буфера обмена, должно отвечать на WM_DRAWCLIPBOARDWM_CHANGECBCHAINWM_DESTROY сообщения и передавать сообщение в следующее окно в цепочке.

Эта функция-член отправляет WM_DRAWCLIPBOARD сообщение в окно. Так как дескриптор следующего окна в цепочке просмотра буфера обмена еще не возвращен, приложение не должно передавать WM_DRAWCLIPBOARD сообщение, которое оно получает во время вызова SetClipboardViewer.

Чтобы удалить себя из цепочки просмотра буфера обмена, приложение должно вызвать функцию-член ChangeClipboardChain .

CWnd::SetDlgCtrlID

Задает идентификатор окна или идентификатор элемента управления для окна новым значением.

int SetDlgCtrlID(int nID);

Параметры

nID
Новое значение, заданное для идентификатора элемента управления.

Возвращаемое значение

Предыдущий идентификатор окна при успешном выполнении; в противном случае — 0.

Замечания

Окно может быть любым дочерним окном, а не только элементом управления в диалоговом окне. Окно не может быть окном верхнего уровня.

CWnd::SetDlgItemInt

Задает текст заданного элемента управления в диалоговом окне строковым представлением указанного целочисленного значения.

void SetDlgItemInt(
    int nID,
    UINT nValue,
    BOOL bSigned = TRUE);

Параметры

nID
Указывает целочисленный идентификатор элемента управления, который необходимо изменить.

nValue
Задает целочисленное значение, используемое для создания текста элемента.

bSigned
Указывает, является ли целочисленное значение подписанным или неподписанным. Если этот параметр имеет значение TRUE, nValue подписывается. Если этот параметр меньше TRUEnValue 0, знак минуса помещается перед первой цифрой в строке. Если этот параметр имеет значение FALSE, nValue не назначен.

Замечания

SetDlgItemInt отправляет WM_SETTEXT сообщение заданному элементу управления.

Пример

Пример см. в примере CWnd::SetDlgItemText.

CWnd::SetDlgItemText

Задает подпись или текст элемента управления, принадлежащий окну или диалоговому окну.

void SetDlgItemText(
    int nID,
    LPCTSTR lpszString);

Параметры

nID
Определяет элемент управления, текст которого необходимо задать.

lpszString
Указывает на CString строку, завершающуюся значением NULL, содержащую текст, скопированный в элемент управления.

Замечания

SetDlgItemText отправляет WM_SETTEXT сообщение заданному элементу управления.

Пример

// The following code fragment is from CMyDlg::OnInitDialog
// CMyDlg is derived from CDialog.

// Initialize dialog controls
SetDlgItemText(IDC_EDITNAME, _T("Type in text"));
SetDlgItemInt(IDC_EDITNUM, 100);

CWnd::SetForegroundWindow

Помещает создавший окно поток на передний план и активирует окно.

BOOL SetForegroundWindow();

Возвращаемое значение

Ненулевое значение, если функция выполнена успешно; в противном случае — 0.

Замечания

Ввод клавиатуры направляется в окно, а различные визуальные подсказки изменяются для пользователя. Окно переднего плана — это окно, с которым в настоящее время работает пользователь. Окно переднего плана применяется только к окнам верхнего уровня (окна фреймов или диалоговых окон).

Пример

Пример см. в примере CWnd::FindWindow.

CWnd::SetFocus

Утверждает фокус ввода.

CWnd* SetFocus();

Возвращаемое значение

Указатель на объект окна, который ранее имел фокус ввода. Это если NULL такого окна нет. Возвращаемый указатель может быть временным и не должен храниться.

Замечания

Фокус ввода направляет все последующие входные данные клавиатуры в это окно. Любое окно, которое ранее потеряло фокус ввода.

Функция-член SetFocus отправляет WM_KILLFOCUS сообщение в окно, которое теряет фокус ввода и WM_SETFOCUS сообщение в окно, которое получает входной фокус. Он также активирует окно или его родительский элемент.

Если текущее окно активно, но не имеет фокуса (то есть не имеет фокуса), любой нажатие клавиши приведет к возникновению сообщений WM_SYSCHARили WM_SYSKEYDOWNWM_SYSKEYUP.

CWnd::SetFont

WM_SETFONT Отправляет сообщение в окно, чтобы использовать указанный шрифт.

void SetFont(
    CFont* pFont,
    BOOL bRedraw = TRUE);

Параметры

pFont
Указатель на CFont объект.

bRedraw
TRUE Для окна перерасхода сразу после обработки WM_SETFONT сообщения; в противном случае FALSE.

Замечания

Этот метод не действует, если окно не обрабатывает 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.

Возвращаемое значение

Дескриптор для значка.

Замечания

При регистрации класса окна он выбирает значок.

Пример

Пример см. в примере 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.

Замечания

Эта функция-член эмулирует функциональные возможности функции функции SetLayeredWindowAttributes, как описано в пакете SDK для Windows.

CWnd::SetMenu

Задает текущее меню указанным меню.

BOOL SetMenu(CMenu* pMenu);

Параметры

pMenu
Определяет новое меню. Если этот параметр задан NULL, текущее меню удаляется.

Возвращаемое значение

Ненулевое значение, если меню изменено; в противном случае — 0.

Замечания

Приводит к повторному выводу окна в соответствии с изменением меню.

SetMenu не уничтожает предыдущее меню. Приложение должно вызвать CMenu::DestroyMenu функцию-член для выполнения этой задачи.

Пример

Пример см. в примере CMenu::LoadMenu.

CWnd::SetOwner

Задает владельцу текущего окна указанный объект окна.

void SetOwner(CWnd* pOwnerWnd);

Параметры

pOwnerWnd
Определяет нового владельца объекта окна. Если этот параметр задан NULL, объект окна не имеет владельца.

Замечания

Затем этот владелец может получать сообщения команды из текущего объекта окна. По умолчанию родительский элемент текущего окна является его владельцем.

Часто полезно устанавливать соединения между объектами окна, которые не связаны с иерархией окон. Например, CToolBar отправляет уведомления владельцу вместо родительского элемента. Это позволяет панели инструментов стать дочерним элементом одного окна (например, окно приложения контейнера OLE) при отправке уведомлений в другое окно (например, окно фрейма в месте). Кроме того, если окно сервера деактивировано или активировано во время редактирования на месте, все окна, принадлежащие окну кадра, скрыты или показаны. Это владение явно задается вызовом SetOwner.

Концепция владения этой функции отличается от концепции GetWindowвладения.

CWnd::SetParent

Изменяет родительское окно дочернего окна.

CWnd* SetParent(CWnd* pWndNewParent);

Параметры

pWndNewParent
Определяет новое родительское окно.

Возвращаемое значение

Указатель на предыдущий родительский объект окна в случае успешного выполнения. Возвращаемый указатель может быть временным и не должен храниться для последующего использования.

Замечания

Если дочернее окно отображается, Windows выполняет соответствующую перерисовку и переопределения.

CWnd::SetProperty

Вызовите эту функцию-член, чтобы задать свойство элемента управления OLE, указанное в параметре dwDispID.

void AFX_CDECL SetProperty(
    DISPID dwDispID,
    VARTYPE vtProp, ...);

Параметры

dwDispID
Определяет свойство, которое необходимо задать.

vtProp
Определяет тип свойства, которое необходимо задать. Возможные значения см. в разделе "Примечания".COleDispatchDriver::InvokeHelper

...
Один параметр типа, указанного в параметре vtProp.

Замечания

Примечание.

Эта функция должна вызываться только в объекте CWnd , представляющего элемент управления OLE.

Дополнительные сведения об использовании этой функции-члена с контейнерами управления OLE см. в статье "Контейнеры элементов управления ActiveX: программирование элементов ActiveX в контейнере элементов activeX".

CWnd::SetRedraw

Вызовы SetRedraw приложения, позволяющие перезапустить изменения или запретить повторное удаление изменений.

void SetRedraw(BOOL bRedraw = TRUE);

Параметры

bRedraw
Указывает состояние флага перерисовки. Если этот параметр имеет TRUEзначение, флаг перерисовки задается; если FALSEфлаг очищается.

Замечания

Эта функция-член задает или очищает флаг перерасчета. Хотя флаг перерисовки очищается, содержимое не будет обновлено после каждого изменения и не будет переопределено до тех пор, пока флаг перерисовки не будет задан. Например, приложение, которое должно добавить несколько элементов в поле списка, может очистить флаг перерисовки, добавить элементы, а затем задать флаг перерисовки. Наконец, приложение может вызвать 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
Указывает, следует ли перезапись полосы прокрутки, чтобы отразить новую позицию. Если bRedraw есть TRUE, полоса прокрутки перезабрана. Если это FALSEтак, он не перезабирается. Полоса прокрутки перезабирается по умолчанию.

Возвращаемое значение

В случае успешного выполнения возвращается TRUE. В противном случае значение равно FALSE.

Замечания

Структура SCROLLINFO содержит сведения о полосе прокрутки, включая минимальное и максимальное положение прокрутки, размер страницы и положение поля прокрутки (большой палец). SCROLLINFO Дополнительные сведения об изменении структуры по умолчанию см. в разделе структуры пакета SDK для Windows.

Обработчики сообщений Windows MFC, указывающие позицию полосы прокрутки и CWnd::OnHScrollCWnd::OnVScrollпредоставляющие только 16 бит данных о положении. GetScrollInfo и SetScrollInfo предоставьте 32 бита данных о положении полосы прокрутки. Таким образом, приложение может вызываться GetScrollInfo при обработке CWnd::OnHScroll или CWnd::OnVScroll получать 32-разрядные данные положения полосы прокрутки.

Примечание.

CWnd::GetScrollInfo позволяет приложениям использовать 32-разрядные позиции полосы прокрутки.

CWnd::SetScrollPos

Задает текущую позицию поля прокрутки и при необходимости перерисовывает полосу прокрутки, чтобы отразить новую позицию поля прокрутки.

int SetScrollPos(
    int nBar,
    int nPos,
    BOOL bRedraw = TRUE);

Параметры

nBar
Указывает заданную полосу прокрутки. Этот параметр может иметь одно из следующих значений:

  • SB_HORZ Задает положение поля прокрутки в горизонтальной полосе прокрутки окна.

  • SB_VERT Задает положение поля прокрутки в вертикальной полосе прокрутки окна.

nPos
Задает новую позицию поля прокрутки. Он должен находиться в диапазоне прокрутки.

bRedraw
Указывает, следует ли переопределять полосу прокрутки, чтобы отразить новую позицию прокрутки. Если этот параметр имеет TRUEзначение, полоса прокрутки переопределена; если FALSEполоса прокрутки не переопределена.

Возвращаемое значение

Предыдущая позиция поля прокрутки.

Замечания

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полоса прокрутки не перезабрана.

Замечания

Его также можно использовать для скрытия или отображения стандартных полос прокрутки.

Приложение не должно вызывать эту функцию, чтобы скрыть полосу прокрутки при обработке сообщения уведомления полосы прокрутки.

Если вызов 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.

Замечания

Значение интервала указывается, и каждый раз, когда интервал истекает, система отправляет 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::KillTimerCWnd::OnTimerобрабатываются 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.

Замечания

Если дочернее окно не имеет идентификатор контекста справки, он наследует идентификатор родительского окна. Аналогичным образом, если у собственного окна нет идентификатора контекста справки, он наследует идентификатор своего окна владельца. Это наследование идентификаторов контекста справки позволяет приложению задать только один идентификатор для диалогового окна и всех его элементов управления.

Пример

// 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_NOCOPYBITSDis карта содержит все содержимое клиентской области. Если этот флаг не указан, допустимое содержимое клиентской области сохраняется и копируется обратно в клиентскую область после размера или изменения положения окна.

  • SWP_NOMOVE Сохраняет текущую позицию (игнорирует x и y параметры).

  • SWP_NOOWNERZORDER Не изменяет положение окна владельца в порядке Z.

  • SWP_NOREDRAW Не перерисовывает изменения. Если этот флаг задан, повторение любого вида не происходит. Это относится к клиентской области, неклиентной области (включая заголовки и полосы прокрутки) и любой части родительского окна, обнаруженной в результате перемещенного окна. Если этот флаг задан, приложение должно явно отменять или перерисовывать все части окна и родительского окна, которые должны быть перезаписаны.

  • SWP_NOREPOSITION аналогичен SWP_NOOWNERZORDER.

  • SWP_NOSENDCHANGING Предотвращает получение WM_WINDOWPOSCHANGING сообщения в окне.

  • SWP_NOSIZE Сохраняет текущий cx размер (игнорирует и cy параметры).

  • SWP_NOZORDER Сохраняет текущее упорядочение (игнорирует pWndInsertAfter).

  • SWP_SHOWWINDOW Отображает окно.

Возвращаемое значение

Ненулевое значение, если функция выполнена успешно; в противном случае — значение 0.

Замечания

Окна упорядочены на экране в соответствии с их Z-порядком; Окно в верхней части Z-порядка отображается поверх всех остальных окон в порядке.

Все координаты дочерних окон — это координаты клиента (относительно левого верхнего угла клиентской области родительского окна).

Окно можно переместить в верхнюю часть Z-порядка, задав pWndInsertAfter параметр &wndTopMost и убедив, что SWP_NOZORDER флаг не задан или задав порядок Z окна, чтобы он был над существующими самыми верхними окнами. Когда самое верхнее окно делается самым верхним, его собственные окна также делаются самыми верхними. Его владельцы не изменяются.

Самое верхнее окно больше не является самым верхним, если оно переместится на нижний (&wndBottom) порядка Z или после любого самого верхнего окна. При создании самого верхнего окна все его владельцы и собственные окна также делаются самыми верхними окнами.

Если ни не SWP_NOACTIVATESWP_NOZORDER указано (то есть если приложение запрашивает, что окно одновременно активируется и помещается в указанный порядок Z), значение, указанное в pWndInsertAfter следующих обстоятельствах, используется только в следующих случаях:

  • Ни в параметре, ни &wndTopMost&wndNoTopMost указанные в параметре pWndInsertAfter .

  • Это не активное окно.

Приложение не может активировать неактивное окно, не введя его в начало Z-порядка. Приложения могут изменять порядок Z активированного окна без ограничений.

Самое верхнее окно может принадлежать самому верхнему окну, но не наоборот. Любое окно (например, диалоговое окно), принадлежащее самому верхнему окну, делается самым верхним окном, чтобы убедиться, что все принадлежащие им окна остаются над своим владельцем.

При использовании Windows версии 3.1 и более поздних версий окна можно переместить в верхнюю часть Z-порядка и заблокировать их, задав их WS_EX_TOPMOST стили. Такое самое верхнее окно сохраняет самую верхнюю позицию даже при деактивации. Например, при выборе команды WinHelp Always On Top окно справки становится самым верхним, а затем оно остается видимым при возвращении в приложение.

Чтобы создать самое верхнее окно, вызовите SetWindowPos параметр pWndInsertAfter , равный &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 сообщения.

Возвращаемое значение

Если функция выполняется успешно, возвращается ненулевое значение. Если функция выполняется неудачно, возвращается нулевое значение.

Замечания

Координаты области окна относительно левого верхнего угла окна, а не клиентской области окна.

После успешного вызова SetWindowRgnоперационная система владеет регионом, заданным дескриптором hRgnрегиона. Операционная система не делает копию региона, поэтому не выполняйте дальнейшие вызовы функций с дескриптором этого региона и не закрывайте этот дескриптор региона.

CWnd::SetWindowText

Задает заголовок окна указанным текстом.

void SetWindowText(LPCTSTR lpszString);

Параметры

lpszString
Указывает на строку, завершаемую CString значением NULL, которая будет использоваться в качестве нового заголовка или текста элемента управления.

Замечания

Если окно является элементом управления, то задается текст в элементе управления.

Эта функция приводит к отправке 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();

Замечания

После отображения курсор начинает автоматически мигать.

Функция-член ShowCaret отображает курсор только в том случае, если он имеет текущую фигуру и не был скрыт два или более раз подряд. Если курсор не принадлежит этому окну, курсор не отображается.

Скрытие курсора является накопительным. HideCaret Если функция-член была вызвана пять раз подряд, необходимо вызвать пять раз, ShowCaret чтобы отобразить подсказку.

Это общий ресурс. Окно должно отображать курсор только в том случае, если он имеет фокус ввода или активен.

Пример

Пример см. в примере CWnd::CreateCaret.

CWnd::ShowOwnedPopups

Отображает или скрывает все всплывающие окна, принадлежащие этому окну.

void ShowOwnedPopups(BOOL bShow = TRUE);

Параметры

bShow
Указывает, должны ли отображаться или скрыты всплывающие окна. Если этот параметр задан TRUE, отображаются все скрытые всплывающие окна. Если этот параметр задан FALSE, все видимые всплывающие окна скрыты.

Пример

Пример см. в примере CWnd::SetWindowPos.

CWnd::ShowScrollBar

Отображает или скрывает полосу прокрутки.

void ShowScrollBar(
    UINT nBar,
    BOOL bShow = TRUE);

Параметры

nBar
Указывает, является ли полоса прокрутки элементом управления или частью неклиентной области окна. Если она является частью неклиентной области, nBar также указывает, находится ли полоса прокрутки по горизонтали, вертикально или обоим. Это должно быть одно из следующих элементов:

  • SB_BOTH Задает горизонтальные и вертикальные полосы прокрутки окна.

  • SB_HORZ Указывает, что окно является горизонтальной полосой прокрутки.

  • SB_VERT Указывает, что окно является вертикальной полосой прокрутки.

bShow
Указывает, отображает ли Windows или скрывает полосу прокрутки. Если этот параметр имеет значение TRUE, отображается полоса прокрутки. В противном случае полоса прокрутки скрыта.

Замечания

Приложение не должно вызывать ShowScrollBar скрытие полосы прокрутки при обработке сообщения уведомления на полосе прокрутки.

CWnd::ShowWindow

Задает состояние видимости окна.

BOOL ShowWindow(int nCmdShow);

Параметры

nCmdShow
Указывает способ CWnd отображения. Это должно быть одно из следующих значений:

  • SW_HIDE Скрывает это окно и передает активацию другому окну.

  • SW_MINIMIZE Сводит к минимуму окно и активирует окно верхнего уровня в списке системы.

  • SW_RESTORE Активирует и отображает окно. Если окно свернуто или развернуто, Windows восстанавливает его до исходного размера и положения.

  • SW_SHOW Активирует окно и отображает его в текущем размере и положении.

  • SW_SHOWMAXIMIZED Активирует окно и отображает его как развернутое окно.

  • SW_SHOWMINIMIZED Активирует окно и отображает его как значок.

  • SW_SHOWMINNOACTIVE Отображает окно как значок. Окно, которое сейчас активно, остается активным.

  • SW_SHOWNA Отображает окно в текущем состоянии. Окно, которое сейчас активно, остается активным.

  • SW_SHOWNOACTIVATE Отображает окно в последнем размере и положении. Окно, которое сейчас активно, остается активным.

  • SW_SHOWNORMAL Активирует и отображает окно. Если окно свернуто или развернуто, Windows восстанавливает его до исходного размера и положения.

Возвращаемое значение

Ненулевое значение, если окно было ранее видимым; 0, если он CWnd был ранее скрыт.

Замечания

ShowWindow необходимо вызывать только один раз для каждого приложения для главного окна CWinApp::m_nCmdShow. Последующие вызовы ShowWindow должны использовать одно из значений, перечисленных выше, вместо указанного выше CWinApp::m_nCmdShow.

Пример

Пример см. в примере CWnd::CalcWindowRect.

CWnd::SubclassDlgItem

Вызовите эту функцию-член, чтобы "динамически подкласс" элемент управления, созданный из шаблона диалога, и присоединить его к этому CWnd объекту.

BOOL SubclassDlgItem(
    UINT nID,
    CWnd* pParent);

Параметры

nID
Идентификатор элемента управления.

pParent
Родительский элемент управления (обычно диалоговое окно).

Возвращаемое значение

Ненулевое значение, если функция выполнена успешно; в противном случае — 0.

Замечания

При динамическом подклассе элемента управления сообщения Windows перенаправляются через CWndкарту сообщений и обработчики сообщений вызова в CWndклассе в первую очередь. Сообщения, передаваемые базовому классу, будут переданы обработчику сообщений по умолчанию в элементе управления.

Эта функция-член присоединяет элемент управления Windows к объекту CWnd и заменяет функции и AfxWndProc элементы управленияWndProc. Функция сохраняет старую WndProc в расположении, возвращаемом GetSuperWndProcAddr функцией-членом.

Пример

// The following code fragment is from CMyDlg::OnInitDialog
// CMyDlg is derived from CDialog.

// IDC_BUTTON1 is the ID for a button on the
// dialog template used for CMyDlg.
m_MyButton.SubclassDlgItem(IDC_BUTTON1, this);

CWnd::SubclassWindow

Вызовите эту функцию-член, чтобы динамически подклассить окно и подключить его к этому CWnd объекту.

BOOL SubclassWindow(HWND hWnd);

Параметры

hWnd
Дескриптор окна.

Возвращаемое значение

Ненулевое значение, если функция выполнена успешно; в противном случае — 0.

Замечания

При динамическом подклассе окна сообщения windows будут направляться через CWndкарту сообщений и обработчики сообщений вызова в CWndклассе в первую очередь. Сообщения, передаваемые базовому классу, будут переданы обработчику сообщений по умолчанию в окне.

Эта функция-член присоединяет элемент управления Windows к CWnd объекту и заменяет окна WndProc и AfxWndProc функции. Функция сохраняет указатель на старый WndProcCWnd объект.

Примечание.

Окно не должно быть присоединено к объекту MFC при вызове этой функции.

Пример

// The following code shows how to subclass the edit control and list box
// controls inside a combo box. It uses WM_CTLCOLOR for subclassing.
// CSuperComboBox represents the combo box
HBRUSH CSuperComboBox::OnCtlColor(CDC *pDC, CWnd *pWnd, UINT nCtlColor)
{
   if (nCtlColor == CTLCOLOR_EDIT)
   {
      //Edit control
      if (m_edit.GetSafeHwnd() == NULL)
         m_edit.SubclassWindow(pWnd->GetSafeHwnd());
   }
   else if (nCtlColor == CTLCOLOR_LISTBOX)
   {
      //ListBox control
      if (m_listbox.GetSafeHwnd() == NULL)
         m_listbox.SubclassWindow(pWnd->GetSafeHwnd());
   }

   HBRUSH hbr = CComboBox::OnCtlColor(pDC, pWnd, nCtlColor);
   return hbr;
}

void CSuperComboBox::OnDestroy()
{
   //unsubclass edit and list box before destruction
   if (m_edit.GetSafeHwnd() != NULL)
      m_edit.UnsubclassWindow();
   if (m_listbox.GetSafeHwnd() != NULL)
      m_listbox.UnsubclassWindow();
   CComboBox::OnDestroy();
}

CWnd::UnlockWindowUpdate

Вызовите эту функцию-член, чтобы разблокировать окно, которое было заблокировано CWnd::LockWindowUpdate.

void UnlockWindowUpdate();

Замечания

С помощью LockWindowUpdateодного окна можно заблокировать только одно окно. Дополнительные сведения о блокировке окон см CWnd::LockWindowUpdate . в функции LockWindowUpdate Win32.

CWnd::UnsubclassWindow

Вызовите эту функцию-член, чтобы вернуть WndProc исходное значение и отключить окно, определенное CWnd HWND от объекта.

HWND UnsubclassWindow();

Возвращаемое значение

Дескриптор неклассированного окна.

Пример

Пример см. в примере CWnd::SubclassWindow.

CWnd::UpdateData

Вызовите эту функцию-член, чтобы инициализировать данные в диалоговом окне или получить и проверить данные диалогового окна.

BOOL UpdateData(BOOL bSaveAndValidate = TRUE);

Параметры

bSaveAndValidate
Флаг, указывающий, является ли диалоговое окно инициализированным (FALSE) или извлекается ли данные (TRUE).

Возвращаемое значение

Ненулевое значение, если операция выполнена успешно; в противном случае — 0. В противном bSaveAndValidateTRUEслучае возвращаемое значение ненулевого значения означает, что данные успешно проверены.

Замечания

Платформа автоматически вызывается UpdateData с bSaveAndValidate заданным FALSE значением, когда модальное диалоговое окно создается в реализации CDialog::OnInitDialogпо умолчанию. Вызов происходит до появления диалогового окна. Реализация по умолчанию вызывает эту функцию-член CDialog::OnOK , для bSaveAndValidate которого задано TRUE значение для извлечения данных, и при успешном выполнении закрывает диалоговое окно. (Если кнопка "Отмена" нажимается в диалоговом окне, диалоговое окно закрывается без получения данных.)

CWnd::UpdateDialogControls

Вызовите эту функцию-член, чтобы обновить состояние кнопок диалога и других элементов управления в диалоговом окне или окне, использующего механизм обратного ON_UPDATE_COMMAND_UI вызова.

void UpdateDialogControls(
    CCmdTarget* pTarget,
    BOOL bDisableIfNoHndler);

Параметры

pTarget
Указывает на главное окно фрейма приложения и используется для сообщений об обновлении маршрутизации.

bDisableIfNoHndler
Флаг, указывающий, должен ли элемент управления без обработчика обновления автоматически отображаться как отключенный.

Замечания

Если дочерний элемент управления не имеет обработчика, то bDisableIfNoHndlerTRUEдочерний элемент управления будет отключен.

Платформа вызывает эту функцию-член для элементов управления в диалоговых панелях или панелях инструментов в рамках простой обработки приложения.

CWnd::UpdateLayeredWindow

Обновляет положение, размер, форму, содержимое и прозрачность многослойного окна.

BOOL UpdateLayeredWindow(
    CDC* pDCDst,
    POINT* pptDst,
    SIZE* psize,
    CDC* pDCSrc,
    POINT* pptSrc,
    COLORREF crKey,
    BLENDFUNCTION* pblend,
    DWORD dwFlags);

Параметры

pDCDst
Указатель на контекст устройства для экрана. Он используется для сопоставления цветов палитры при обновлении содержимого окна. Если pDCDst это NULLтак, будет использоваться палитра по умолчанию.

Если pDCSrc имеет значение NULL, pDCDst должно быть NULL.

pptDst
Указатель на POINT структуру, указывающую новую позицию экрана многоуровневого окна. Если текущая позиция не изменяется, pptDst может быть NULL.

psize
Указатель на SIZE структуру, указывающую новый размер многоуровневого окна. Если размер окна не изменяется, psize может быть NULL.

Если pDCSrc имеет значение NULL, psize должно быть NULL.

pDCSrc
Указатель на контроллер домена для поверхности, определяющей многоуровневое окно. Если фигура и визуальный контекст окна не изменяются, pDCSrc может быть NULL.

pptSrc
Указатель на POINT структуру, указывающую расположение слоя в контексте устройства.

Если pDCSrc имеет значение NULL, pptSrc должно быть NULL.

crKey
Указатель на COLORREF значение, указывающее цветной ключ прозрачности, используемый при создании многоуровневого окна. Все пиксели, окрашенные окном в этом цвете, будут прозрачными. Чтобы создать COLORREFмакрос RGB, используйте макрос RGB.

pblend
Указатель на BLENDFUNCTION структуру, указывающую значение прозрачности, используемое при создании многоуровневого окна.

dwFlags
Указывает действие для выполнения. Этот параметр может быть одним или несколькими из следующих значений. Список возможных значений см. в разделе UpdateLayeredWindow.

Возвращаемое значение

Ненулевое значение, если функция выполнена успешно; в противном случае — 0.

Замечания

Эта функция-член эмулирует функциональные возможности функции функции UpdateLayeredWindow, как описано в пакете SDK для Windows.

CWnd::UpdateWindow

Обновления клиентской области, отправив WM_PAINT сообщение, если регион обновления не пуст.

void UpdateWindow();

Замечания

Функция-член UpdateWindow отправляет сообщение напрямую WM_PAINT , обходя очередь приложения. Если область обновления пуста, WM_PAINT не отправляется.

Пример

// In this example a rectangle is drawn in a view.
// The OnChangeRect() function changes the dimensions
// of the rectangle and then calls CWnd::Invalidate() so the
// client area of the view will be redrawn next time the
// window is updated.  It then calls CWnd::UpdateWindow
// to force the new rectangle to be painted.

void CMdiView::OnChangeRect()
{
   // Change Rectangle size.
   m_rcBox = CRect(20, 20, 210, 210);

   // Invalidate window so entire client area
   // is redrawn when UpdateWindow is called.
   Invalidate();

   // Update Window to cause View to redraw.
   UpdateWindow();
}

// On Draw function draws the rectangle.
void CMdiView::OnDraw(CDC *pDC)
{
   // Other draw code here.

   pDC->Draw3dRect(m_rcBox, 0x00FF0000, 0x0000FF00);
}

CWnd::ValidateRect

Проверяет клиентская область в заданном прямоугольнике, удалив прямоугольник из области обновления окна.

void ValidateRect(LPCRECT lpRect);

Параметры

lpRect
Указывает на CRect объект или RECT структуру , содержащую координаты клиента прямоугольника, которые будут удалены из области обновления. Если lpRect это NULLтак, проверяется все окно.

Замечания

Функция-член BeginPaint автоматически проверяет всю клиентская область. Не ValidateRect следует вызывать ни ValidateRgn функцию-член, если необходимо проверить часть региона обновления перед WM_PAINT следующим созданием.

Windows продолжает создавать WM_PAINT сообщения до тех пор, пока не будет проверен текущий регион обновления.

CWnd::ValidateRgn

Проверяет клиентская область в заданном регионе, удалив регион из текущей области обновления окна.

void ValidateRgn(CRgn* pRgn);

Параметры

pRgn
Указатель на объект, определяющий CRgn регион, определяющий область, которую нужно удалить из региона обновления. Если этот параметр задан NULL, удаляется вся клиентская область.

Замечания

Этот регион должен быть создан ранее функцией региона. Предполагается, что координаты региона являются координатами клиента.

Функция-член BeginPaint автоматически проверяет всю клиентская область. Не следует вызывать ни ValidateRgn функцию-член, если ValidateRect перед созданием следующего WM_PAINT сообщения необходимо проверить часть региона обновления.

CWnd::WindowFromPoint

Извлекает окно, содержащее указанную точку; point должен указать координаты экрана точки на экране.

static CWnd* PASCAL WindowFromPoint(POINT point);

Параметры

point
Указывает CPoint объект или POINT структуру данных, которая определяет точку, которую необходимо проверка.

Возвращаемое значение

Указатель на объект окна, в котором находится точка. NULL Если окно не существует в заданной точке. Возвращаемый указатель может быть временным и не должен храниться для последующего использования.

Замечания

WindowFromPoint не извлекает скрытое или отключенное окно, даже если точка находится в окне. Приложение должно использовать функцию-член ChildWindowFromPoint для неустранимного поиска.

CWnd::WindowProc

Предоставляет процедуру Windows (WindowProc) для CWnd объекта.

virtual LRESULT WindowProc(
    UINT message,
    WPARAM wParam,
    LPARAM lParam);

Параметры

message
Указывает сообщение Windows для обработки.

wParam
Предоставляет дополнительные сведения, используемые при обработке сообщения. Значение параметра зависит от сообщения.

lParam
Предоставляет дополнительные сведения, используемые при обработке сообщения. Значение параметра зависит от сообщения.

Возвращаемое значение

Возвращаемое значение зависит от сообщения.

Замечания

Он отправляет сообщения через карту сообщений окна.

CWnd::WinHelp

Вызывается для запуска приложения WinHelp.

virtual void WinHelp(
    DWORD_PTR dwData,
    UINT nCmd = HELP_CONTEXT);

Параметры

dwData
Указывает дополнительные данные. Используемое значение зависит от значения nCmd параметра.

nCmd
Задает тип запрошенной справки. Список возможных значений и их влияние dwData на параметр см WinHelp . в функции Windows в пакете SDK для Windows.

Замечания

Дополнительные сведения см. в разделе CWinApp::WinHelp.

CWnd::RegisterTouchWindow

Регистрирует или отменяет регистрацию поддержки сенсорного ввода Windows.

BOOL RegisterTouchWindow(
    BOOL bRegister = TRUE,
    ULONG ulFlags = 0);

Параметры

bRegister
TRUE указывает, что регистрация поддержки сенсорного ввода Windows; FALSE Иначе.

ulFlags
Набор битовых флагов, указывающих необязательные изменения. Это поле может содержать 0 или одно из следующих значений: TWF_FINETOUCH, TWF_WANTPALM.

Возвращаемое значение

Значение TRUE в случае успешного выполнения; в противном случае — значение FALSE.

Замечания

CWnd::ResizeDynamicLayout

Вызывается платформой при изменении размера окна для настройки макета дочерних окон, если для этого окна используется динамический макет.

virtual void ResizeDynamicLayout();

Замечания

См. также

CCmdTarget Класса
Диаграмма иерархии
CFrameWnd Класса
CView Класса