问题:
想实现MFC无模态对话框停靠在cad窗口指定位置处。
思路:
1、创建MFC无模态对话框。
2、ObjectArx利用选项板和无模态对话框实现窗口停靠。
解决:
1、MFC 模态对话框和无模态对话框都是基于 基类CDialogEx的,在创建显示和销毁方式上存在不同:
模态对话框时使用dlg.DoModal()调用,而非模态对话框要用create和ShowWindow函数
CTestDlg testDlg;
testDlg.Create(CTestDlg::IDD);
testDlg.ShowWindow(SW_SHOW);
注意:在调用创建显示的时候要使用全局变量。不然会出现一闪而过的情况。
2、无模态对话框窗口嵌入选项板停靠窗口
Z_uiPaletteSet* pPalette = new Z_uiPaletteSet;
pPalette->Create(_TL("测试窗口"), acedGetAcadFrame(), new CTestDlg(), CTestDlg::IDD, CRect(300, 0, 630, 300));
pPalette->EnableDocking(CBRS_ALIGN_ANY);
pPalette->RestoreControlBar();
pPalette->ShowWindow(SW_SHOW);
调整对话框属性: