Класс 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 |
Возвращает указатель на сообщение, обрабатываемое этим окном в настоящий момент. Должен вызываться только в том случае, если в функции-члене обработчика On Message сообщений. |
CWnd::InitDynamicLayout |
Вызывается платформой для инициализации динамического макета окна. |
CWnd::LoadDynamicLayoutResource |
Загружает из файла ресурсов сведения о динамическом макете. |
CWnd::OnActivate |
Вызывается при активации или деактивации объекта CWnd . |
CWnd::OnActivateApp |
Вызывается непосредственно перед активацией или деактивацией приложения. |
CWnd::OnAppCommand |
Вызывается, когда пользователь создает команду события приложения. |
CWnd::OnAskCbFormatName |
Вызывается приложением просмотра буфера обмена, когда владелец буфера обмена отображает его содержимое. |
CWnd::OnCancelMode |
Вызывается, чтобы разрешить объекту CWnd выполнить отмену всех внутренних режимов, таких как захват мыши. |
CWnd::OnCaptureChanged |
Отправляет сообщение окну, теряющему захват мыши. |
CWnd::OnChangeCbChain |
Уведомляет об удалении указанного окна из цепочки. |
CWnd::OnChangeUIState |
Вызывается, когда необходимо изменить состояние пользовательского интерфейса. |
CWnd::OnChar |
Вызывается, когда нажатие клавиши преобразуются в несистемный символ. |
CWnd::OnCharToItem |
Вызывается дочерним списком со LBS_WANTKEYBOARDINPUT стилем в ответ на WM_CHAR сообщение. |
CWnd::OnChildActivate |
Вызывается для дочерних окон многодокументного интерфейса (MDI) при изменении размера или положения объекта CWnd , а также при активации объекта CWnd . |
CWnd::OnChildNotify |
Вызывается родительским окном, чтобы позволить уведомляющему элементу управления ответить на уведомление элемента управления. |
CWnd::OnClipboardUpdate |
Вызывается при изменении содержимого буфера обмена. |
CWnd::OnClose |
Вызывается в качестве сигнала о необходимости закрытия объекта CWnd . |
CWnd::OnColorizationColorChanged |
Вызывается при изменении политики отрисовки неклиентской области. |
CWnd::OnCommand |
Вызывается, когда пользователь выбирает какую-либо команду. |
CWnd::OnCompacting |
Вызывается, когда Windows обнаруживает нехватку системной памяти. |
CWnd::OnCompareItem |
Вызывается для определения относительной позиции нового элемента в элементе управления "Список" или в дочернем упорядоченном элементе управления "Поле со списком", рисуемом владельцем. |
CWnd::OnCompositionChanged |
Вызывается для всех окон верхнего уровня при включении или выключении композиции рабочего стола в диспетчере окон рабочего стола (DWM). |
CWnd::OnContextMenu |
Вызывается, когда пользователь щелкает в окне правой кнопкой мыши. |
CWnd::OnCopyData |
Копирует данные из одного приложения в другое. |
CWnd::OnCreate |
Вызывается при создании окна. |
CWnd::OnCtlColor |
Вызывается непосредственно перед рисованием элемента управления, если объект CWnd является родительским для элемента управления. |
CWnd::OnDeadChar |
Вызывается, когда нажатие клавиши преобразуется в несистемный диакритический знак. |
CWnd::OnDeleteItem |
Вызывается, когда дочерний элемент управления "Поле со списком", рисуемый владельцем, или элемент управления "Поле со списком" уничтожается, а также при удалении из элемента управления элементов списка. |
CWnd::OnDestroy |
Вызывается при уничтожении объекта CWnd . |
CWnd::OnDestroyClipboard |
Вызывается при очистке буфера обмена через вызов функции Windows EmptyClipboard . |
CWnd::OnDeviceChange |
Сообщает приложению или драйверу устройства об изменении конфигурации оборудования устройства или компьютера. |
CWnd::OnDevModeChange |
Вызывается для всех окон верхнего уровня, когда пользователь меняет параметры режима устройства. |
CWnd::OnDrawClipboard |
Вызывается при изменении содержимого буфера обмена. |
CWnd::OnDrawItem |
Вызывается, когда необходимо визуально изобразить рисуемый владельцем дочерний элемент управления "Кнопка", элемент управления "Поле со списком", элемент управления "Поле" или меню. |
CWnd::OnDropFiles |
Вызывается, когда пользователь отпускает левую кнопку мыши в окне, зарегистрировавшем себя в качестве получателя переносимых файлов. |
CWnd::OnEnable |
Вызывается при включении или отключении объекта CWnd . |
CWnd::OnEndSession |
Вызывается во время окончания сессии. |
CWnd::OnEnterIdle |
Вызывается для информирования процедуры главного окна приложения о переходе модального диалогового окна или меню в состояние простоя. |
CWnd::OnEnterMenuLoop |
Вызывается при входе в модальный цикл меню. |
CWnd::OnEnterSizeMove |
Вызывается, когда затронутое окно входит в модальный цикл перемещения или изменения размера. |
CWnd::OnEraseBkgnd |
Вызывается, когда требуется стирание фона окна. |
CWnd::OnExitMenuLoop |
Вызывается при выходе из модального цикла меню. |
CWnd::OnExitSizeMove |
Вызывается, когда затронутое окно выходит из модального цикла перемещения или изменения размера. |
CWnd::OnFontChange |
Вызывается при изменении пула ресурсов шрифтов. |
CWnd::OnGetDlgCode |
Вызывается, чтобы элемент управления мог самостоятельно обрабатывать нажатия на клавиши со стрелками и клавишу TAB. |
CWnd::OnGetMinMaxInfo |
Вызывается, когда Windows требуется получить сведения о положении в развернутом состоянии, размерах, минимальном или максимальном размере отслеживания. |
CWnd::OnHelpInfo |
Вызывается платформой, когда пользователь нажимает клавишу F1. |
CWnd::OnHotKey |
Вызывается, когда пользователь нажимает общесистемное сочетание клавиш. |
CWnd::OnHScroll |
Вызывается, когда пользователь щелкает горизонтальную полосу прокрутки объекта CWnd . |
CWnd::OnHScrollClipboard |
Вызывается, когда владелец буфера обмена должен прокрутить изображение из буфера, объявить необходимый раздел недействительным, а также обновить значения полосы прокрутки. |
CWnd::OnIconEraseBkgnd |
Вызывается, когда объект CWnd сворачивается (преобразуется в значок) и фон значка необходимо заполнить до его рисования. |
CWnd::OnInitMenu |
Вызывается непосредственно перед тем, как меню станет активным. |
CWnd::OnInitMenuPopup |
Вызывается непосредственно перед тем, как всплывающее меню станет активным. |
CWnd::OnInputDeviceChange |
Вызывается при добавлении в систему устройства ввода-вывода или его удаления из нее. |
CWnd::OnInputLangChange |
Вызывается после изменения языка ввода приложения. |
CWnd::OnInputLangChangeRequest |
Вызывается, когда пользователь выбирает новый язык ввода. |
CWnd::OnKeyDown |
Вызывается при нажатии несистемной клавиши. |
CWnd::OnKeyUp |
Вызывается, когда нажатая несистемная клавиша отпускается. |
CWnd::OnKillFocus |
Вызывается непосредственно перед тем, как объект CWnd теряет фокус ввода. |
CWnd::OnLButtonDblClk |
Вызывается, когда пользователь дважды щелкает левой кнопкой мыши. |
CWnd::OnLButtonDown |
Вызывается, когда пользователь щелкает левой кнопкой мыши. |
CWnd::OnLButtonUp |
Вызывается, когда пользователь отпускает левую кнопку мыши. |
CWnd::OnMButtonDblClk |
Вызывается, когда пользователь дважды щелкает средней кнопкой мыши. |
CWnd::OnMButtonDown |
Вызывается, когда пользователь щелкает средней кнопкой мыши. |
CWnd::OnMButtonUp |
Вызывается, когда пользователь отпускает среднюю кнопку мыши. |
CWnd::OnMDIActivate |
Вызывается при активации или деактивации дочернего окна MDI. |
CWnd::OnMeasureItem |
Вызывается для рисуемого владельцем дочернего элемента управление "Поле со списком", элемента управление "Список" или меню при создании нового элемента управления. Объект CWnd сообщает Windows размеры этого элемента управления. |
CWnd::OnMenuChar |
Вызывается, когда пользователь нажимает назначенный символ меню, не соответствующий ни одному из символов, назначенных для текущего меню. |
CWnd::OnMenuDrag |
Вызывается, когда пользователь начинает перетаскивать элемент меню. |
CWnd::OnMenuGetObject |
Вызывается когда курсор мыши попадает на элемент меню или перемещается из центра элемента в его верхнюю или нижнюю часть. |
CWnd::OnMenuRButtonUp |
Вызывается, если пользователь отпускает правую кнопку мыши, когда курсор находится на элементе меню. |
CWnd::OnMenuSelect |
Вызывается, когда пользователь выбирает элемент меню. |
CWnd::OnMouseActivate |
Вызывается, если пользователь щелкает кнопкой мыши, когда курсор находится в неактивном окне. |
CWnd::OnMouseHover |
Вызывается при наведении курсора на клиентская область окна в течение определенного периода времени, указанного в предыдущем вызове TrackMouseEvent . |
CWnd::OnMouseHWheel |
Вызывается при наклоне или повороте горизонтального колесика прокрутки мыши. |
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
, CMDIFrameWnd
CMDIChildWnd
, CView
и CDialog
, предназначены для дальнейшего производных. Классы элементов управления, производные от CWnd
таких, как CButton
, могут использоваться непосредственно или могут использоваться для дальнейшего производных классов.
Дополнительные сведения об использовании CWnd
см. в разделе Frame Windows
" Объекты окна".
Иерархия наследования
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
функциями или InvalidateRect
InvalidateRgn
членами системы после ее размеров, перемещает, создает, прокручивает или выполняет любую другую операцию, которая влияет на область клиента. Если регион обновления помечается 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
Привязывает свойство простой привязки объекта по умолчанию (например, элемент управления редактированием), как помечено в библиотеке типов, к базовому курсору, определенному DataSource
UserName
Password
элементом управления версиями данных , и SQL
свойствам элемента управления источниками данных.
void BindDefaultProperty(
DISPID dwDispID,
VARTYPE vtProp,
LPCTSTR szFieldName,
CWnd* pDSCWnd);
Параметры
dwDispID
Указывает DISPID
свойство элемента управления с привязкой к данным, которое должно быть привязано к элементу управления источником данных.
vtProp
Указывает тип привязанного свойства. Например, VT_BSTR
и VT_VARIANT
т. д.
szFieldName
Указывает имя столбца в курсоре, предоставленном элементом управления источником данных, к которому будет привязано свойство.
pDSCWnd
Указывает на окно, в котором размещен элемент управления источником данных, к которому будет привязано свойство. Вызовите GetDlgItem
идентификатор ресурса окна узла DCS, чтобы получить этот указатель.
Замечания
Объект 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
, CPoint
CRect
на который указывает lpPoint
lpRect
или вычисляет новые координаты экрана; затем заменяет координаты в структуре новыми координатами. Новые координаты экрана относятся к левому верхнему углу системного дисплея.
Функция-член ClientToScreen
предполагает, что заданная точка или прямоугольник находится в координатах клиента.
Пример
// resize dialog to client's size
void CMyDlg::OnSizeToClient()
{
CRect myRect;
GetClientRect(&myRect);
ClientToScreen(myRect);
MoveWindow(myRect.left, myRect.top,
myRect.Width(), myRect.Height());
}
CWnd::CloseWindow
Сворачивает окно.
void CloseWindow();
Замечания
Эта функция-член эмулирует функциональные возможности функции функции 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::OnCreate
lpCreateParams
в поле.
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_POSTMSGS
LB_DIR
флаг.LB_DIR
Если установлен флаг, Windows помещает сообщения, созданныеDlgDirList
в очереди приложения; в противном случае они отправляются непосредственно в процедуру диалогового окна.DDL_DRIVES
Диски.DDL_DRIVES
Если флаг задан,DDL_EXCLUSIVE
флаг устанавливается автоматически. Поэтому для создания списка каталогов, включающих диски и файлы, необходимо вызватьDlgDirList
дважды: один раз с наборомDDL_DRIVES
флагов и один раз с флагами для остальной части списка.DDL_EXCLUSIVE
Эксклюзивный бит. Если задан монопольный бит, перечислены только файлы указанного типа; В противном случае перечислены обычные файлы и файлы указанного типа.
Возвращаемое значение
Ненулевое значение, если функция выполнена успешно; в противном случае — 0.
Замечания
DlgDirList
LB_RESETCONTENT
отправляет и LB_DIR
отправляет сообщения в поле списка. Он заполняет поле списка, nIDListBox
указанное именами всех файлов, которые соответствуют указанному пути lpPathSpec
.
Параметр lpPathSpec
имеет следующую форму:
[drive:] [ [\u]directory[\idirectory]...\u] [filename]
В этом примере drive
буква диска directory
является допустимым именем каталога и filename
является допустимым именем файла, который должен содержать по крайней мере один подстановочный знак. Подстановочные знаки — это вопросительный знак (?), который означает соответствие любому символу и звездочку (*), что означает любое количество символов.
Если указать строку lpPathSpec
длиной 0 или указать только имя каталога, но не включать спецификацию файла, строка будет изменена на "*.*".
Если lpPathSpec
содержит имя диска и (или) каталога, текущий диск и каталог будут изменены на указанный диск и каталог до заполнения поля списка. Элемент управления текстом nIDStaticPath
, определяемый также, обновляется с новым именем диска и (или) каталога.
После заполнения поля списка обновляется путем lpPathSpec
удаления диска и (или) части каталога пути.
Пример
// If pDialog points to a CDialog object with a list box
// with the identifier IDC_DIRLIST, this call will populate
// the box with only the non-hidden subdirectories in the root
// directory of the C:\ drive.
TCHAR path[MAX_PATH];
_tcscpy_s(path, MAX_PATH, _T("C:\\"));
pDialog->DlgDirList(path, IDC_DIRLIST, 0, DDL_EXCLUSIVE | DDL_DIRECTORY);
CWnd::DlgDirListComboBox
Заполняет список элемента управления "Поле со списком" перечнем файлов или каталогов.
int DlgDirListComboBox(
LPTSTR lpPathSpec,
int nIDComboBox,
int nIDStaticPath,
UINT nFileType);
Параметры
lpPathSpec
Указывает на строку, завершающую значение NULL, содержащую путь или имя файла. DlgDirListComboBox
изменяет эту строку, поэтому эти данные не должны находиться в виде строкового литерала. См. следующий раздел "Примечания".
nIDComboBox
Указывает идентификатор поля со списком в диалоговом окне. Если nIDComboBox
значение равно 0, предполагается, DlgDirListComboBox
что поле со списком не существует и не пытается заполнить его.
nIDStaticPath
Указывает идентификатор статического текстового элемента управления, используемого для отображения текущего диска и каталога. Если nIDStaticPath
значение равно 0, предполагается, DlgDirListComboBox
что такой элемент управления текстом отсутствует.
nFileType
Указывает атрибуты файлов DOS для отображаемых файлов. Это может быть любое сочетание следующих значений:
DDL_READWRITE
Файлы данных для чтения и записи без дополнительных атрибутов.DDL_READONLY
Файлы только для чтения.DDL_HIDDEN
Скрытые файлы.DDL_SYSTEM
Системные файлы.DDL_DIRECTORY
Каталоги.DDL_ARCHIVE
Архив.DDL_POSTMSGS
CB_DIR
флаг.CB_DIR
Если установлен флаг, Windows помещает сообщения, созданныеDlgDirListComboBox
в очереди приложения; в противном случае они отправляются непосредственно в процедуру диалогового окна.DDL_DRIVES
Диски.DDL_DRIVES
Если флаг задан,DDL_EXCLUSIVE
флаг устанавливается автоматически. Поэтому для создания списка каталогов, включающих диски и файлы, необходимо вызватьDlgDirListComboBox
дважды: один раз с наборомDDL_DRIVES
флагов и один раз с флагами для остальной части списка.DDL_EXCLUSIVE
Эксклюзивный бит. Если задан монопольный бит, перечислены только файлы указанного типа; В противном случае перечислены обычные файлы и файлы указанного типа.
Возвращаемое значение
Указывает результат функции. Это ненулевое значение, если был сделан список, даже пустой список. Возвращаемое значение 0 означает, что входная строка не содержала допустимый путь поиска.
Замечания
DlgDirListComboBox
CB_RESETCONTENT
отправляет и CB_DIR
отправляет сообщения в поле со списком. Он заполняет поле со списком поля со списком, указанное именами nIDComboBox
всех файлов, которые соответствуют пути, заданному lpPathSpec
.
Параметр lpPathSpec
имеет следующую форму:
[drive:] [ [\u]directory[\idirectory]...\u] [filename]
В этом примере drive
буква диска directory
является допустимым именем каталога и filename
является допустимым именем файла, который должен содержать по крайней мере один подстановочный знак. Подстановочные знаки — это вопросительный знак (?), который означает соответствие любому символу и звездочку (*), что означает соответствие любому количеству символов.
Если указать строку нулевой длины для lpPathSpec
, текущий каталог будет использоваться и lpPathSpec
не будет изменен. Если указать только имя каталога, но не включать спецификацию файла, строка будет изменена на "*".
Если lpPathSpec
содержит имя диска и (или) каталога, текущий диск и каталог будут изменены на указанный диск и каталог до заполнения поля списка. Элемент управления текстом nIDStaticPath
, определяемый также, обновляется с новым именем диска и (или) каталога.
После заполнения поля со списком обновляется путем lpPathSpec
удаления диска и (или) части каталога пути.
Пример
// If pDialog points to a CDialog object with a combo box
// with the identifier IDC_DIRCOMBO, this call will populate
// the box with only the non-hidden subdirectories in the root
// directory of the C:\ drive.
TCHAR szPath[MAX_PATH];
_tcsncpy_s(szPath, MAX_PATH, _T("C:\\"), MAX_PATH);
pDialog->DlgDirListComboBox(szPath, IDC_DIRCOMBO, 0, DDL_EXCLUSIVE | DDL_DIRECTORY);
// Note that the first argument is a string and not a string
// literal. This is necessary because DlgDirListComboBox
// modifies the supplied string. Passing a string literal
// will result in an access violation.
CWnd::DlgDirSelect
Извлекает текущее выделение из списка.
BOOL DlgDirSelect(
LPTSTR lpString,
int nIDListBox);
Параметры
lpString
Указывает на буфер, который требуется получить текущий выбор в поле списка.
nIDListBox
Указывает целочисленный идентификатор поля списка в диалоговом окне.
Возвращаемое значение
Имеет ненулевое значение в случае успешного выполнения, иначе — 0.
Замечания
Предполагается, что поле списка заполнено DlgDirList
функцией-членом и что выбор является буквой диска, файлом или именем каталога.
Функция-член DlgDirSelect
копирует выделение в буфер, заданный lpString
. Если выбор отсутствует, lpString
не изменяется.
DlgDirSelect
LB_GETCURSEL
отправляет и LB_GETTEXT
отправляет сообщения в поле списка.
Он не позволяет возвращать несколько имен файлов из списка. Поле списка не должно быть списком с несколькими выборами.
CWnd::DlgDirSelectComboBox
Извлекает текущее выделение списка элемента управления "Поле со списком".
BOOL DlgDirSelectComboBox(
LPTSTR lpString,
int nIDComboBox);
Параметры
lpString
Указывает на буфер, который требуется получить выбранный путь.
nIDComboBox
Указывает целый идентификатор поля со списком в диалоговом окне.
Возвращаемое значение
Имеет ненулевое значение в случае успешного выполнения, иначе — 0.
Замечания
Предполагается, что поле списка заполнено DlgDirListComboBox
функцией-членом и что выбор является буквой диска, файлом или именем каталога.
Функция-член DlgDirSelectComboBox
копирует выделение в указанный буфер. Если выделения нет, содержимое буфера не изменяется.
DlgDirSelectComboBox
CB_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_DROPFILES
Windows. Например, в приложении 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
, класс окна которого присваивается и которому присваивается lpszClassName
lpszWindowName
имя окна или заголовок.
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
Возвращает контекст устройства из кэша, а неOWNDC
CLASSDC
окна. ПереопределяетCS_OWNDC
иCS_CLASSDC
.DCX_CLIPCHILDREN
Исключает видимые области всех дочерних окон под окномCWnd
.DCX_CLIPSIBLINGS
Исключает видимые области всех одноуровневых окон над окномCWnd
.DCX_EXCLUDERGN
Исключает область вырезки, определяемуюprgnClip
из видимой области возвращаемого контекста устройства.DCX_INTERSECTRGN
Пересекает область вырезки,prgnClip
определяемую в видимой области возвращаемого контекста устройства.DCX_LOCKWINDOWUPDATE
Разрешает рисование, даже если естьLockWindowUpdate
вызов, который в противном случае исключит это окно. Это значение используется для рисования во время отслеживания.DCX_PARENTCLIP
Использует видимую область родительского окна и игнорирует биты родительского окнаWS_CLIPCHILDREN
иWS_PARENTDC
стиля. Это значение задает источник контекста устройства в левом верхнем углуCWnd
окна.DCX_WINDOW
Возвращает контекст устройства, соответствующий прямоугольнику окна, а не прямоугольник клиента.
Возвращаемое значение
Контекст устройства для указанного окна, если функция выполнена успешно; в противном случае NULL
.
Замечания
Контекст устройства можно использовать в последующих функциях 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
Указывает, может ли возвращаемое окно быть временным. Если возвращается только постоянное окно; если TRUE
FALSE
функция может вернуть временное окно. Дополнительные сведения о временных окнах см . в техническом примечание 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
, UserName
Password
и 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;
Возвращаемое значение
Определяет меню. Если нет меню, это значение NULL
CWnd
. Возвращаемое значение не определено, если 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_pSite COleControlSiteOrWnd указывает на элемент элемента управления COleControlSite , а m_hWnd член — NULL . |
Стандартное окно | Содержит только .HWND Элемент m_hWnd COleControlSiteOrWnd имеет значение HWND окна, а m_pSite член — NULL . |
CWnd::GetNextDlgTabItem
Извлекает указатель на первый элемент управления, созданный с WS_TABSTOP
помощью стиля, который предшествует или следует указанному элементу управления.
CWnd* GetNextDlgTabItem(
CWnd* pWndCtl,
BOOL bPrevious = FALSE) const;
COleControlSiteOrWnd* GetNextDlgTabItem(
COleControlSiteOrWnd* pCurSiteOrWnd,
BOOL bPrevious) const;
Параметры
pWndCtl
Определяет элемент управления, используемый в качестве отправной точки для поиска.
pCurSiteOrWnd
Определяет COleControlSiteOrWnd
элемент управления. Дополнительные сведения о COleControlSiteOrWnd
см. в разделе CWnd::GetNextDlgGroupItem
.
bPrevious
Указывает, как функция выполняет поиск в диалоговом окне. Если TRUE
функция ищет предыдущий элемент управления в диалоговом окне; если FALSE
он ищет следующий элемент управления.
Возвращаемое значение
Указатель на предыдущий или следующий элемент управления, имеющий WS_TABSTOP
стиль, если функция-член выполнена успешно.
Возвращаемый указатель может быть временным и не должен храниться для последующего использования.
Дополнительные сведения о COleControlSiteOrWnd
см. в разделе CWnd::GetNextDlgGroupItem
.
CWnd::GetNextWindow
Выполняет поиск следующего (или предыдущего) окна в списке диспетчера окон.
CWnd* GetNextWindow(UINT nFlag = GW_HWNDNEXT) const;
Параметры
nFlag
Указывает, возвращает ли функция указатель на следующее окно или предыдущее окно. Это может быть либо GW_HWNDNEXT
окно, которое возвращает окно, которое следует CWnd
объекту в списке диспетчера окон, либо GW_HWNDPREV
возвращает предыдущее окно в списке диспетчера окон.
Возвращаемое значение
Определяет следующее (или предыдущее) окно в списке диспетчера окон, если функция-член выполнена успешно.
Возвращаемый указатель может быть временным и не должен храниться для последующего использования.
Замечания
Список диспетчера окон содержит записи для всех окон верхнего уровня, связанных с ними дочерних окон и дочерних окон всех дочерних окон.
Если 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
указателя this
NULL
.NULL
HWND GetSafeHwnd() const;
Возвращаемое значение
Возвращает дескриптор окна для окна. Возвращает значение NULL
, если CWnd
оно не присоединено к окну или используется с NULL
CWnd
указателем.
Пример
Пример см. в примере CWnd::SubclassWindow
.
CWnd::GetSafeOwner
Вызовите эту функцию-член, чтобы получить окно владельца, которое должно использоваться для диалоговых окон или других модальных окон.
static CWnd* GetSafeOwner(
CWnd* pParent = NULL,
HWND* pWndTop = NULL);
Параметры
pParent
Указатель на родительское CWnd
окно. Может иметь значение NULL
.
pWndTop
Указатель на окно, которое в настоящее время находится сверху. Может иметь значение NULL
.
Возвращаемое значение
Указатель на безопасного владельца для данного окна.
Замечания
Безопасный владелец — это первое родительское окно pParent
, не являющегося дочерним. В противном pParent
NULL
случае основное окно потока (полученное через 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_TRACKPOS
SIF_RANGE
. Дополнительные сведения о значениях см. в разделе SCROLLINFO
nMask
.
Возвращаемое значение
Если сообщение извлекло какие-либо значения, возвращается 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::AppendMenu
CMenu::InsertMenu
функцией управления или CMenu::ModifyMenu
функциями для изменения меню управления.
Меню "Элемент управления" изначально содержит элементы, определенные с различными значениями идентификаторов, такими как SC_CLOSE
, SC_MOVE
и SC_SIZE
. Элементы в меню "Элемент управления" создают WM_SYSCOMMAND
сообщения. Все предопределенные элементы меню управления имеют номера идентификаторов, превышающие 0xF000. Если приложение добавляет элементы в меню "Управление", оно должно использовать номера идентификаторов меньше F000.
Windows может автоматически сделать элементы недоступными в стандартном меню управления. CWnd
может выполнять свой собственный выбор или недоступность, отвечая на WM_INITMENU
сообщения, которые отправляются перед отображением любого меню.
Пример
// The following code fragment is taken from CMyDlg::OnInitDialog
// CMyDlg is derived from CDialog
// Add "About..." menu item to system menu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu *pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUT);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
CWnd::GetTitleBarInfo
Извлекает сведения об указанной строке заголовка.
BOOL GetTitleBarInfo(PTITLEBARINFO pti) const;
Параметры
pti
Указатель на структуру TITLEBARINFO
, которая получает информацию.
Замечания
Эта функция-член эмулирует функциональные возможности функции функции 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
сообщение.
Прямоугольник обновления, полученный функцией-членом, идентичен тому, который извлекается BeginPaint
GetUpdateRect
функцией-членом.
Функция-член 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
вызове функции-члена; в противном случае FALSE
bErase
фон остается неизменным. Если 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
вызове функции-члена; в противном случае FALSE
bErase
фон остается неизменным. Если 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
вызове функции-члена; в противном случае FALSE
bErase
фон остается неизменным. Если 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_EXCEPTION
IDispatch::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 выбирает следующий элемент управления или группу элементов управления, а клавиша СТРЕЛКА ВНИЗ выбирает следующий элемент управления в группе.
Не следует передавать сообщение, обработанное IsDialogMessage
TranslateMessage
функциями или 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, которая будет использоваться для заголовка окна сообщения. Если lpszCaption
это NULL
так, используется заголовок по умолчанию "Error".
nType
Указывает содержимое и поведение поля сообщения.
Возвращаемое значение
Этот метод использует функцию MessageBox
, определенную в пакете SDK для Windows. Этот метод возвращает результат вызова этой функции.
Замечания
Используйте глобальную функцию вместо этой функции-члена AfxMessageBox
для реализации поля сообщения в приложении.
Ниже показаны различные системные значки, которые можно использовать в окне сообщения:
Icon | Макрос |
---|---|
MB_ICONHAND , MB_ICONSTOP и MB_ICONERROR |
|
MB_ICONQUESTION | |
MB_ICONEXCLAMATION и MB_ICONWARNING | |
MB_ICONASTERISK и MB_ICONINFORMATION |
Пример
void CMainFrame::OnDisplayErrorMessage()
{
// This displays a message box with the title "Error"
// and the message "Help, Something went wrong."
// The error icon is displayed in the message box, along with
// an OK button.
MessageBox(_T("Help, Something went wrong."), _T("Error"),
MB_ICONERROR | MB_OK);
}
CWnd::ModifyStyle
Вызовите эту функцию-член, чтобы изменить стиль окна.
BOOL ModifyStyle(
DWORD dwRemove,
DWORD dwAdd,
UINT nFlags = 0);
Параметры
dwRemove
Указывает стили окон для удаления во время изменения стиля.
dwAdd
Указывает стили окон, которые следует добавлять во время изменения стиля.
nFlags
Флаги, передаваемые в SetWindowPos
, или ноль, если SetWindowPos
не следует вызывать. По умолчанию используется значение 0. Список предустановленных флагов см. в разделе "Примечания".
Возвращаемое значение
Ненулевое значение, если стиль был успешно изменен; в противном случае — значение 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
, что окно свернуто.
Значение TRUE
активируется; в противном случае деактивировано.
Замечания
CWnd
Если объект активируется щелчком мыши, он также получит OnMouseActivate
вызов функции-члена.
Примечание.
Это функция-член вызывается платформой, чтобы разрешить приложению обработать сообщение Windows. Параметры, передаваемые в функцию, отражают параметры, полученные платформой при поступлении сообщения. При вызове реализации базового класса этой функции эта реализация будет использовать параметры, изначально переданные с сообщением, а не параметры, передаваемые в функции.
CWnd::OnActivateApp
Платформа вызывает эту функцию-член ко всем окнам задачи, которые активируются, и для всех окон верхнего уровня деактивации задачи.
afx_msg void OnActivateApp(
BOOL bActive,
DWORD dwThreadID);
Параметры
bActive
Указывает, активируется ли CWnd
активируется или деактивируется. TRUE
CWnd
означает, что активируется. FALSE
CWnd
означает, что деактивируется.
dwThreadID
Указывает значение идентификатора потока. Если bActive
это TRUE
так, dwThreadID
определяет поток, принадлежащий CWnd
деактивации. Если bActive
это FALSE
так, dwThreadID
определяет поток, принадлежащий активируемой CWnd
.
Замечания
Примечание.
Это функция-член вызывается платформой, чтобы разрешить приложению обработать сообщение 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
. в разделе параметра lParam
WM_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
вызывается до Create
CreateEx
возврата функции-члена.
Переопределите эту функцию-член для выполнения любой необходимой инициализации производного класса.
Структура CREATESTRUCT
содержит копии параметров, используемых для создания окна.
Примечание.
Это функция-член вызывается платформой, чтобы разрешить приложению обработать сообщение Windows. Параметры, передаваемые в функцию, отражают параметры, полученные платформой при поступлении сообщения. При вызове реализации базового класса этой функции эта реализация будет использовать параметры, изначально переданные с сообщением, а не параметры, передаваемые в функции.
CWnd::OnCtlColor
Платформа вызывает эту функцию-член, когда дочерний элемент управления будет нарисован.
afx_msg HBRUSH OnCtlColor(
CDC* pDC,
CWnd* pWnd,
UINT nCtlColor);
Параметры
pDC
Содержит указатель на контекст отображения дочернего окна. Может быть временным.
pWnd
Содержит указатель на элемент управления, запрашивающий цвет. Может быть временным.
nCtlColor
Содержит одно из следующих значений, указывающее тип элемента управления:
CTLCOLOR_BTN
Элемент управления "Кнопка"CTLCOLOR_DLG
Диалоговое окноCTLCOLOR_EDIT
Изменение элемента управленияCTLCOLOR_LISTBOX
Элемент управления List-boxCTLCOLOR_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
Задает код сканирования, код перехода ключей, предыдущий состояние ключа и код контекста, как показано в следующем списке:
значение | Описание |
---|---|
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::DeleteString
CComboBox::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_CHILDREN
PRF_CLIENT
флагами, а также PRF_NONCLIENT
флагами.
CWnd::OnDrawItem
Платформа вызывает эту функцию-член для владельца элемента управления "Рисование владельца", элемента управления со списком, элемента управления list-box или меню при изменении визуального аспекта элемента управления или меню.
afx_msg void OnDrawItem(
int nIDCtl,
LPDRAWITEMSTRUCT lpDrawItemStruct);
Параметры
nIDCtl
Содержит идентификатор элемента управления, отправляющего WM_DRAWITEM
сообщение. Если в меню отправлено сообщение, nIDCtl
содержится 0.
lpDrawItemStruct
Указывает длинный указатель на DRAWITEMSTRUCT
структуру данных, содержащую сведения о нарисованном элементе и типе документа.
Замечания
Элемент itemAction
DRAWITEMSTRUCT
структуры определяет операцию рисования, которую необходимо выполнить. Данные в этом элементе позволяют владельцу элемента управления определить, какое действие рисования требуется.
Перед возвращением из обработки этого сообщения приложение должно убедиться, что контекст устройства, определенный hDC
членом DRAWITEMSTRUCT
структуры, восстанавливается в состоянии по умолчанию.
hwndItem
Если член принадлежит объекту CButton
, CMenu
CListBox
или CComboBox, DrawItem
вызывается виртуальная функция соответствующего класса. Переопределите DrawItem
функцию-член класса соответствующего элемента управления для рисования элемента.
Примечание.
Это функция-член вызывается платформой, чтобы разрешить приложению обработать сообщение Windows. Параметры, передаваемые в функцию, отражают параметры, полученные платформой при поступлении сообщения. При вызове реализации базового класса этой функции эта реализация будет использовать параметры, изначально переданные с сообщением, а не параметры, передаваемые в функции.
CWnd::OnDropFiles
Платформа вызывает эту функцию-член, когда пользователь освобождает левую кнопку мыши над окном, которое зарегистрировалось как получатель удаленных файлов.
afx_msg void OnDropFiles(HDROP hDropInfo);
Параметры
hDropInfo
Указатель на внутреннюю структуру данных, описывающую удаленные файлы. Этот дескриптор используется функциями DragFinish
, DragQueryFile
и DragQueryPoint
Windows для получения сведений об удаленных файлах.
Замечания
Как правило, производный класс будет разработан для поддержки удаленных файлов, и он зарегистрирует себя во время построения окна.
Примечание.
Это функция-член вызывается платформой, чтобы разрешить приложению обработать сообщение Windows. Параметры, передаваемые в функцию, отражают параметры, полученные платформой при поступлении сообщения. При вызове реализации базового класса этой функции эта реализация будет использовать параметры, изначально переданные с сообщением, а не параметры, передаваемые в функции.
CWnd::OnEnable
Платформа вызывает эту функцию-член, когда приложение изменяет состояние включенного CWnd
объекта.
afx_msg void OnEnable(BOOL bEnable);
Параметры
bEnable
Указывает, CWnd
включен или отключен объект. Этот параметр имеет TRUE
значение, если он включен; он FALSE
имеет значение, если CWnd
CWnd
он отключен.
Замечания
OnEnable
вызывается до EnableWindow
возврата функции-члена, но после изменения состояния включено окно (WS_DISABLED
бит стиля).
Примечание.
Это функция-член вызывается платформой, чтобы разрешить приложению обработать сообщение Windows. Параметры, передаваемые в функцию, отражают параметры, полученные платформой при поступлении сообщения. При вызове реализации базового класса этой функции эта реализация будет использовать параметры, изначально переданные с сообщением, а не параметры, передаваемые в функции.
CWnd::OnEndSession
Платформа вызывает эту функцию-член после того, как CWnd
объект вернул ненулевое значение из OnQueryEndSession
вызова функции-члена.
afx_msg void OnEndSession(BOOL bEnding);
Параметры
bEnding
Указывает, завершается ли сеанс. Значение 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 с заданным параметром hWnd
HWND_BROADCAST
.
CWnd::OnGetDlgCode
Вызывается, чтобы элемент управления мог самостоятельно обрабатывать нажатия на клавиши со стрелками и клавишу TAB.
afx_msg UINT OnGetDlgCode();
Возвращаемое значение
Одно или несколько следующих значений, указывающее, какой тип входных данных обрабатывает приложение:
DLGC_BUTTON
Кнопка (универсальная).DLGC_DEFPUSHBUTTON
Pushbutton по умолчанию.DLGC_HASSETSEL
EM_SETSEL
Сообщения.DLGC_UNDEFPUSHBUTTON
Обработка pushbutton по умолчанию не используется. (Приложение может использовать этот флаг,DLGC_BUTTON
чтобы указать, что он обрабатывает входные данные кнопки, но использует систему для обработки pushbutton по умолчанию.)DLGC_RADIOBUTTON
Переключатель.DLGC_STATIC
Статический элемент управления.DLGC_WANTALLKEYS
Все входные данные клавиатуры.DLGC_WANTARROWS
Клавиши со стрелками.DLGC_WANTCHARS
WM_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_THUMBPOSITION
SB_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
Задает код сканирования, код перехода ключей, предыдущий состояние ключа и код контекста, как показано в следующем списке:
значение | Описание |
---|---|
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
Задает код сканирования, код перехода ключей, предыдущий состояние ключа и код контекста, как показано в следующем списке:
значение | Описание |
---|---|
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_DBLCLKS
WNDCLASS
будут получать OnLButtonDblClk
звонки. Это значение по умолчанию для окон классов Microsoft Foundation. Windows вызывается OnLButtonDblClk
, когда пользователь нажимает, освобождает, а затем снова нажимает левую кнопку мыши в пределах ограничения времени двойного щелчка системы. Дважды щелкнув левую кнопку мыши, на самом деле создает четыре события: WM_LBUTTONDOWN
WM_LBUTTONUP
сообщения, WM_LBUTTONDBLCLK
звонок и другое WM_LBUTTONUP
сообщение при освобождении кнопки.
Примечание.
Это функция-член вызывается платформой, чтобы разрешить приложению обработать сообщение Windows. Параметры, передаваемые в функцию, отражают параметры, полученные платформой при поступлении сообщения. При вызове реализации базового класса этой функции эта реализация будет использовать параметры, изначально переданные с сообщением, а не параметры, передаваемые в функции.
CWnd::OnLButtonDown
Платформа вызывает эту функцию-член, когда пользователь нажимает левую кнопку мыши.
afx_msg void OnLButtonDown(
UINT nFlags,
CPoint point);
Параметры
nFlags
Указывает, отключены ли различные виртуальные ключи. Этот параметр может быть любым сочетанием следующих значений:
MK_CONTROL
Задайте, если клавиша CTRL не работает.MK_LBUTTON
Установите, если левая кнопка мыши вниз.MK_MBUTTON
Установите, если средняя кнопка мыши вниз.MK_RBUTTON
Установите, если правая кнопка мыши вниз.MK_SHIFT
Задайте, если клавиша SHIFT отключена.
point
Указывает координату x-и y курсора. Эти координаты всегда относятся к левому верхнему углу окна.
Замечания
Примечание.
Это функция-член вызывается платформой, чтобы разрешить приложению обработать сообщение 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_DBLCLKS
WNDCLASS
будут получать OnMButtonDblClk
звонки. Это значение по умолчанию для всех окон классов Microsoft Foundation. Windows создает вызов, когда пользователь нажимает, освобождает, а затем снова нажимает OnMButtonDblClk
среднюю кнопку мыши в пределах ограничения времени двойного щелчка системы. Дважды щелкнув по средней кнопке мыши, на самом деле создаются четыре события: WM_MBUTTONDOWN
и WM_MBUTTONUP
сообщения, звонок и другое WM_MBUTTONDBLCLK
WM_MBUTTONUP
сообщение.
Примечание.
Это функция-член вызывается платформой, чтобы разрешить приложению обработать сообщение Windows. Параметры, передаваемые в функцию, отражают параметры, полученные платформой при поступлении сообщения. При вызове реализации базового класса этой функции эта реализация будет использовать параметры, изначально переданные с сообщением, а не параметры, передаваемые в функции.
CWnd::OnMButtonDown
Платформа вызывает эту функцию-член, когда пользователь нажимает среднюю кнопку мыши.
afx_msg void OnMButtonDown(
UINT nFlags,
CPoint point);
Параметры
nFlags
Указывает, отключены ли различные виртуальные ключи. Этот параметр может быть любым сочетанием следующих значений:
MK_CONTROL
Задайте, если клавиша CTRL не работает.MK_LBUTTON
Установите, если левая кнопка мыши вниз.MK_MBUTTON
Установите, если средняя кнопка мыши вниз.MK_RBUTTON
Установите, если правая кнопка мыши вниз.MK_SHIFT
Задайте, если клавиша SHIFT отключена.
point
Указывает координату x-и y курсора. Эти координаты всегда относятся к левому верхнему углу окна.
Замечания
Примечание.
Это функция-член вызывается платформой, чтобы разрешить приложению обработать сообщение 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 еще не определила высоту и ширину шрифта, используемого в элементе управления; Вызовы функций и вычисления, требующие этих значений, должны выполняться в главной функции приложения или библиотеки.
Если измеряемый элемент является CMenu
CListBox
объектом или CComboBox
объектом, MeasureItem
вызывается виртуальная функция соответствующего класса. Переопределите MeasureItem
функцию-член соответствующего класса элемента управления, чтобы вычислить и задать размер каждого элемента.
OnMeasureItem
вызывается только в том случае, если класс элемента управления создается во время выполнения или создается с помощью LBS_OWNERDRAWVARIABLE
стиля или CBS_OWNERDRAWVARIABLE
стиля. Если элемент управления создается редактором диалогов, OnMeasureItem
не будет вызываться. Это связано с тем, что WM_MEASUREITEM
сообщение отправляется в начале процесса создания элемента управления. При использовании подкласса или DDX_Control
SubclassDlgItem
SubclassWindow
подклассе обычно происходит после процесса создания. Поэтому нет способа обрабатывать WM_MEASUREITEM
сообщение в функции элемента управления OnChildNotify
, который является механизмом, который использует MFC для реализации ON_WM_MEASUREITEM_REFLECT
.
Примечание.
Это функция-член вызывается платформой, чтобы разрешить приложению обработать сообщение Windows. Параметры, передаваемые в функцию, отражают параметры, полученные платформой при поступлении сообщения. При вызове реализации базового класса этой функции эта реализация будет использовать параметры, изначально переданные с сообщением, а не параметры, передаваемые в функции.
CWnd::OnMenuChar
Платформа вызывает эту функцию-член, когда пользователь нажимает символ меню mnemonic, который не соответствует ни одному из предопределенных mnemonics в текущем меню.
afx_msg LRESULT OnMenuChar(
UINT nChar,
UINT nFlags,
CMenu* pMenu);
Параметры
nChar
В зависимости от параметров сборки указывает символ ANSI или Юникод, нажатый пользователем.
nFlags
Содержит флаг, MF_POPUP
если меню — всплывающее меню. Он содержит флаг, MF_SYSMENU
если меню является меню "Элемент управления".
pMenu
Содержит указатель на выбранный CMenu
элемент. Указатель может быть временным и не должен храниться.
Возвращаемое значение
Слово высокого порядка возвращаемого значения должно содержать один из следующих кодов команд:
значение | Описание |
---|---|
0 | Сообщает Windows отменить символ, который пользователь нажимал и создает короткий сигнал на системном динамике. |
1 | Сообщает Windows закрыть текущее меню. |
2 | Сообщает Windows, что слово с низким порядком возвращаемого значения содержит номер элемента для определенного элемента. Этот элемент выбран Windows. |
Слово с низким порядком игнорируется, если слово высокого порядка содержит значение 0 или 1. Приложения должны обрабатывать это сообщение, когда клавиши акселератора (ярлыка) используются для выбора растровых изображений, размещенных в меню.
Замечания
Он отправляется 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, чтобы предотвратить деактивацию панели заголовков или значка.
Замечания
Реализация по умолчанию рисует строку заголовка и текст строки заголовка в их активных цветах bActive
FALSE
, если 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, отражение сообщений для элементов управления 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::LoadCursor
CWinApp::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. Это гарантирует, что буфер обмена содержит допустимые данные, даже если приложение, которое отрисовывает данные, уничтожается. Приложение должно вызвать функцию-член перед вызовом OpenClipboard
SetClipboardData
CloseClipboard
функции 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_MINIMIZED
SIZE_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_SYSKEYUP
WM_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_CLOSE
CWnd
Закройте объект.SC_HOTKEY
Активируйте объект, связанныйCWnd
с заданным приложением горячим ключом. СловоlParam
с низким порядком определяетHWND
окно для активации.SC_HSCROLL
Прокрутите по горизонтали.SC_KEYMENU
Получите меню с помощью нажатия клавиш.SC_MAXIMIZE
(илиSC_ZOOM
)CWnd
Развернуть объект.SC_MINIMIZE
(илиSC_ICON
) Свести к минимумуCWnd
объект.SC_MOUSEMENU
Получите меню с помощью щелчка мыши.SC_MOVE
CWnd
Перемещение объекта.SC_NEXTWINDOW
Перейдите к следующему окну.SC_PREVWINDOW
Перейдите к предыдущему окну.SC_RESTORE
Восстановление окна до нормальной позиции и размера.SC_SCREENSAVE
Выполняет приложение с сохранением экрана, указанное в разделеSYSTEM.INI
[boot] файла.SC_SIZE
CWnd
Размер объекта.SC_TASKLIST
Выполните или активируйте приложение Диспетчера задач Windows.SC_VSCROLL
Прокрутите по вертикали.
lParam
Если выбрана команда меню управления с помощью мыши, lParam
содержит координаты курсора. Слово с низким порядком содержит координату x, а слово высокого порядка содержит координату y. В противном случае этот параметр не используется.
SC_HOTKEY
Активируйте окно, связанное с заданным приложением горячим ключом. СловоlParam
с низким порядком определяет окно для активации.SC_SCREENSAVE
Выполните приложение для сохранения экрана, указанное в разделе "Рабочий стол" панель управления.
Замечания
По умолчанию выполняет запрос меню управления для предопределенных действий, OnSysCommand
указанных в предыдущей таблице.
В WM_SYSCOMMAND
сообщениях четыре бита nID
с низким порядком параметра используются внутри Windows. Когда приложение проверяет значение nID
, оно должно объединить значение 0xFFF0 со nID
значением с помощью побитового оператора AND, чтобы получить правильный результат.
Элементы меню в меню "Элемент управления" можно изменить с помощью GetSystemMenu
функций элементов InsertMenu
AppendMenu
и 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_THUMBPOSITION
SB_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_BYTEALIGNCLIENT
CS_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
заданным значением OnWinIniChange
NULL
, приложение должно проверить все разделы в WIN. INI, влияющие на приложение.
Примечание.
Это функция-член вызывается платформой, чтобы разрешить приложению обработать сообщение Windows. Параметры, передаваемые в функцию, отражают параметры, полученные платформой при поступлении сообщения. При вызове реализации базового класса этой функции эта реализация будет использовать параметры, изначально переданные с сообщением, а не параметры, передаваемые в функции.
CWnd::OnWndMsg
Эта функция-член вызывается WindowProc
или вызывается во время отражения сообщения.
virtual BOOL OnWndMsg(
UINT message,
WPARAM wParam,
LPARAM lParam,
LRESULT* pResult);
Параметры
message
Указывает сообщение, которое нужно отправить.
wParam
Указывает дополнительные сведения, зависящие от сообщений.
lParam
Указывает дополнительные сведения, зависящие от сообщений.
pResult
Возвращаемое значение WindowProc
. Зависит от сообщения; может быть NULL
.
Возвращаемое значение
ЗНАЧЕНИЕ TRUE, если сообщение было обработано; в противном случае ЗНАЧЕНИЕ FALSE.
Замечания
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
теперь назначает элемент cs
this
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
и lpRectUpdate
NULL
есть, в регион обновления добавляется вся клиентская область.
flags
Для отмены окна используются следующие флаги:
RDW_ERASE
ВызываетWM_ERASEBKGND
получение сообщения при переопределении окна. ФлагRDW_INVALIDATE
также должен быть указан; в противном случае RDW_ERASE не действует.RDW_FRAME
Вызывает любую часть неклиентной области окна, которая пересекает регион обновления для полученияWM_NCPAINT
сообщения. ФлагRDW_INVALIDATE
также должен быть указан; в противном случаеRDW_FRAME
не действует.RDW_INTERNALPAINT
ВызываетWM_PAINT
отправку сообщения в окно независимо от того, содержит ли окно недопустимый регион.RDW_INVALIDATE
НедопустимыйlpRectUpdate
илиprgnUpdate
(только один может быть неNULL
указан). В обоих случаяхNULL
окно является недействительным.
Для проверки окна используются следующие флаги:
RDW_NOERASE
Подавляет ожидающиеWM_ERASEBKGND
сообщения.RDW_NOFRAME
Подавляет ожидающиеWM_NCPAINT
сообщения. Этот флаг должен использоваться иRDW_VALIDATE
обычно используется сRDW_NOCHILDREN
. Этот параметр следует использовать с осторожностью, так как он может предотвратить правильное рисование частей окна.RDW_NOINTERNALPAINT
Подавляет все ожидающие внутренниеWM_PAINT
сообщения. Этот флаг не влияет наWM_PAINT
сообщения, полученные из недопустимых областей.RDW_VALIDATE
lpRectUpdate
Проверяет илиprgnUpdate
(только один может быть неNULL
). В обоих случаяхNULL
выполняется проверка всего окна. Этот флаг не влияет на внутренниеWM_PAINT
сообщения.
При переопределении выполняется следующий элемент управления флагами. Картина не выполняется функцией RedrawWindow
, если не указан один из этих битов.
RDW_ERASENOW
Приводит к получениюWM_NCPAINT
иRDW_NOCHILDREN
WM_ERASEBKGND
отправке сообщений в затронутых окнах (как указаноRDW_ALLCHILDREN
флагами) перед возвратом функции.WM_PAINT
сообщения откладываются.RDW_UPDATENOW
Приводит к получению затронутых окон (как указаноRDW_ALLCHILDREN
в параметрах иRDW_NOCHILDREN
флагах), аWM_PAINT
также сообщений перед возвратом функции.WM_NCPAINT
WM_ERASEBKGND
По умолчанию окна, затронутые RedrawWindow
функцией, зависят от того, имеет WS_CLIPCHILDREN
ли указанное окно стиль. Дочерние WS_CLIPCHILDREN
окна окон не затрагиваются. Однако те окна, которые не WS_CLIPCHILDREN
являются окнами, рекурсивно проверяются или недопустимы до тех пор, пока WS_CLIPCHILDREN
не будет обнаружено окно. Следующие флаги управляют окнами, затронутыми функцией RedrawWindow
:
RDW_ALLCHILDREN
Включает дочерние окна, если таковые имеются, в операции переопределений.RDW_NOCHILDREN
Исключает дочерние окна, если таковые есть, из операции переопределений.
Возвращаемое значение
Ненулевое значение, если окно было успешно удалено; в противном случае — 0.
Замечания
RedrawWindow
Если функция-член используется для недопустимой части окна рабочего стола, это окно не получает WM_PAINT
сообщения. Чтобы перенакрасить рабочий стол, приложение должно использовать CWnd::ValidateRgn
, CWnd::UpdateWindow
CWnd::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
вызова. Возвращает указанное значение nResult
EndModalLoop
.
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
, lpRectUpdate
lpRectClip
иprgnUpdate
) должны находиться в клиентских координатах независимо от того, имеет CS_OWNDC
ли окно стиль или CS_CLASSDC
стиль класса. LPtoDP
DPtoLP
При необходимости используйте функции 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_DRAWCLIPBOARD
WM_CHANGECBCHAIN
WM_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
подписывается. Если этот параметр меньше TRUE
nValue
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_SYSKEYDOWN
WM_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::OnHScroll
CWnd::OnVScroll
предоставляющие только 16 бит данных о положении. GetScrollInfo
и SetScrollInfo
предоставьте 32 бита данных о положении полосы прокрутки. Таким образом, приложение может вызываться GetScrollInfo
при обработке CWnd::OnHScroll
или CWnd::OnVScroll
получать 32-разрядные данные положения полосы прокрутки.
Примечание.
CWnd::GetScrollInfo
позволяет приложениям использовать 32-разрядные позиции полосы прокрутки.
CWnd::SetScrollPos
Задает текущую позицию поля прокрутки и при необходимости перерисовывает полосу прокрутки, чтобы отразить новую позицию поля прокрутки.
int SetScrollPos(
int nBar,
int nPos,
BOOL bRedraw = TRUE);
Параметры
nBar
Указывает заданную полосу прокрутки. Этот параметр может иметь одно из следующих значений:
SB_HORZ
Задает положение поля прокрутки в горизонтальной полосе прокрутки окна.SB_VERT
Задает положение поля прокрутки в вертикальной полосе прокрутки окна.
nPos
Задает новую позицию поля прокрутки. Он должен находиться в диапазоне прокрутки.
bRedraw
Указывает, следует ли переопределять полосу прокрутки, чтобы отразить новую позицию прокрутки. Если этот параметр имеет TRUE
значение, полоса прокрутки переопределена; если FALSE
полоса прокрутки не переопределена.
Возвращаемое значение
Предыдущая позиция поля прокрутки.
Замечания
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::KillTimer
CWnd::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_FRAMECHANGED
WM_NCCALCSIZE
Отправляет сообщение в окно, даже если размер окна не изменяется. Если этот флаг не указан,WM_NCCALCSIZE
отправляется только при изменении размера окна.SWP_HIDEWINDOW
Скрывает окно.SWP_NOACTIVATE
Не активирует окно. Если этот флаг не задан, окно активируется и перемещается в верхнюю часть верхней или самой верхней группы (в зависимости от параметраpWndInsertAfter
).SWP_NOCOPYBITS
Удаляет все содержимое клиентской области. Если этот флаг не указан, допустимое содержимое клиентской области сохраняется и копируется обратно в клиентскую область после размера или изменения положения окна.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_NOACTIVATE
SWP_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
операционная система перерисовывает окно после задания региона; в противном случае она не выполняется. Как правило, установите значение bRedraw
TRUE
, если окно отображается. Если задано значение 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
функции. Функция сохраняет указатель на старый WndProc
CWnd
объект.
Примечание.
Окно не должно быть присоединено к объекту 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. В противном bSaveAndValidate
TRUE
случае возвращаемое значение ненулевого значения означает, что данные успешно проверены.
Замечания
Платформа автоматически вызывается UpdateData
с bSaveAndValidate
заданным FALSE
значением, когда модальное диалоговое окно создается в реализации CDialog::OnInitDialog
по умолчанию. Вызов происходит до появления диалогового окна. Реализация по умолчанию вызывает эту функцию-член CDialog::OnOK
, для bSaveAndValidate
которого задано TRUE
значение для извлечения данных, и при успешном выполнении закрывает диалоговое окно. (Если кнопка "Отмена" нажимается в диалоговом окне, диалоговое окно закрывается без получения данных.)
CWnd::UpdateDialogControls
Вызовите эту функцию-член, чтобы обновить состояние кнопок диалога и других элементов управления в диалоговом окне или окне, использующего механизм обратного ON_UPDATE_COMMAND_UI
вызова.
void UpdateDialogControls(
CCmdTarget* pTarget,
BOOL bDisableIfNoHndler);
Параметры
pTarget
Указывает на главное окно фрейма приложения и используется для сообщений об обновлении маршрутизации.
bDisableIfNoHndler
Флаг, указывающий, должен ли элемент управления без обработчика обновления автоматически отображаться как отключенный.
Замечания
Если дочерний элемент управления не имеет обработчика, то bDisableIfNoHndler
TRUE
дочерний элемент управления будет отключен.
Платформа вызывает эту функцию-член для элементов управления в диалоговых панелях или панелях инструментов в рамках простой обработки приложения.
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
Класс