COleIPFrameWndEx 클래스
COleIPFrameWndEx 클래스는 MFC를 지 원하는 하는 OLE 컨테이너를 구현 합니다.응용 프로그램의 내부 프레임 창 클래스를 파생 해야는 COleIPFrameWndEx 에서 파생 클래스에는 COleIPFrameWnd클래스.
class COleIPFrameWndEx : public COleIPFrameWnd
멤버
Public 메서드
이름 |
설명 |
---|---|
|
|
|
|
|
|
|
|
한 창이 다른 창의 왼쪽에 도킹합니다. |
|
|
|
|
|
|
|
현재 표시 되는 팝업 메뉴에 대 한 포인터를 반환합니다. |
|
|
|
창이 로드 된 때 지정 된 프레임 창의 리소스 ID를 반환 합니다. |
|
|
|
|
|
|
|
프레임 창에 연결 된 메뉴 모음 개체에 대 한 포인터를 반환 합니다. |
|
|
|
분리 된 상태에 있는 창에서 개체 목록을 반환 합니다. |
|
단추에 대 한 도구 설명을 표시 하기 전에 프레임 워크에 의해 호출 됩니다. |
|
|
|
메뉴 모음 개체에 대 한 포인터 인지 여부를 확인 NULL. |
|
|
|
(재정의 COleIPFrameWnd::LoadFrame.) |
|
|
|
|
|
활성 메뉴 WM_DESTROY 메시지를 처리할 때 프레임 워크에 의해 호출 됩니다. |
|
(재정의 CFrameWnd::OnCmdMsg.) |
|
메뉴 항목과 연결 된 이미지를 그릴 때 프레임 워크에 의해 호출 됩니다. |
|
프레임 워크에서 호출 하면는 CMFCPopupMenu개체 WM_PAINT 메시지를 처리 합니다. |
|
프레임 워크에서 호출 하면는 CMFCToolBarButton프로세스 WM_NCHITTEST 메시지 개체입니다. |
|
|
|
응용 프로그램의 주 프레임 창 및 인쇄 미리 보기 모드를 설정 하려면이 멤버 함수를 호출 합니다.(재정의 CFrameWnd::OnSetPreviewMode.) |
|
|
|
|
|
팝업 메뉴가 활성화 될 때 프레임 워크에 의해 호출 됩니다. |
|
분리 된 막대가 있는 메뉴 활성화 될 때 프레임 워크에 의해 호출 됩니다. |
|
|
|
(재정의 COleIPFrameWnd::PreTranslateMessage.) |
|
(재정의 COleIPFrameWnd::RecalcLayout.) |
|
|
|
프레임 창에 속한 창에 지정 된 도킹 상태를 적용 합니다. |
|
더미 항목을 검색 하 고 지정 된 사용자 정의 항목을 대체 하 여 도구 모음 개체를 수정 합니다. |
|
|
Protected 메서드
이름 |
설명 |
---|---|
컨트롤 사용자 정의 도구 모음에 할당 된 Id 범위를 초기화 하기 위해 프레임 워크에 알립니다. |
예제
다음 예제에서는 방법 서브 클래스의 인스턴스는 COleIPFrameWndEx 클래스 및 통해 해당 메서드를 따르 소.따르 소 서 하는 방법의 예제를 보여 줍니다.는 OnDestory 메서드를의 RepositionFrame 메서드는 RecalcLayout 메서드를 및 CalcWindowRect 메서드.이 코드의 일부인의 워드 패드 샘플.
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