diff --git a/client/ChatManager.cpp b/client/ChatManager.cpp index cd1a405..54235fc 100644 --- a/client/ChatManager.cpp +++ b/client/ChatManager.cpp @@ -245,14 +245,17 @@ INT_PTR CALLBACK CChatManager::ChatDialogProc(HWND hDlg, UINT uMsg, WPARAM wPara return TRUE; } if (LOWORD(wParam) == IDC_BUTTON_END) { - // 被控端主动结束交谈:关闭本地聊天窗口 - SendMessage(hDlg, WM_USER + 1, NULL, NULL); + // 被控端关闭聊天窗口:仅隐藏对话框,会话保持。关闭交谈始终由服务端发起, + // 服务端继续发消息时 OnReceive 会用 SW_RESTORE 重新弹出本对话框。 + ShowWindow(hDlg, SW_HIDE); return TRUE; } break; case WM_CLOSE: - return 0; + // X 关闭按钮:仅隐藏对话框(与「结束交谈」一致),关闭交谈始终由服务端发起 + ShowWindow(hDlg, SW_HIDE); + return TRUE; case WM_USER + 1: pThis->m_hWnd = NULL;