09/07/2015
Позиционирование AcPane в статусбаре
Я получил недавно вопрос от партнера ADN о позиционировании AcPane и сейчас я покажу пример кода, который выполняет именно эту функцию.Прежде чем перейти к коду я должен сообщить, что в отличие от предыдущих версий AutoCAD 2015 не позволяет показывать текстовые метки в статусбаре – только иконки. Ранние версии позволяли переключаться между текстовыми метками и иконками. Теперь только иконки.
Я выполнил миграцию очень старого примера по работе с статусбаром, который был в составе ObjectARX SDK 2007 до текущих AutoCAD 2014/15.
Код - C++: [Выделить]
- void testPane()
- {
- int result;
- AcApDocument *pDoc=acDocManager->curDocument();
- AcApStatusBar* pStatus = acedGetApplicationStatusBar();
- if (pStatus)
- {
- /* Получаем количество панелей*/
- int iCnt = pStatus->GetPaneCount();
- /* Получаем панель по-умолчанию для добавления нашей панели */
- AcPane* pdfltPane = pStatus->GetDefaultPane(ACSBPANE_APP_ORTHO);
- int index = pStatus->GetIndex(pdfltPane);
- int iStyle = pdfltPane->GetStyle();
- CPaneItem* pPaneItem = new CPaneItem();
- result= pPaneItem->SetToolTipText(_T("Тултип иконки панели"));
- pPaneItem->Enable(TRUE);
- result=pPaneItem->SetStyle(iStyle);
- pPaneItem->SetVisible(TRUE);
- HICON hIcon =
- (HICON)::LoadImage(_hdllInstance,
- MAKEINTRESOURCE(IDI_WORLD),
- IMAGE_ICON, 16, 16, 0);
- result=pPaneItem->SetIcon(hIcon);
- result = pStatus->Insert(index+1, pPaneItem);
- }
- pStatus->Update();
- }
Адаптированный под последние версии пример из SDK
Источник: http://adndevblog.typepad.com/autocad/2015/04/positioning-acpane-in-statusbar.html
Автор перевода: Александр Ривилис
Обсуждение: http://adn-cis.org/forum/index.php?topic=2845
Опубликовано 09.07.2015