diff --git a/TrafficMonitor/HistoryTrafficDlg.cpp b/TrafficMonitor/HistoryTrafficDlg.cpp index 54ba339..4db6c51 100644 --- a/TrafficMonitor/HistoryTrafficDlg.cpp +++ b/TrafficMonitor/HistoryTrafficDlg.cpp @@ -19,6 +19,7 @@ CHistoryTrafficDlg::CHistoryTrafficDlg(deque& history_traffics, CHistoryTrafficDlg::~CHistoryTrafficDlg() { + SaveConfig(); } @@ -42,6 +43,21 @@ void CHistoryTrafficDlg::SetTabWndSize() m_tab2_dlg.MoveWindow(&rect); } +void CHistoryTrafficDlg::LoadConfig() +{ + CIniHelper ini{ theApp.m_config_path }; + m_window_size.cx = ini.GetInt(L"histroy_traffic", L"width", -1); + m_window_size.cy = ini.GetInt(L"histroy_traffic", L"height", -1); +} + +void CHistoryTrafficDlg::SaveConfig() const +{ + CIniHelper ini{ theApp.m_config_path }; + ini.WriteInt(L"histroy_traffic", L"width", m_window_size.cx); + ini.WriteInt(L"histroy_traffic", L"height", m_window_size.cy); + ini.Save(); +} + BEGIN_MESSAGE_MAP(CHistoryTrafficDlg, CDialog) ON_WM_GETMINMAXINFO() @@ -88,6 +104,12 @@ BOOL CHistoryTrafficDlg::OnInitDialog() m_min_size.cx = rect.Width(); m_min_size.cy = rect.Height(); + //载入窗口大小设置 + LoadConfig(); + if (m_window_size.cx > 0 && m_window_size.cy > 0) + { + SetWindowPos(nullptr, 0, 0, m_window_size.cx, m_window_size.cy, SWP_NOMOVE | SWP_NOZORDER); + } return TRUE; // return TRUE unless you set the focus to a control // 异常: OCX 属性页应返回 FALSE @@ -150,9 +172,17 @@ void CHistoryTrafficDlg::OnTcnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult) void CHistoryTrafficDlg::OnSize(UINT nType, int cx, int cy) { CDialog::OnSize(nType, cx, cy); + + // TODO: 在此处添加消息处理程序代码 if (nType != SIZE_MINIMIZED && m_tab1_dlg.GetSafeHwnd() != NULL && m_tab2_dlg.GetSafeHwnd() != NULL) { SetTabWndSize(); } - // TODO: 在此处添加消息处理程序代码 + if (nType != SIZE_MINIMIZED && nType != SIZE_MAXIMIZED) + { + CRect rect; + GetWindowRect(&rect); + m_window_size = rect.Size(); + } + } diff --git a/TrafficMonitor/HistoryTrafficDlg.h b/TrafficMonitor/HistoryTrafficDlg.h index 749a767..7d77ce4 100644 --- a/TrafficMonitor/HistoryTrafficDlg.h +++ b/TrafficMonitor/HistoryTrafficDlg.h @@ -26,6 +26,7 @@ public: protected: deque& m_history_traffics; CSize m_min_size; + CSize m_window_size{}; CTabCtrl m_tab; int m_tab_selected; @@ -34,6 +35,9 @@ protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 void SetTabWndSize(); + void LoadConfig(); + void SaveConfig() const; + DECLARE_MESSAGE_MAP() public: virtual BOOL OnInitDialog(); diff --git a/TrafficMonitor/HistoryTrafficListDlg.cpp b/TrafficMonitor/HistoryTrafficListDlg.cpp index 554f45c..396564f 100644 Binary files a/TrafficMonitor/HistoryTrafficListDlg.cpp and b/TrafficMonitor/HistoryTrafficListDlg.cpp differ diff --git a/TrafficMonitor/HistoryTrafficListDlg.h b/TrafficMonitor/HistoryTrafficListDlg.h index b780a46..a82c0f4 100644 Binary files a/TrafficMonitor/HistoryTrafficListDlg.h and b/TrafficMonitor/HistoryTrafficListDlg.h differ diff --git a/TrafficMonitor/TrafficMonitor.rc b/TrafficMonitor/TrafficMonitor.rc index bc02616..cfdff9e 100644 Binary files a/TrafficMonitor/TrafficMonitor.rc and b/TrafficMonitor/TrafficMonitor.rc differ