ADN Open CIS
Сообщество программистов Autodesk в СНГ

24/03/2014

Как получить текст из окна командной строки AutoCAD с использованием ObjectARX

ObjectARX API содержит функцию acedGetAcadTextCmdLine() которая возвращает доступ к CWnd MFC окна командной строки. Окно командной строки содержит множество дочерних окон (в зависимости от версии AutoCAD) так что нам понадобится пройтись по ним, чтобы найти текст, так что будем использовать Win32 API для итерации по окнам и получения текста.

Как-то так…

Код - C++: [Выделить]
  1. // получаем контейнер CWnd командной строки
  2. CWnd* pDock = (CWnd*)acedGetAcadTextCmdLine();   
  3. // получаем дочернее окно
  4. CWnd* pChild = pDock->GetWindow(GW_CHILD);   
  5. // цикл пока есть дочерние окна
  6. while (pChild!=NULL)
  7. {       
  8.   CString str;       
  9.   // получаем текст из окна
  10.   pChild->GetWindowText(str);       
  11.   // если нет никакого текста
  12.   if (str.GetLength() <= 0)
  13.     pChild = pChild->GetNextWindow();   
  14.   else
  15.   {
  16.     // показываем текст
  17.     MessageBox(NULL, str);
  18.     break;
  19.   }
  20. }

 

Источник: http://adndevblog.typepad.com/autocad/2012/06/how-to-obtain-the-command-line-window-text-using-objectarx.html

Обсуждение: http://adn-cis.org/forum/index.php?topic=631

Опубликовано 24.03.2014
Отредактировано 24.03.2014 в 21:04:57