CMFCToolBarMenuButton 클래스
팝업 메뉴를 포함하는 도구 모음 단추입니다. 더 자세한 내용은 Visual Studio 설치의 VC\atlmfc\src\mfc 폴더에 있는 소스 코드를 참조하세요.
구문
class CMFCToolBarMenuButton : public CMFCToolBarButton
멤버
공용 생성자
속성 | 설명 |
---|---|
CMFCToolBarMenuButton::CMFCToolBarMenuButton | CMFCToolBarMenuButton 개체를 생성합니다. |
공용 메서드
보호된 메서드
속성 | 설명 |
---|---|
CMFCToolBarMenuButton::D rawDocumentIcon | 메뉴 단추에 아이콘을 그립니다. |
데이터 멤버
속성 | 설명 |
---|---|
CMFCToolBarMenuButton::m_bAlwaysCallOwnerDraw | TRUE이면 프레임워크는 단추를 그릴 때 항상 CFrameWndEx::OnDrawMenuImage를 호출합니다. |
설명
메뉴 CMFCToolBarMenuButton
, 하위 메뉴가 있는 메뉴 항목, 명령을 실행하거나 메뉴를 표시하는 단추 또는 메뉴만 표시하는 단추로 표시할 수 있습니다. 생성자의 CMFCToolbarMenuButton::CMFCToolbarMenuButton
단추와 연결된 이미지, 텍스트, 메뉴 핸들 및 명령 ID와 같은 매개 변수를 지정하여 메뉴 단추의 동작과 모양을 결정합니다.
클래스에서 파생된 사용자 지정 클래스는 CMFCToolbarMenuButton
DECLARE_SERIAL 매크로를 사용해야 합니다. DECLARE_DYNCREATE 매크로는 애플리케이션이 닫히면 오류를 생성합니다.
예시
다음 예제에서는 개체를 구성하는 CMFCToolBarMenuButton
방법을 보여 줍니다. 이 코드는 드롭다운 메뉴가 색상표 모드에 있음을 지정하고 사용자가 메뉴 모음에서 메뉴 단추를 끌 때 생성되는 분리 막대의 ID를 지정하는 방법을 보여 줍니다. 이 코드 조각은 워드 패드 샘플의 일부입니다.
pBorderType->SetMenuPaletteMode(TRUE, 2 /* Rows number */);
pBorderType->SetTearOff(ID_BORDER_TEAROFF);
상속 계층 구조
요구 사항
헤더: afxtoolbarmenubutton.h
CMFCToolBarMenuButton::CMFCToolBarMenuButton
CMFCToolBarMenuButton
개체를 생성합니다.
CMFCToolBarMenuButton();
CMFCToolBarMenuButton(const CMFCToolBarMenuButton& src);
CMFCToolBarMenuButton(
UINT uiID,
HMENU hMenu,
int iImage,
LPCTSTR lpszText=NULL,
BOOL bUserButton=FALSE);
매개 변수
src
[in] 이 CMFCToolBarMenuButton
개체에 복사할 기존 CMFCToolBarMenuButton
개체입니다.
uiID
[in] 사용자가 단추를 클릭할 때 실행할 명령의 ID입니다. 명령을 직접 실행하지 않는 메뉴 단추의 경우 또는 (UINT)-1입니다.
hMenu
[in] 메뉴에 대한 핸들입니다. 또는 단추에 메뉴가 없는 경우 NULL입니다.
iImage
[in] 단추에 대한 이미지의 인덱스입니다. 또는 이 단추에 아이콘이 없거나 uiID로 지정된 명령의 아이콘을 사용하는 경우 -1입니다. 인덱스는 애플리케이션의 각 CMFCToolBarImages
개체에 대해 동일합니다.
lpszText
[in] 도구 모음 메뉴 단추의 텍스트입니다.
bUserButton
[in] 단추에 사용자 정의 이미지가 표시되면 TRUE입니다. 단추에 uiID로 지정된 명령과 연결된 미리 정의된 이미지가 표시되면 FALSE입니다.
설명
uiID가 유효한 명령 ID인 경우 단추는 사용자가 해당 명령을 클릭할 때 해당 명령을 수행합니다. hMenu가 유효한 메뉴 핸들인 경우 단추는 도구 모음 또는 메뉴에 나타날 때 하위 메뉴에 표시되면 드롭다운 메뉴를 제공합니다. uiID와 hMenu가 모두 유효한 경우 단추는 사용자가 명령을 클릭할 때 명령을 수행하는 부분과 사용자가 메뉴를 클릭할 때 메뉴를 드롭다운하는 아래쪽 화살표가 있는 부분이 있는 분할 단추입니다. 그러나 hMenu가 유효한 경우 사용자는 단추가 메뉴에 삽입될 때 단추를 클릭하여 명령을 수행할 수 없습니다.
예시
다음 예제에서는 클래스의 개체를 생성하는 방법을 보여 줍니다 CMFCToolBarMenuButton
. 이 코드 조각은 워드 패드 샘플의 일부입니다.
CMFCToolBarMenuButton *pBorderType = new CMFCToolBarMenuButton(ID_BORDER_1, pPopup->GetSafeHmenu(),
GetCmdMgr()->GetCmdImage(ID_BORDER_1, FALSE),
_T("Borders"));
CMFCToolBarMenuButton::CompareWith
virtual BOOL CompareWith(const CMFCToolBarButton& other) const;
매개 변수
[in] 다른
Return Value
설명
CMFCToolBarMenuButton::CopyFrom
virtual void CopyFrom(const CMFCToolBarButton& src);
매개 변수
[in] src
설명
CMFCToolBarMenuButton::CreateFromMenu
Windows 메뉴 핸들에서 도구 모음 메뉴를 초기화합니다.
virtual void CreateFromMenu(HMENU hMenu);
매개 변수
hMenu
[in] 메뉴에 대한 핸들입니다.
설명
도구 모음 메뉴 단추는 드롭다운 하위 메뉴를 표시할 수 있습니다.
프레임워크는 이 메서드를 호출하여 메뉴에서 하위 메뉴의 명령을 초기화합니다.
CMFCToolBarMenuButton::CreateMenu
도구 모음 메뉴의 명령으로 구성된 메뉴를 만듭니다. 메뉴에 대한 핸들을 반환합니다.
virtual HMENU CreateMenu() const;
Return Value
성공하면 메뉴에 대한 핸들입니다. 도구 모음 메뉴 단추와 연결된 명령 목록이 비어 있으면 NULL입니다.
설명
파생 클래스에서 이 메서드를 재정의하여 메뉴가 생성되는 방식을 사용자 지정할 수 있습니다.
CMFCToolBarMenuButton::CreatePopupMenu
CMFCPopupMenu
도구 모음 메뉴를 표시하는 개체를 만듭니다.
virtual CMFCPopupMenu* CreatePopupMenu();
Return Value
도구 모음 메뉴 단추와 연결된 드롭다운 메뉴를 표시하는 개체에 대한 포인터 CMFCPopupMenu
입니다.
설명
이 메서드는 단추와 연결된 드롭다운 메뉴의 표시를 준비하기 위해 프레임워크에서 호출됩니다.
기본 구현은 새 CMFCPopupMenu
개체를 생성하고 반환합니다. 파생 형식의 CMFCPopupMenu 클래스를 사용하거나 추가 초기화를 수행하려면 이 메서드를 재정의합니다.
CMFCToolBarMenuButton::D rawDocumentIcon
메뉴 단추에 문서 아이콘을 그립니다.
void DrawDocumentIcon(
CDC* pDC,
const CRect& rectImage,
HICON hIcon);
매개 변수
pDC
[in] 디바이스 컨텍스트에 대한 포인터입니다.
rectImage
[in] 이미지 경계 사각형의 좌표입니다.
hIcon
[in] 아이콘에 대한 핸들입니다.
설명
이 메서드는 문서 아이콘을 가져와서 rectImage로 지정된 영역 가운데에 있는 메뉴 단추에 그립니다.
CMFCToolBarMenuButton::EnableQuickCustomize
void EnableQuickCustomize();
설명
CMFCToolBarMenuButton::HasButton
virtual BOOL HasButton() const;
Return Value
설명
CMFCToolBarMenuButton::HaveHotBorder
virtual BOOL HaveHotBorder() const;
Return Value
설명
CMFCToolBarMenuButton::IsBorder
virtual BOOL IsBorder() const;
Return Value
설명
CMFCToolBarMenuButton::IsClickedOnMenu
BOOL IsClickedOnMenu() const;
Return Value
설명
CMFCToolBarMenuButton::IsQuickMode
BOOL IsQuickMode();
Return Value
설명
CMFCToolBarMenuButton::GetCommands
도구 모음 메뉴의 명령 목록에 대한 읽기 전용 액세스를 제공합니다.
const CObList& GetCommands() const;
Return Value
CMFCToolBarButton 클래스 개체의 컬렉션을 포함하는 CObList 클래스 개체에 대한 const 참조입니다.
설명
도구 모음 메뉴 단추는 하위 메뉴를 표시할 수 있습니다. 생성자의 하위 메뉴 또는 CMFCToolBarMenuButton::CreateFromMenu의 명령 목록을 메뉴에 대한 핸들(HMENU)로 제공할 수 있습니다. 메뉴는 CMFCToolBarButton 클래스에서 파생되고 내부 CObList
개체에 저장된 개체 목록으로 변환됩니다. 이 메서드를 호출하여 이 목록에 액세스할 수 있습니다.
CMFCToolBarMenuButton::GetImageRect
단추 이미지의 경계 사각형을 검색합니다.
void GetImageRect(CRect& rectImage);
매개 변수
rectImage
[out] 이미지 경계 사각형의 좌표를 받는 개체에 대한 참조 CRect
입니다.
CMFCToolBarMenuButton::GetPaletteRows
메뉴가 색상표 모드인 경우 드롭다운 메뉴의 행 수를 반환합니다.
int GetPaletteRows() const;
Return Value
색상표의 행 수입니다.
설명
메뉴 단추가 색상표 모드로 설정되면 메뉴 항목은 행 수가 제한된 여러 열에 표시됩니다. 행 수를 가져오려면 이 메서드를 호출합니다. 색상표 모드를 사용하거나 사용하지 않도록 설정하고 CMFCToolBarMenuButton::SetMenuPaletteMode를 사용하여 행 수를 지정할 수 있습니다.
CMFCToolBarMenuButton::GetPopupMenu
단추의 드롭다운 메뉴를 나타내는 CMFCPopupMenu 클래스 개체에 대한 포인터를 반환합니다.
CMFCPopupMenu* GetPopupMenu() const;
Return Value
프레임워크가 도구 모음 메뉴 단추의 하위 메뉴를 그릴 때 생성된 CMFCPopupMenu 클래스 개체에 대한 포인터입니다. 하위 메뉴가 표시되지 않으면 NULL입니다.
설명
도구 모음 메뉴 단추에 드롭다운 메뉴가 표시되면 이 단추는 메뉴를 나타내는 CMFCPopupMenu 클래스 개체를 만듭니다. 개체에 대한 포인터를 가져오려면 이 메서드를 호출합니다 CMFCPopupMenu
. 반환된 포인터는 일시적이고 사용자가 드롭다운 메뉴를 닫을 때 유효하지 않으므로 저장해서는 안 됩니다.
CMFCToolBarMenuButton::IsDroppedDown
팝업 메뉴가 현재 표시되는지 여부를 나타냅니다.
virtual BOOL IsDroppedDown() const;
Return Value
도구 모음 메뉴 단추에 하위 메뉴가 표시되면 TRUE입니다. 그렇지 않으면 FALSE입니다.
CMFCToolBarMenuButton::IsEmptyMenuAllowed
메뉴 항목에 빈 하위 메뉴가 표시되는지 여부를 지정합니다.
virtual BOOL IsEmptyMenuAllowed() const;
Return Value
프레임워크가 하위 메뉴가 비어 있는 경우에도 현재 선택한 메뉴 항목에서 하위 메뉴를 여는 경우 TRUE입니다. 그렇지 않으면 FALSE입니다.
설명
프레임워크는 사용자가 현재 선택한 메뉴 항목에서 하위 메뉴를 열려고 할 때 이 메서드를 호출합니다. 하위 메뉴가 비어 있고 IsEmptyMenuAllowed
FALSE를 반환하면 하위 메뉴가 열리지 않습니다.
기본 구현은 FALSE를 반환합니다. 이 동작을 사용자 지정하려면 이 메서드를 재정의합니다.
CMFCToolBarMenuButton::IsExclusive
단추가 배타적 모드인지 여부를 나타냅니다.
virtual BOOL IsExclusive() const;
Return Value
단추가 배타적 모드에서 작동하는 경우 TRUE입니다. 그렇지 않으면 FALSE입니다.
설명
사용자가 단추에 대한 팝업 메뉴를 연 다음 다른 도구 모음 또는 메뉴 단추 위로 마우스 포인터를 이동하면 단추가 단독 모드가 아닌 한 팝업 메뉴가 닫힙니다.
기본 구현은 항상 FALSE를 반환합니다. 단독 모드를 설정하려는 경우 파생 클래스에서 이 메서드를 재정의합니다.
CMFCToolBarMenuButton::IsMenuPaletteMode
드롭다운 메뉴가 색상표 모드인지 여부를 확인합니다.
BOOL IsMenuPaletteMode() const;
Return Value
색상표 모드를 사용하도록 설정하면 TRUE이고, 그렇지 않으면 FALSE입니다.
설명
메뉴 단추가 색상표 모드로 설정된 경우 메뉴 항목은 행 수가 제한된 여러 열에 표시됩니다. 행 수를 가져오려면 이 메서드를 호출합니다. CMFCToolBarMenuButton::SetMenuPaletteMode를 호출하여 색상표 모드를 사용하거나 사용하지 않도록 설정할 수 있습니다.
CMFCToolBarMenuButton::IsTearOffMenu
드롭다운 메뉴에 분리 막대가 있는지 여부를 나타냅니다.
virtual BOOL IsTearOffMenu() const;
Return Value
도구 모음 메뉴 단추에 분리 막대가 있으면 TRUE입니다. 그렇지 않으면 FALSE입니다.
설명
분리 기능을 사용하도록 설정하고 분리 막대 ID를 설정하려면 CMFCToolBarMenuButton::SetTearOff를 호출합니다.
CMFCToolBarMenuButton::m_bAlwaysCallOwnerDraw
단추를 그릴 때 프레임워크가 항상 CFrameWndEx::OnDrawMenuImage를 호출하는지 여부를 지정합니다.
static BOOL m_bAlwaysCallOwnerDraw;
설명
이 멤버 변수가 TRUE로 설정되면 단추는 항상 CFrameWndEx::OnDrawMenuImage 메서드를 호출하여 단추에 이미지를 표시합니다. FALSE이면 m_bAlwaysCallOwnerDraw
이미지가 미리 정의된 경우 단추 자체가 이미지를 그립니다. 그렇지 않으면 호출 OnDrawMenuImage
합니다.
CMFCToolBarMenuButton::OnAfterCreatePopupMenu
virtual void OnAfterCreatePopupMenu();
설명
CMFCToolBarMenuButton::OnBeforeDrag
virtual BOOL OnBeforeDrag() const;
Return Value
설명
CMFCToolBarMenuButton::OnCalculateSize
virtual SIZE OnCalculateSize(
CDC* pDC,
const CSize& sizeDefault,
BOOL bHorz);
매개 변수
[in] pDC
[in] sizeDefault
[in] bHorz
Return Value
설명
CMFCToolBarMenuButton::OnCancelMode
virtual void OnCancelMode();
설명
CMFCToolBarMenuButton::OnChangeParentWnd
virtual void OnChangeParentWnd(CWnd* pWndParent);
매개 변수
[in] pWndParent
설명
CMFCToolBarMenuButton::OnClick
virtual BOOL OnClick(
CWnd* pWnd,
BOOL bDelay = TRUE);
매개 변수
[in] pWnd
[in] bDelay
Return Value
설명
CMFCToolBarMenuButton::OnClickMenuItem
사용자가 드롭다운 메뉴에서 항목을 선택할 때 프레임워크에서 호출됩니다.
virtual BOOL OnClickMenuItem();
Return Value
프레임워크가 기본 메뉴 항목 처리를 계속해야 하는 경우 FALSE입니다. 그렇지 않으면 TRUE입니다. 기본 구현은 항상 FALSE를 반환합니다.
설명
사용자가 메뉴 항목을 클릭하면 프레임워크는 해당 항목과 연결된 명령을 실행합니다.
메뉴 항목 처리를 사용자 지정하려면 클래스에서 파생된 클래스에서 CMFCToolBarMenuButton
재정 OnClickMenuItem
의합니다. 또한 CFrameWndEx::OnShowPopupMenu를 재정의하고 특수 처리가 필요한 메뉴 단추를 파생 클래스의 인스턴스로 바꿔야 합니다.
CMFCToolBarMenuButton::OnContextHelp
virtual BOOL OnContextHelp(CWnd* pWnd);
매개 변수
[in] pWnd
Return Value
설명
CMFCToolBarMenuButton::OnDraw
virtual void OnDraw(
CDC* pDC,
const CRect& rect,
CMFCToolBarImages* pImages,
BOOL bHorz = TRUE,
BOOL bCustomizeMode = FALSE,
BOOL bHighlight = FALSE,
BOOL bDrawBorder = TRUE,
BOOL bGrayDisabledButtons = TRUE);
매개 변수
[in] pDC
[in] rect
[in] pImages
[in] bHorz
[in] bCustomizeMode
[in] bHighlight
[in] bDrawBorder
[in] bGrayDisabledButtons
설명
CMFCToolBarMenuButton::OnDrawOnCustomizeList
virtual int OnDrawOnCustomizeList(
CDC* pDC,
const CRect& rect,
BOOL bSelected);
매개 변수
[in] pDC
[in] rect
[in] bSelected
Return Value
설명
CMFCToolBarMenuButton::OpenPopupMenu
사용자가 도구 모음 메뉴 단추의 드롭다운 메뉴를 열 때 프레임워크에서 호출됩니다.
virtual BOOL OpenPopupMenu(CWnd* pWnd=NULL);
매개 변수
pWnd
[in] 드롭다운 메뉴 명령을 받는 창을 지정합니다. 도구 모음 메뉴 단추에 부모 창이 있는 경우에만 NULL일 수 있습니다.
Return Value
CMFCPopupMenu 클래스 개체가 만들어지고 성공적으로 열렸을 때 TRUE이고, 그렇지 않으면 FALSE입니다.
설명
이 함수는 사용자가 도구 모음 메뉴 단추에서 드롭다운 메뉴를 열 때 프레임워크에서 호출됩니다.
CMFCToolBarMenuButton::ResetImageToDefault
virtual void ResetImageToDefault();
설명
CMFCToolBarMenuButton::SaveBarState
virtual void SaveBarState();
설명
프레임워크는 끌어서 놓기 작업의 결과로 도구 모음 단추를 만들 때 이 메서드를 호출합니다. 이 메서드는 최상위 팝업 메뉴의 CMFCPopupMenu::SaveState 메서드를 호출하여 팝업 메뉴의 부모 단추가 해당 메뉴를 다시 만듭니다.
CMFCToolBarMenuButton::Serialize
virtual void Serialize(CArchive& ar);
매개 변수
[in] ar
설명
CMFCToolBarMenuButton::SetACCData
리본 요소에 대한 내게 필요한 옵션 데이터를 설정합니다.
virtual BOOL SetACCData(
CWnd* pParent,
CAccessibilityData& data);
매개 변수
pParent
리본 요소에 대한 부모 창입니다.
data
리본 요소에 대한 내게 필요한 옵션 데이터입니다.
Return Value
항상 TRUE를 반환합니다.
설명
기본적으로 이 메서드는 리본 요소에 대한 접근성 데이터를 설정하고 항상 TRUE를 반환합니다. 내게 필요한 옵션 데이터를 설정하고 성공 또는 실패를 나타내는 값을 반환하려면 이 메서드를 재정의합니다.
CMFCToolBarMenuButton::SetMenuOnly
유효한 명령 ID와 하위 메뉴가 모두 있는 경우 단추가 메뉴 단추로 그려지는지 또는 분할 단추로 그릴지 여부를 지정합니다.
void SetMenuOnly(BOOL bMenuOnly);
매개 변수
bMenuOnly
[in] 유효한 명령 ID와 하위 메뉴가 모두 있는 경우 이 단추를 메뉴 단추로 표시하려면 TRUE이고, 유효한 명령 ID와 하위 메뉴가 모두 있는 경우 이 단추를 분할 단추로 표시하는 FALSE입니다.
설명
일반적으로 도구 모음 메뉴 단추에 하위 메뉴와 명령 ID가 모두 있는 경우 메뉴는 주 단추와 연결된 아래쪽 화살표 단추가 있는 분할 단추로 나타납니다. 이 메서드를 호출하고 bMenuOnly 가 TRUE이면 단추 대신 단추에 아래쪽 화살표가 있는 단일 메뉴 단추로 나타납니다. 사용자가 두 모드에서 화살표를 클릭하면 하위 메뉴가 열리고 사용자가 두 모드에서 단추의 화살표가 아닌 부분을 클릭하면 프레임워크가 명령을 실행합니다.
CMFCToolBarMenuButton::SetMenuPaletteMode
드롭다운 메뉴가 색상표 모드인지 여부를 지정합니다.
void SetMenuPaletteMode(
BOOL bMenuPaletteMode=TRUE,
int nPaletteRows=1);
매개 변수
bMenuPaletteMode
[in] 드롭다운 메뉴가 색상표 모드인지 여부를 지정합니다.
nPaletteRows
[in] 색상표의 행 수입니다.
설명
색상표 모드에서는 모든 메뉴 항목이 여러 열 색상표로 표시됩니다. nPaletteRows를 사용하여 행 수를 지정합니다.
CMFCToolBarMenuButton::SetMessageWnd
void SetMessageWnd(CWnd* pWndMessage);
매개 변수
[in] pWndMessage
설명
CMFCToolBarMenuButton::SetRadio
선택 시 라디오 단추 스타일 아이콘을 표시하도록 도구 모음 메뉴 단추를 설정합니다.
virtual void SetRadio();
설명
메뉴 단추를 선택하는 동안 그려지면 CMFCVisualManager::OnDrawMenuCheck를 호출하여 확인 표시 아이콘을 그립니다. 기본적으로 OnDrawMenuCheck
현재 시각적 개체 관리자가 메뉴 단추에 확인란 스타일 확인 표시를 그릴 것을 요청합니다. 이 메서드를 호출한 후 현재 시각적 개체 관리자는 대신 메뉴 단추에 라디오 단추 스타일 확인 표시를 그립니다. 이 변경 작업은 실행 취소할 수 없습니다.
이 메서드를 호출하고 메뉴 단추가 현재 표시되면 새로 고쳐집니다.
CMFCToolBarMenuButton::SetTearOff
드롭다운 메뉴에 대한 분리 막대의 ID를 지정합니다.
virtual void SetTearOff(UINT uiBarID);
매개 변수
uiBarID
[in] 새 분리 막대 ID를 지정합니다.
설명
이 메서드를 호출하여 사용자가 메뉴 모음에서 메뉴 단추를 끌 때 생성되는 분리 막대의 ID를 지정합니다. uiBarID 매개 변수가 0이면 사용자가 메뉴 단추를 떼어낼 수 없습니다.
CWinAppEx::EnableTearOffMenus를 호출하여 애플리케이션에서 분리 메뉴 기능을 사용하도록 설정합니다.
참고 항목
계층 구조 차트
클래스
CMFCToolBarButton 클래스
CMFCToolBar 클래스
CMFCPopupMenu 클래스