VIZZARD Document Help

Context Menu에 새로운 메뉴 추가

VIZZARD Context Menu에 커스텀 메뉴를 추가하고, 처리하는 방법을 소개

  1. SHControl 구현 절차 기준으로 Plugin 기본 코드를 구성합니다.

  2. 메뉴에 할당할 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;
  1. 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); }
  1. 메뉴 선택 시, 처리를 위한 이벤트를 추가합니다.

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; }
  1. 이벤트 발생 시, 아래와 같이 선택된 메뉴를 구분합니다.

private void Connector_OnContextMenuClickEvent(object sender, ContextMenuClickEventArgs e) { if(e.ID == MENU_VIEW_ID) { // 커스텀 메뉴 #1 } else if(e.ID == MENU_MODEL_ID) { // 커스텀 메뉴 #2 } }
  1. 메뉴가 추가된 화면

Figure 1 : 메뉴 화면

VIZZARD_DEV_CONTEXTMENU_03.png
    Last modified: 04 3월 2024