如果需要在编辑器主程序的相对位置创建一个窗口,通常需要获取主程序当前的位置坐标。
可以通过FRAppGetMainFrameWnd()及FRDocViewGetHwnd()分别获取主程序和文档视图的Hwnd。
例如在窗口右下角,创建一个宽400高200的对话窗,示例代码如下:
FR_Document frDoc = FRAppGetActiveDocOfPDDoc();
FR_DocView frDocView= FRDocGetDocView(frDoc, 0);
FR_WinPort winPort= FRDocViewGetMachinePort(frDocView);
HWND hWnd = FRDocViewGetHwnd(frDocView);
RECT windowRect;
GetWindowRect(hWnd, &windowRect);
//自己定义的窗口类CGlobalDlg
CGlobalDlg dlg(CWnd::FromHandle(hWnd));
dlg.windowRect = windowRect;
dlg.DoModal();
//移动窗口:
MoveWindow(windowRect.right-400, windowRect.bottom-200,400,200, true);
可以看到弹窗右下角和文档视图右下角已经对齐。效果如下: