Программный эквивалент действия меню «копировать фигуру»

Я разрабатываю графическое приложение Matlab, которое отображает фигуру с дополнительными элементами пользовательского интерфейса в окне графического интерфейса. Я хотел бы добавить действие меню в меню окна графического интерфейса, которое точно дублирует запись «Редактировать | Копировать рисунок» стандартного меню окна рисунка, чтобы параметры копирования рисунка «сохраняли информацию», «принудительно белый фон» и «сопоставьте рисунок». размер экрана».

Кто-нибудь знает как это сделать?

Спасибо!

EDIT, чтобы добавить то, что сработало

Вместо того, чтобы пытаться скопировать/изменить/вставить код в обработчик меню окна рисунка, я просто вызвал его из функции меню графического интерфейса.

% --------------------------------------------------------------------
function CopyFigureMenuItem_Callback(hObject, eventdata, handles)
% hObject    handle to CopyFigureMenuItem (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
editmenufcn(handles.figure1, 'EditCopyFigure');

Почти наверняка не рассчитан на будущее и не гарантирует работу в любой будущей версии, но в R2014a он делает то, что я хочу!


person Max    schedule 04.06.2014    source источник


Ответы (1)


Тип

>>edit editmenufcn

в командной строке Matlab, чтобы увидеть все программные вызовы меню «Правка». Судя по всему, вы ищете:

editmenufcn(hFigure, 'EditCopyFigure');

Конечно, hFigure должен быть дескриптором фигуры, которую вы хотите скопировать.

Позднее редактирование

Просмотр кода может дать вам подсказки для реализации более совершенных функций. Тело функции представляет собой огромный оператор switch; поиск строки 'EditCopyFigure' даст вам фрагмент кода, который вас интересует. Однако будьте осторожны, чтобы не изменить эту функцию или сохранить изменения. :-)

Однако эта функция недокументирована и может быть изменена/удалена в более поздних версиях. Надеюсь, вас это не беспокоит.

Даже позднее редактирование

По-видимому, вышеизложенное не является ответом на вопрос. Ответом будет "Да, есть по крайней мере один, кто знает, как это сделать." :-)

person Community    schedule 04.06.2014