Тема: Немодальные диалоги (ARX)
Я создаю свой диалог (например IDD_DLG1) а также класс диалога (например СDlg1), затем в одной из своих команд вызываю:
// .....
CDlg1 MyDlg;
MyDlg.DoModal();
// ......
Это все прекрасно работает.
Далее пробую сделать этот диалог немодальным:
// ....
CDialog MyDlg1;
MyDlg1.Create(IDD_DLG1,NULL /*???*/);
MyDlg1.ShowWindow(SW_SHOW);
// ....
Это получается уже не столь прекрасно:
если в качестве второго параметра у CDialog::Create
я ставлю NULL (это параметр pParentWnd) то должно быть(цитирую MSDN)):
If pParentWnd is NULL, the dialog box will be created with its parent or owner window set to the main application window.
Результат: этот участок кода проходит нормально, но окно диалога не показывается.
Если же в качестве pParentWnd ставить HWND окна AutoCADа (полученного через adsw_acadMainWnd()), то
после ShowWindow получаю сообщение об ошибке (exception) и система закрывает AutoCAD.
Вопрос:
1) Что же нужно ставить в качестве родительского окна немодального диалога?
2) Каким образом создавать немодальные диалоги в AutoCAdе(если описанные выше способ неверен)?
3) Каким образом еще можно решить проблему диалогового ввода данных с возможностью выбора некторых примитивов в окне чертежа в процессе работы диалога (подобное делает стандартный диалог создания Hatch, когда требуется указать объекты контура штриховки)?