diff --git a/server/2015Remote/2015RemoteDlg.cpp b/server/2015Remote/2015RemoteDlg.cpp index 438e9e2..4906e90 100644 --- a/server/2015Remote/2015RemoteDlg.cpp +++ b/server/2015Remote/2015RemoteDlg.cpp @@ -3489,10 +3489,17 @@ void CMy2015RemoteDlg::SortByColumn(int nColumn) void CMy2015RemoteDlg::OnHdnItemclickList(NMHDR* pNMHDR, LRESULT* pResult) { + *pResult = 0; + // ON_NOTIFY(HDN_ITEMCLICK, 0, ...) 的 ID=0 匹配的是 listview 内部 header 控件 ID, + // 而 m_CList_Online 和 m_CList_Message 的 header 内部 ID 都是 0,导致两边表头点击 + // 都进这个回调(老 bug)。只处理在线主机列表的 header,避免点日志列表表头串到主机排序。 + HWND hOnlineHeader = ListView_GetHeader(m_CList_Online.GetSafeHwnd()); + if (pNMHDR->hwndFrom != hOnlineHeader) { + return; + } LPNMHEADER pNMHeader = reinterpret_cast(pNMHDR); int nColumn = pNMHeader->iItem; // 获取点击的列索引 SortByColumn(nColumn); // 调用排序函数 - *pResult = 0; } // 虚拟列表数据回调 - 当列表需要显示某行某列的数据时调用