Контекстное меню TDMS

С помощью этого интерфейса можно создать контекстное меню, с использованием системных команд TDMS. А так же можно добавлять свои (потльзовательские) команды.
C++ (C++) | ![]() |
---|---|
//--------------------------------------------------------- BOOL ShowObjectContextMenu(IDispatch* pApp, IDispatch* pObj) { CComQIPtr<ITDMSApplication> pTDMSApp = pApp; CComQIPtr<ITDMSObject> pObject = pObj; if(pTDMSApp) { CComPtr<ITDMSDialogs> pDialogs; pTDMSApp->get_Dialogs(&pDialogs); if(pDialogs) { CComPtr<ITDMSContextMenu> pMenu; pDialogs->get_ContextMenu(&pMenu); if(pMenu) { if(pObject) pMenu->put_Object(pObject); pMenu->AppendSystemMenu(tdmMenuCommand); pMenu->AppendSeparator(); pMenu->AppendSystemMenu(tdmMenuNewObject); pMenu->AppendSystemMenu(tdmMenuAddLink); pMenu->AppendSystemMenu(tdmMenuAddCopy); pMenu->AppendSeparator(); pMenu->AppendSystemMenu(tdmMenuCopy); pMenu->AppendSystemMenu(tdmMenuPaste); pMenu->AppendSystemMenu(tdmMenuDuplicate); pMenu->AppendSystemMenu(tdmMenuRemove); pMenu->AppendSystemMenu(tdmMenuUpdate); pMenu->AppendSeparator(); pMenu->AppendSystemMenu(tdmMenuObjectMoveUp); pMenu->AppendSystemMenu(tdmMenuObjectMoveDown); pMenu->AppendSystemMenu(tdmMenuObjectMove); pMenu->AppendSeparator(); pMenu->AppendSystemMenu(tdmMenuSendDesktop); pMenu->AppendSystemMenu(tdmMenuCreateMessageAttach); pMenu->AppendSeparator(); pMenu->AppendSystemMenu(tdmMenuSigns); pMenu->AppendSystemMenu(tdmMenuCreateVersion); pMenu->AppendSeparator(); pMenu->AppendSystemMenu(tdmMenuPermissions); pMenu->AppendSystemMenu(tdmMenuProperties); pMenu->AppendSeparator(); pMenu->AppendUserMenu(ID_MY_COMMAND, _T("MyCommand"), 10); long ret = 0; pMenu->Show(vtMissing,vtMissing,&ret); if(ret > 0) m_pWnd->SendMessage(WM_COMMAND, (WPARAM)ret, 0); } } } return TRUE; } |