Класс COleIPFrameWndEx
Класс COleIPFrameWndEx
реализует OLE-контейнер с поддержкой MFC. Необходимо создать встроенный класс окна фрейма для приложения, производный от класса COleIPFrameWndEx
, вместо наследования его от класса COleIPFrameWnd.
Дополнительные сведения см. в исходном коде, расположенном в папке VC\atlmfc\src\mfc установки Visual Studio.
Синтаксис
class COleIPFrameWndEx : public COleIPFrameWnd
Участники
Открытые методы
Имя | Описание |
---|---|
COleIPFrameWndEx::AddDockSite | |
COleIPFrameWndEx::AddPane | |
COleIPFrameWndEx::AdjustDockingLayout | |
COleIPFrameWndEx::D ockPane | |
COleIPFrameWndEx::D ockPaneLeftOf | Закрепляет одну область слева от другой области. |
COleIPFrameWndEx::EnableAutoHidePanes | |
COleIPFrameWndEx::EnableDocking | |
COleIPFrameWndEx::EnablePaneMenu | |
COleIPFrameWndEx::GetActivePopup | Возвращает указатель на отображаемое в данный момент контекстное меню. |
COleIPFrameWndEx::GetContainerFrameWindow | |
COleIPFrameWndEx::GetDefaultResId | Возвращает заданный при загрузке окна идентификатор ресурса для окна фрейма. |
COleIPFrameWndEx::GetDockFrame | |
COleIPFrameWndEx::GetDockingManager | |
COleIPFrameWndEx::GetMainFrame | |
COleIPFrameWndEx::GetMenuBar | Возвращает указатель на объект строки меню, прикрепленное к окну фрейма. |
COleIPFrameWndEx::GetPane | |
COleIPFrameWndEx::GetTearOffBars | Возвращает список объектов области, которые находятся в состоянии перемещения. |
COleIPFrameWndEx::GetToolbarButtonToolTipText | Вызывается платформой перед отображением подсказки для кнопки. |
COleIPFrameWndEx::InsertPane | |
COleIPFrameWndEx::IsMenuBarAvailable | Определяет, что указатель на объект строки меню не имеет значение NULL . |
COleIPFrameWndEx::IsPointNearDockSite | |
COleIPFrameWndEx::LoadFrame | (Переопределяет COleIPFrameWnd::LoadFrame .) |
COleIPFrameWndEx::OnCloseDockingPane | |
COleIPFrameWndEx::OnCloseMiniFrame | |
COleIPFrameWndEx::OnClosePopupMenu | Вызывается платформой, когда активное всплывающее меню обрабатывает сообщение WM_DESTROY. |
COleIPFrameWndEx::OnCmdMsg | (Переопределяет CFrameWnd::OnCmdMsg .) |
COleIPFrameWndEx::OnDrawMenuImage | Вызывается платформой при отрисовке изображения, связанного с пунктом меню. |
COleIPFrameWndEx::OnDrawMenuLogo | Вызывается платформой при обработке сообщения WM_PAINT объектом CMFCPopupMenu. |
COleIPFrameWndEx::OnMenuButtonToolHitTest | Вызывается платформой при обработке сообщения WM_NCHITTEST объектом CMFCToolBarButton. |
COleIPFrameWndEx::OnMoveMiniFrame | |
COleIPFrameWndEx::OnSetPreviewMode | Вызов этой функции-члена переключает окно главного фрейма приложения в режим предварительного просмотра и из него. (Переопределяет CFrameWnd::OnSetPreviewMode.) |
COleIPFrameWndEx::OnShowCustomizePane | |
COleIPFrameWndEx::OnShowPanes | |
COleIPFrameWndEx::OnShowPopupMenu | Вызывается платформой при активации всплывающего меню. |
COleIPFrameWndEx::OnTearOffMenu | Вызывается платформой при активации меню с перемещаемой панелью. |
COleIPFrameWndEx::P aneFromPoint | |
COleIPFrameWndEx::P reTranslateMessage | (Переопределяет COleIPFrameWnd::PreTranslateMessage .) |
COleIPFrameWndEx::RecalcLayout | (Переопределяет COleIPFrameWnd::RecalcLayout .) |
COleIPFrameWndEx::RemovePaneFromDockManager | |
COleIPFrameWndEx::SetDockState | Применяет указанное состояние закрепления к областям, принадлежащим окну фрейма. |
COleIPFrameWndEx::SetupToolbarMenu | Изменяет объект панели инструментов путем поиска фиктивных элементов и замены их указанными элементами, определяемыми пользователем. |
COleIPFrameWndEx::ShowPane | |
COleIPFrameWndEx::WinHelpA | Вызывается платформой для запуска приложения WinHelp или контекстной справки. |
Защищенные методы
Имя | Описание |
---|---|
COleIPFrameWndEx::InitUserToobars | Дает платформе команду инициализировать диапазон идентификаторов элементов управления, которые назначены панелям инструментов, определяемым пользователем. |
Пример
В следующем примере кода показано, как создать подкласс экземпляра класса COleIPFrameWndEx
и переопределить его методы. В примере демонстрируется переопределение методов OnDestory
, RepositionFrame
, RecalcLayout
и CalcWindowRect
. Этот фрагмент кода входит в состав примера Word Pad.
void CInPlaceFrame::OnDestroy()
{
m_wndToolBar.DestroyWindow();
m_wndFormatBar.DestroyWindow();
COleIPFrameWndEx::OnDestroy();
}
void CInPlaceFrame::RepositionFrame(LPCRECT lpPosRect, LPCRECT lpClipRect)
{
CRect rectNew = lpPosRect;
rectNew.left -= HORZ_TEXTOFFSET;
rectNew.top -= VERT_TEXTOFFSET;
m_wndResizeBar.BringWindowToTop();
COleIPFrameWndEx::RepositionFrame(&rectNew, lpClipRect);
CWnd *pWnd = GetActiveView();
if (pWnd != NULL)
pWnd->BringWindowToTop();
m_wndRulerBar.BringWindowToTop();
}
void CInPlaceFrame::RecalcLayout(BOOL bNotify)
{
if (m_wndResizeBar.m_hWnd != NULL)
m_wndResizeBar.BringWindowToTop();
COleIPFrameWndEx::RecalcLayout(bNotify);
CWnd *pWnd = GetActiveView();
if (pWnd != NULL)
pWnd->BringWindowToTop();
if (m_wndRulerBar.m_hWnd != NULL)
m_wndRulerBar.BringWindowToTop();
// at least 12 pt region plus ruler if it exists
CDisplayIC dc;
CSize size;
size.cy = MulDiv(12, dc.GetDeviceCaps(LOGPIXELSY), 72) + 1;
size.cx = dc.GetDeviceCaps(LOGPIXELSX) / 4; // 1/4"
size.cx += HORZ_TEXTOFFSET; //adjust for offset
size.cy += VERT_TEXTOFFSET;
if (m_wndRulerBar.m_hWnd != NULL && m_wndRulerBar.IsVisible())
{
CRect rect;
m_wndRulerBar.GetWindowRect(&rect);
size.cy += rect.Height();
}
m_wndResizeBar.SetMinSize(size);
}
void CInPlaceFrame::CalcWindowRect(LPRECT lpClientRect, UINT nAdjustType)
{
COleIPFrameWndEx::CalcWindowRect(lpClientRect, nAdjustType);
}
Иерархия наследования
Требования
Заголовок: afxoleipframewndex.h
COleIPFrameWndEx::AddDockSite
void AddDockSite();
Замечания
COleIPFrameWndEx::AddPane
BOOL AddPane(
CBasePane* pControlBar,
BOOL bTail = TRUE);
Параметры
[in] pControlBar
[in] bTail
Возвращаемое значение
Замечания
COleIPFrameWndEx::AdjustDockingLayout
virtual void AdjustDockingLayout(HDWP hdwp = NULL);
Параметры
[in] hdwp
Замечания
COleIPFrameWndEx::D ockPane
void DockPane(
CBasePane* pBar,
UINT nDockBarID = 0,
LPCRECT lpRect = NULL);
Параметры
[in] pBar
[in] nDockBarID
[in] lpRect
Замечания
COleIPFrameWndEx::D ockPaneLeftOf
Закрепляет одну область слева от другой области.
BOOL DockPaneLeftOf(
CPane* pBar,
CPane* pLeftOf);
Параметры
pBar
[in] Указатель на панель для док-станции.
pLeftOf
[in] Указатель на область, которая служит источником.
Возвращаемое значение
Возвращает значение TRUE, если операция выполнена успешно. В противном случае возвращает значение FALSE.
Замечания
Вызовите этот метод, чтобы закрепить несколько объектов панели в предопределенном порядке. Этот метод закрепляет область, указанную pBar слева от области, указанной pLeftOf.
COleIPFrameWndEx::EnableAutoHidePanes
BOOL EnableAutoHidePanes(DWORD dwDockStyle);
Параметры
[in] dwDockStyle
Возвращаемое значение
Замечания
COleIPFrameWndEx::EnableDocking
BOOL EnableDocking(DWORD dwDockStyle);
Параметры
[in] dwDockStyle
Возвращаемое значение
Замечания
COleIPFrameWndEx::EnablePaneMenu
void EnablePaneMenu(
BOOL bEnable,
UINT uiCustomizeCmd,
const CString& strCustomizeLabel,
UINT uiViewToolbarsMenuEntryID,
BOOL bContextMenuShowsToolbarsOnly = FALSE,
BOOL bViewMenuShowsToolbarsOnly = FALSE);
Параметры
[in] bEnable
[in] uiCustomizeCmd
[in] strCustomizeLabel
[in] uiViewToolbarsMenuEntryID
[in] bContextMenuShowsToolbarsOnly
[in] bViewMenuShowsToolbarsOnly
Замечания
COleIPFrameWndEx::GetActivePopup
Возвращает указатель на отображаемое в настоящее время всплывающее меню.
CMFCPopupMenu* GetActivePopup() const;
Возвращаемое значение
Указатель на активное всплывающее меню; в противном случае ЗНАЧЕНИЕ NULL.
Замечания
Используйте этот метод для получения указателя на объект класса CMFCPopupMenu, отображаемый в данный момент.
COleIPFrameWndEx::GetContainerFrameWindow
COleCntrFrameWndEx* GetContainerFrameWindow();
Возвращаемое значение
Замечания
COleIPFrameWndEx::GetDefaultResId
Возвращает идентификатор ресурса меню, указанный при загрузке окна фрейма.
UINT GetDefaultResId() const;
Возвращаемое значение
Возвращает идентификатор ресурса меню или 0, если окно фрейма не имеет строки меню.
Замечания
Вызовите эту функцию, чтобы получить идентификатор ресурса, указанный при загрузке ресурса меню в окне фрейма.COleIPFrameWndEx::LoadFrame
COleIPFrameWndEx::GetDockFrame
CFrameWnd* GetDockFrame();
Возвращаемое значение
Замечания
COleIPFrameWndEx::GetDockingManager
CDockingManager* GetDockingManager();
Возвращаемое значение
Замечания
COleIPFrameWndEx::GetMainFrame
CFrameWnd* GetMainFrame();
Возвращаемое значение
Замечания
COleIPFrameWndEx::GetMenuBar
Возвращает указатель на объект строки меню, прикрепленное к окну фрейма.
const CMFCMenuBar* GetMenuBar() const;
Возвращаемое значение
Указатель на объект строки меню.
Замечания
Эта функция используется для извлечения указателя на объект строки меню, принадлежащий объекту COleIPFrameWndEx
.
COleIPFrameWndEx::GetPane
CBasePane* GetPane(UINT nID);
Параметры
[in] nID
Возвращаемое значение
Замечания
COleIPFrameWndEx::GetTearOffBars
Возвращает список объектов области, которые находятся в состоянии перемещения.
const CObList& GetTearOffBars() const;
Возвращаемое значение
Ссылка на CObList
объект, содержащий коллекцию указателей на объекты, производные от класса CBasePane.
Замечания
Объект COleIPFrameWndEx
поддерживает коллекцию отключаемых меню в виде списка объектов, производных от класса CBasePane. Используйте этот метод для получения ссылки на этот список.
COleIPFrameWndEx::GetToolbarButtonToolTipText
Вызывается платформой перед отображением подсказки для кнопки.
virtual BOOL GetToolbarButtonToolTipText(
CMFCToolBarButton* pButton,
CString& strTTText);
Параметры
pButton
[in] Указатель на кнопку.
strTTText
[in] Указатель на текст подсказки.
Возвращаемое значение
Реализация по умолчанию возвращает значение 0.
Замечания
Переопределите эту функцию, чтобы настроить отображение подсказок на кнопках панели инструментов.
COleIPFrameWndEx::InitUserToobars
Задает диапазон идентификаторов элементов управления, которые платформа назначает определяемым пользователем панелям инструментов.
void InitUserToolbars(
LPCTSTR lpszRegEntry,
UINT uiUserToolbarFirst,
UINT uiUserToolbarLast)
Параметры
lpszRegEntry
[in] Запись реестра, в которой библиотека хранит параметры панели инструментов пользователя.
uiUserToolbarFirst
[in] Идентификатор элемента управления, назначенный первой пользовательской панели инструментов.
uiUserToolbarLast
[in] Идентификатор элемента управления, назначенный последней пользовательской панели инструментов.
Замечания
Эта функция позволяет инициализировать диапазон идентификаторов элементов управления для назначения панели инструментов, которые пользователи определяют динамически. Параметры uiUserToolbarFirst и uiUserToolbarLast определяют диапазон разрешенных идентификаторов элементов управления панели инструментов. Чтобы отключить создание определяемых пользователем панелей инструментов, задайте для uiUserToolbarFirst или uiUserToolbarLast значение -1.
COleIPFrameWndEx::InsertPane
BOOL InsertPane(
CBasePane* pControlBar,
CBasePane* pTarget,
BOOL bAfter = TRUE);
Параметры
[in] pControlBar
[in] pTarget
[in] bAfter
Возвращаемое значение
Замечания
COleIPFrameWndEx::IsMenuBarAvailable
Определяет, является ли указатель на объект строки меню не NULL
BOOL IsMenuBarAvailable() const;
Возвращаемое значение
Возвращает ненулевое значение, если в окне фрейма есть строка меню; в противном случае возвращает значение 0.
Замечания
Вызовите этот метод, чтобы определить, поддерживает ли окно фрейма указатель, отличный от NULL, к объекту строки меню.
COleIPFrameWndEx::IsPointNearDockSite
BOOL IsPointNearDockSite(
CPoint point,
DWORD& dwBarAlignment,
BOOL& bOuterEdge) const;
Параметры
[in] точка
[in] dwBarAlignment
[in] bOuterEdge
Возвращаемое значение
Замечания
COleIPFrameWndEx::LoadFrame
virtual BOOL LoadFrame(
UINT nIDResource,
DWORD dwDefaultStyle = WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE,
CWnd* pParentWnd = NULL,
CCreateContext* pContext = NULL);
Параметры
[in] nIDResource
[in] dwDefaultStyle
[in] pParentWnd
[in] pContext
Возвращаемое значение
Замечания
COleIPFrameWndEx::OnCloseDockingPane
virtual BOOL OnCloseDockingPane(CDockablePane*);
Параметры
[входной] CDockablePane*
Возвращаемое значение
Замечания
COleIPFrameWndEx::OnCloseMiniFrame
virtual BOOL OnCloseMiniFrame(CPaneFrameWnd*);
Параметры
[входной] CPaneFrameWnd*
Возвращаемое значение
Замечания
COleIPFrameWndEx::OnClosePopupMenu
Вызывается платформой, когда активное всплывающее меню обрабатывает сообщение WM_DESTROY.
virtual void OnClosePopupMenu(CMFCPopupMenu* pMenuPopup);
Параметры
pMenuPopup
[in] Указатель на объект всплывающего меню.
Замечания
Переопределите этот метод для получения уведомлений от CMFCPopupMenu
объектов при обработке WM_DESTROY сообщений.
COleIPFrameWndEx::OnCmdMsg
virtual BOOL OnCmdMsg(
UINT nID,
int nCode,
void* pExtra,
AFX_CMDHANDLERINFO* pHandlerInfo);
Параметры
[in] nID
[in] nCode
[in] pExtra
[in] pHandlerInfo
Возвращаемое значение
Замечания
COleIPFrameWndEx::OnDrawMenuImage
Вызывается платформой при рисовании изображения, связанного с элементом меню.
virtual BOOL OnDrawMenuImage(
CDC* pDC,
const CMFCToolBarMenuButton* pMenuButton,
const CRect& rectImage);
Параметры
pDC
[in] Указатель на контекст устройства.
pMenuButton
[in] Указатель на кнопку меню.
rectImage
[in] Изображение, связанное с элементом меню.
Возвращаемое значение
Реализация по умолчанию ничего не делает и возвращает значение 0.
Замечания
Переопределите этот метод, если вы хотите настроить рисунок изображения для элементов меню, принадлежащих строке меню, принадлежащей производной объекту COleIPFrameWndEx
.
COleIPFrameWndEx::OnDrawMenuLogo
Вызывается платформой при обработке сообщения WM_PAINT объектом CMFCPopupMenu.
virtual void OnDrawMenuLogo(
CDC* pDC,
CMFCPopupMenu* pMenu,
const CRect& rectLogo);
Параметры
pDC
[in] Указатель на контекст устройства.
pMenu
[in] Указатель на всплывающий объект меню.
rectLogo
[in] Указатель на логотип для отображения.
Замечания
Переопределите этот метод, чтобы отобразить логотип во всплывающем меню, связанном с строкой меню, принадлежащей производной объекту COleIPFrameWndEx
. Реализация по умолчанию не выполняет никаких действий.
COleIPFrameWndEx::OnMenuButtonToolHitTest
Вызывается платформой, когда объект CMFCToolBarButtonобрабатывает сообщение WM_NCHITTEST.
virtual BOOL OnMenuButtonToolHitTest(
CMFCToolBarButton* pButton,
TOOLINFO* pTI);
Параметры
[in] указатель pButton на кнопку меню.
[out] указатель pTI на структуру TOOLINFO
.
Возвращаемое значение
Реализация по умолчанию ничего не делает и возвращает значение 0. Реализация должна возвращать ненулевое значение, если оно заполняет параметр pTI .
Замечания
Переопределите этот метод, чтобы указать сведения о подсказках о определенном элементе меню.
COleIPFrameWndEx::OnMoveMiniFrame
virtual BOOL OnMoveMiniFrame(CWnd* pFrame);
Параметры
[in] pFrame
Возвращаемое значение
Замечания
COleIPFrameWndEx::OnSetPreviewMode
virtual void OnSetPreviewMode(
BOOL bPreview,
CPrintPreviewState* pState);
Параметры
[in] bPreview
[in] pState
Замечания
COleIPFrameWndEx::OnShowCustomizePane
virtual BOOL OnShowCustomizePane(
CMFCPopupMenu* pMenuPane,
UINT uiToolbarID);
Параметры
[in] pMenuPane
[in] uiToolbarID
Возвращаемое значение
Замечания
COleIPFrameWndEx::OnShowPanes
virtual BOOL OnShowPanes(BOOL bShow);
Параметры
[in] bShow
Возвращаемое значение
Замечания
COleIPFrameWndEx::OnShowPopupMenu
Вызывается платформой при отображении всплывающего меню.
virtual BOOL OnShowPopupMenu(CMFCPopupMenu* pMenuPopup);
Параметры
pMenuPopup
[in] Указатель на отображаемое всплывающее меню.
Возвращаемое значение
Реализация по умолчанию ничего не делает и возвращает ненулевое значение. Реализация должна возвращать значение FALSE, если всплывающее меню не может отображаться.
Замечания
Переопределите этот метод, чтобы настроить отображение всплывающего меню. Например, можно изменить кнопки меню на кнопки цветового меню или инициализировать отключаемые полосы.
COleIPFrameWndEx::OnTearOffMenu
Вызывается платформой, когда пользователь выбирает меню с слезоточивой панелью.
virtual BOOL OnTearOffMenu(
CMFCPopupMenu* pMenuPopup,
CPane* pBar);
Параметры
pMenuPopup
[in] Указатель на всплывающее меню, выбранное пользователем.
pBar
[in] Указатель на область, в которую размещается меню.
Возвращаемое значение
TRUE, если требуется, чтобы платформа активизировала всплывающее меню; в противном случае ЗНАЧЕНИЕ FALSE. Значение по умолчанию — TRUE.
Замечания
Переопределите эту функцию, если вы хотите настроить настройку отключаемой панели.
COleIPFrameWndEx::P aneFromPoint
CBasePane* PaneFromPoint(
CPoint point,
int nSensitivity,
bool bExactBar,
CRuntimeClass* pRTCBarType) const;
CBasePane* PaneFromPoint(
CPoint point,
int nSensitivity,
DWORD& dwAlignment,
CRuntimeClass* pRTCBarType) const;
Параметры
[in] точка
[in] nSensitivity
[in] bExactBar
[in] pRTCBarType
[in] dwAlignment
Возвращаемое значение
Замечания
COleIPFrameWndEx::P reTranslateMessage
virtual BOOL PreTranslateMessage(MSG* pMsg);
Параметры
[in] pMsg
Возвращаемое значение
Замечания
COleIPFrameWndEx::RecalcLayout
virtual void RecalcLayout(BOOL bNotify = TRUE);
Параметры
[in] bNotify
Замечания
COleIPFrameWndEx::RemovePaneFromDockManager
void RemovePaneFromDockManager(
CBasePane* pControlBar,
BOOL bDestroy,
BOOL bAdjustLayout,
BOOL bAutoHide,
CBasePane* pBarReplacement);
Параметры
[in] pControlBar
[in] bDesk
[in] bAdjustLayout
[in] bAutoHide
[in] pBarReplacement
Замечания
COleIPFrameWndEx::SetDockState
Применяет указанное состояние док-станции к панелям, принадлежащим окну фрейма.
void SetDockState(const CDockState& state);
Параметры
state
[in] Указывает состояние док-станции.
Замечания
Используйте эту функцию, чтобы указать новое состояние закрепления для панелей, принадлежащих объекту COleIPFrameWndEx
.
COleIPFrameWndEx::SetupToolbarMenu
Изменяет объект панели инструментов путем поиска фиктивных элементов и замены их указанными элементами, определяемыми пользователем.
void SetupToolbarMenu(
CMenu& menu,
const UINT uiViewUserToolbarCmdFirst,
const UINT uiViewUserToolbarCmdLast);
Параметры
меню
[in] Ссылка на объект CMenu для изменения.
uiViewUserToolbarCmdFirst
[in] Указывает первую определяемую пользователем команду.
uiViewUserToolbarCmdLast
[in] Указывает последнюю определяемую пользователем команду.
Замечания
COleIPFrameWndEx::ShowPane
void ShowPane(
CBasePane* pBar,
BOOL bShow,
BOOL bDelay,
BOOL bActivate);
Параметры
[in] pBar
[in] bShow
[in] bDelay
[in] bActivate
Замечания
COleIPFrameWndEx::WinHelpA
Вызывается платформой для запуска приложения WinHelp или контекстной справки.
virtual void WinHelp(
DWORD dwData,
UINT nCmd = HELP_CONTEXT);
Параметры
[in] dwData указывает данные, необходимые для типа справки, указанной nCmd.
nCmd
[in] Указывает тип запрошенной справки. Список возможных значений и их влияние на параметр dwData см . в функции WinHelp в пакете SDK для Windows.
Замечания
См. также
Диаграмма иерархии
Классы
Класс CFrameWndEx
Класс CMDIFrameWndEx