Menu Item Pane Dialog Custom Embedded

1 개요

CGUIMenuItemPaneDialogCustomEmbedded는 리소스 뷰에서 만든 다이얼로그를 도킹 가능한 Pane에 삽입하고, 초기화/표시/도킹/이벤트(좌더블클릭, 우클릭 메뉴) 등을 관리하는 메뉴 아이템 클래스입니다. 다중 인스턴스 지원·컨텍스트 메뉴 선택 처리·권한 수준 제어를 포함합니다.

2 메서드 레퍼런스 (Method Reference)

2.1 권한·다중 인스턴스

2.2 Pane/다이얼로그 제어

3 사용 예제

미리보기

Dialog Property
Fig. Pane Dialog with Menu Item

위 그림에서 보이는 것과 같이 Menu 창에 "DIALOG_TEACHING" 이라는 메뉴 아이템이 있고, 이 메뉴 아이템을 더블 클릭하면 우측의 "DIALOG_TEACHING" 이라는 Dockable Pane 창이 뜨도록 하는 방법을 설명하겠습니다.


BOOL CTestProgramApp::InitInstance()
{
    CWinAppEx::InitInstance();
    SetRegistryKey(L"TestProgramApp");

    CGUIManager::PreInitialize();

    // 1) 객체 생성 및 설정
    CGUIMenuItemPaneDialogCustomEmbedded* pMenuItem = new CGUIMenuItemPaneDialogCustomEmbedded;
    pMenuItem->SetPath(L"Algorithm Manager@Imaging"); // path
    pMenuItem->SetName(L"DIALOG_TEACHING"); // name of menu item
    pMenuItem->SetIcon(ETreeItemIcon_License); // icon setting
    // 2) Set dialog
    pMenuItem->SetCustomDialog(new CDialogBoardSize);
    // 3) Register and set multi instance
    bool bMultiInstance = false;
    CGUIManager::AddMenuItem(pMenuItem, bMultiInstance);
...
}

위와 같이 등록하면 Menu 창에 메뉴 아이템이 추가되며, 이 메뉴 아이템을 더블클릭하여 다이얼로그를 띄울 수 있습니다.

3.1 메뉴 등록

프로그램의 InitInstance() 함수에서 CGUIManager::PreInitialize(); 를 호출한 후 아래 코드를 추가하여 다이얼로그 메뉴 아이템을 등록합니다.

3.2 다이얼로그 구성 및 클래스

위 코드의 2) Set dialog 부분을 보면 CDialogBoardSize라는 다이얼로그 클래스를 설정하는 모습을 볼 수 있습니다. 이 다이얼로그를 구성하는 방법은 CGUIDialogCustomEmbedded를 참고하세요.

3.3 Register and set multi instance

생성한 메뉴 아이템 객체를 CGUIManager::AddMenuItem()으로 등록해야 menu pane에 정상적으로 등록되며, 또한 CGUIManager에서 메모리 관리를 하므로 메모리 해제에 신경 쓸 필요가 없습니다.

Dialog Property
Fig. Pane Dialog with Menu Item

참고

CGUIDialogCustomEmbedded