|
@@ -273,14 +273,17 @@ BOOL CWxObject::Attach2MainWnd(CWnd *pMainWnd, BOOL bLoginWnd )
|
|
|
}
|
|
|
|
|
|
// 注意:MoveWindow/SetWindowPos使用的是父窗口的坐标,如果父窗口为NULL,则使用的是屏幕坐标;
|
|
|
- //::MoveWindow(hWxWnd, rcDisplay.left, rcDisplay.top, rcDisplay.Width(), rcDisplay.Height(), true);
|
|
|
- ::SetWindowPos(hWxWnd, NULL, rcDisplay.left, rcDisplay.top, rcDisplay.Width(), rcDisplay.Height(), WM_WINDOWPOSCHANGING|SWP_SHOWWINDOW | SWP_HIDEWINDOW);
|
|
|
-
|
|
|
+ ::MoveWindow(hWxWnd, rcDisplay.left, rcDisplay.top, rcDisplay.Width(), rcDisplay.Height(), true);
|
|
|
+ //::SetWindowPos(hWxWnd, NULL, rcDisplay.left, rcDisplay.top, rcDisplay.Width(), rcDisplay.Height(), WM_WINDOWPOSCHANGING|SWP_SHOWWINDOW | SWP_HIDEWINDOW);
|
|
|
+ if (!bLoginWnd)
|
|
|
+ ::PostMessage(hWxWnd, WM_SYSCOMMAND, SC_MAXIMIZE, NULL);
|
|
|
}
|
|
|
else
|
|
|
{//最大化显示并固定;
|
|
|
// 注意:MoveWindow/SetWindowPos使用的是父窗口的坐标,如果父窗口为NULL,则使用的是屏幕坐标;
|
|
|
::MoveWindow(hWxWnd, rcDisplay.left, rcDisplay.top, rcDisplay.Width(), rcDisplay.Height(), true);
|
|
|
+ if (!bLoginWnd)
|
|
|
+ ::PostMessage(hWxWnd, WM_SYSCOMMAND, SC_MAXIMIZE, NULL);
|
|
|
//::SetWindowPos(hWxWnd, NULL, rcDisplay.left, rcDisplay.top, rcDisplay.Width(), rcDisplay.Height(), WM_MOVE| WM_SIZE| WM_WINDOWPOSCHANGING| WM_NCCALCSIZE | SWP_SHOWWINDOW);
|
|
|
}
|
|
|
|
|
@@ -296,13 +299,21 @@ BOOL CWxObject::Attach2MainWnd(CWnd *pMainWnd, BOOL bLoginWnd )
|
|
|
|
|
|
BOOL CWxObject::DetachWxWnd()
|
|
|
{
|
|
|
- if (m_hWxMainWnd)
|
|
|
- ::SetParent(m_hWxMainWnd, NULL);
|
|
|
+ if (m_bAttached)
|
|
|
+ {
|
|
|
+ //if (m_hWxMainWnd && GetParent(m_hWxMainWnd))
|
|
|
+ if (m_hWxMainWnd ) // 使用GetParent可能返回NULL
|
|
|
+ ::SetParent(m_hWxMainWnd, NULL);
|
|
|
+
|
|
|
+ if (m_hWxLoginWnd )
|
|
|
+ ::SetParent(m_hWxLoginWnd, NULL);
|
|
|
|
|
|
- if (m_hWxLoginWnd)
|
|
|
- ::SetParent(m_hWxLoginWnd, NULL);
|
|
|
+ m_bAttached = FALSE;
|
|
|
+#ifdef _DEBUG
|
|
|
+ WriteTextLog(_T("DetachWxWnd"));
|
|
|
+#endif
|
|
|
+ }
|
|
|
|
|
|
- m_bAttached = FALSE;
|
|
|
return 0;
|
|
|
}
|
|
|
|