Main Content

마우스 클릭을 가려진 객체로 전달하기

이 예제에서는 마우스 클릭을 가려진 객체로 전달하는 방법을 보여줍니다.

그래픽스 객체의 PickableParts 속성을 none으로 설정하여 객체가 마우스 클릭을 캡처하지 못하도록 합니다. 이 예제는 다음을 수행합니다.

  • on 또는 off의 값을 가지는 hold를 호출하는, 좌표축에 대한 상황별 메뉴를 정의합니다.

  • 어떤 데이터 객체도 마우스 클릭을 캡처할 수 없는 그래프를 생성하여 모든 마우스 오른쪽 버튼 클릭이 좌표축으로 전달되고 상황별 메뉴를 불러올 수 있도록 합니다.

axesHoldCM 함수는 상황별 메뉴를 정의하고 핸들을 반환합니다.

function cmHandle = axesHoldCM
   cmHandle = uicontextmenu;
   uimenu(cmHandle,'Label','hold on','Callback',@holdOn);
   uimenu(cmHandle,'Label','hold off','Callback',@holdOff);
end
function holdOn(~,~)
   fig = gcbf;
   ax = fig.CurrentAxes;
   hold(ax,'on')
end
function holdOff(~,~)
   fig = gcbf;
   ax = fig.CurrentAxes;
   hold(ax,'off')
end

막대 그래프를 생성하고 Bar 객체의 PickableParts 속성을 설정합니다.

bar(1:20,'PickableParts','none')

현재 좌표축에 대한 상황별 메뉴를 생성합니다.

ax = gca;
ax.ContextMenu = axesHoldCM

그래프의 막대를 마우스 오른쪽 버튼으로 클릭하고 좌표축의 상황별 메뉴를 표시합니다.