Context Menu에 새로운 메뉴 추가
VIZZARD Context Menu에 커스텀 메뉴를 추가하고, 처리하는 방법을 소개
SHControl 구현 절차 기준으로 Plugin 기본 코드를 구성합니다.
메뉴에 할당할 ID를 정의합니다.
private int MENU_VIEW_SP = 8000;
private int MENU_VIEW_ID = 8001;
private int MENU_MODEL_SP = 8002;
private int MENU_MODEL_ID = 8003;
VIZZARD 프로그램이 구동 완료되면, 아래 이벤트에 새로운 Context Menu를 추가합니다.
private void Connector_OnInitializedAppEvent(object sender, EventArgs e)
{
// 뷰어 영역에서 단일 모델 선택 시 메뉴 추가
Connector.AddContextMenu(MENU_VIEW_SP, CONTEXTMENU_TYPE.VIEW_SINGLE, CONTEXTMENU_ITEMTYPE.SEPARATOR, "", true);
Connector.AddContextMenu(MENU_VIEW_ID, CONTEXTMENU_TYPE.VIEW_SINGLE, CONTEXTMENU_ITEMTYPE.CONTEXTMENU, "커스텀 메뉴 #1", true);
// 뷰어 영역에서 복수 모델 선택 시 메뉴 추가
Connector.AddContextMenu(MENU_MODEL_SP, CONTEXTMENU_TYPE.VIEW_MULTI, CONTEXTMENU_ITEMTYPE.SEPARATOR, "", true);
Connector.AddContextMenu(MENU_MODEL_ID, CONTEXTMENU_TYPE.VIEW_MULTI, CONTEXTMENU_ITEMTYPE.CONTEXTMENU, "커스텀 메뉴 #2", true);
}
메뉴 선택 시, 처리를 위한 이벤트를 추가합니다.
private void Connector_OnInitializedAppEvent(object sender, EventArgs e)
{
// 뷰어 영역에서 단일 모델 선택 시 메뉴 추가
Connector.AddContextMenu(MENU_VIEW_SP, CONTEXTMENU_TYPE.VIEW_SINGLE, CONTEXTMENU_ITEMTYPE.SEPARATOR, "", true);
Connector.AddContextMenu(MENU_VIEW_ID, CONTEXTMENU_TYPE.VIEW_SINGLE, CONTEXTMENU_ITEMTYPE.CONTEXTMENU, "커스텀 메뉴 #1", true);
// 뷰어 영역에서 복수 모델 선택 시 메뉴 추가
Connector.AddContextMenu(MENU_MODEL_SP, CONTEXTMENU_TYPE.VIEW_MULTI, CONTEXTMENU_ITEMTYPE.SEPARATOR, "", true);
Connector.AddContextMenu(MENU_MODEL_ID, CONTEXTMENU_TYPE.VIEW_MULTI, CONTEXTMENU_ITEMTYPE.CONTEXTMENU, "커스텀 메뉴 #2", true);
// 이벤트 추가
Connector.OnContextMenuClickEvent += Connector_OnContextMenuClickEvent;
}
이벤트 발생 시, 아래와 같이 선택된 메뉴를 구분합니다.
private void Connector_OnContextMenuClickEvent(object sender, ContextMenuClickEventArgs e)
{
if(e.ID == MENU_VIEW_ID)
{
// 커스텀 메뉴 #1
}
else if(e.ID == MENU_MODEL_ID)
{
// 커스텀 메뉴 #2
}
}
메뉴가 추가된 화면
Figure 1 : 메뉴 화면
Last modified: 04 3월 2024