Тема: Как получить построчный лог окна команд?
Требуется получать со стороны удаленных пользователей инфу о возникающих ошибках, для отладки. Так как сами они не всегда внятно могут объяснить, что после чего делали, а главное, что автокад им отвечал, эту информацию надо получать программно из окна истории команд. Это удалось сделать путем перебора окон:
CWnd *wTextCmdLine = acedGetAcadDockCmdLine(); CString s1; acutPrintf("FirstString\n"); acutPrintf("SecondString\n"); if (wTextCmdLine) { CWnd *wCmd = wTextCmdLine->GetWindow(GW_CHILD); do { wCmd->GetWindowText(s1); if (-1!=s1.Find("FirstString")) break; } while (wCmd = wCmd->GetNextWindow()); AfxMessageBox(s1); }
Проблема осталась в том, что в полученной строке эти строки отображаются без разделителей, "FirstStringSecondString", как будто бы "\n" в acutPrintf() не передавали. И в отладчике студии все команды тоже в одну строку видны, без разделителей.
С другой стороны, если нажать F2, то лог команд отображается построчно в новом окне, т.е. где-то он хранится в нормальном виде.
Как бы его в этом построчном виде получить?
Попытка привести к CEdit* не удалась.
После цикла пишем:
CEdit *pEdit = (CEdit *) CWnd::FromHandle(wCmd->m_hWnd); int lineCount = pEdit->GetLineCount();
И получаем, что lineCount равен нулю.
Уважаемые знатоки, надеюсь на вашу помощь, и что миссия выполнима :).
Автокад 2000, студия 2003.