AutoCAD 2009 x64 SP3 Enu.
Через COM API в итерации по всем элементам, хранящимся в
MenuGroups вызываю для каждого из них экземплярный метод
MenuGroup.Unload(), тем самым выгружая все файлы меню, подгруженные в AutoCAD (в т.ч. и основной). После этой операции ожидаю, что все элементы, определённые в составе выгруженных файлов меню, автоматически исчезнут с экрана. Однако по факту исчезает не всё (см. скрины во вложении)...
Чтобы получить ожидаемый результат, я делаю принудительную перерисовку основного окна приложения, посредством вызова соответствующей функции WinAPI:
using cad = Autodesk.AutoCAD.ApplicationServices.Application;
...
[DllImport("user32.dll")]
public static extern bool UpdateWindow(IntPtr hWnd);
...
UpdateWindow(cad.MainWindow.Handle); // I do it after unloading all MenuGroup items.
Однако это не помогает. Похоже, что метод
MenuGroup.Unload() не выгружает из памяти риббоны выгружаемого меню... На мой взгляд, это неправильно. Я хочу, чтобы по выгрузке всех меню, соответственно и все их элементы исчезли с экрана (т.е. получить результат, идентичный тому, который показан на третьем скрине). Как этого добиться?