28/01/2021
Как определить включен ли режим крупных кнопок панелей инструментов?
Вопрос: Как определить включен ли режим крупных кнопок панелей инструментов?
Ответ: Для этой цели следует воспользоваться COM/ActiveX моделью AutoCAD. С помощью ObjectARX/C++ это будет выглядеть так:
Код - C++: [Выделить]
- //-----------------------------------------------------------------------------
- //----- acrxEntryPoint.cpp
- //-----------------------------------------------------------------------------
- #include "StdAfx.h"
- #include <acadi.h>
- #include "resource.h"
- //-----------------------------------------------------------------------------
- #define szRDS _RXST("")
- //-----------------------------------------------------------------------------
- //----- ObjectARX EntryPoint
- class CGetLargeButtonsApp : public AcRxArxApp {
- public:
- CGetLargeButtonsApp() : AcRxArxApp() {}
- virtual AcRx::AppRetCode On_kInitAppMsg(void* pkt) {
- AcRx::AppRetCode retCode = AcRxArxApp::On_kInitAppMsg(pkt);
- return (retCode);
- }
- virtual AcRx::AppRetCode On_kUnloadAppMsg(void* pkt) {
- AcRx::AppRetCode retCode = AcRxArxApp::On_kUnloadAppMsg(pkt);
- return (retCode);
- }
- virtual void RegisterServerComponents() { }
- static void RivilisGetButtonSize()
- {
- CComQIPtr<IAcadApplication> acad(acedGetAcadWinApp()->GetIDispatch(TRUE));
- if (acad) {
- CComQIPtr<IAcadMenuGroups> menuGroups;
- if (acad->get_MenuGroups(&menuGroups) == S_OK)
- {
- CComQIPtr<IAcadMenuGroup> menuACAD;
- if (menuGroups->Item(_variant_t("ACAD"), &menuACAD) == S_OK)
- {
- CComQIPtr<IAcadToolbars> toolbars;
- if (menuACAD->get_Toolbars(&toolbars) == S_OK)
- {
- VARIANT_BOOL bLargeButtons = VARIANT_FALSE;
- if (toolbars->get_LargeButtons(&bLargeButtons) == S_OK)
- {
- acutPrintf(_T("\nКнопки панелей инструментов: %s"),
- bLargeButtons == VARIANT_TRUE ? _T("Крупные") : _T("Мелкие"));
- }
- }
- }
- }
- }
- }
- };
- //-----------------------------------------------------------------------------
- IMPLEMENT_ARX_ENTRYPOINT(CGetLargeButtonsApp)
- ACED_ARXCOMMAND_ENTRY_AUTO(CGetLargeButtonsApp, Rivilis, GetButtonSize, GetButtonSize, ACRX_CMD_MODAL, NULL)
Автор: Александр Ривилис
Опубликовано 28.01.2021
Опубликовано 28.01.2021