Fix: header sort broken after LVM_SETUNICODEFORMAT (also map HDN_ITEMCLICKW)

The i18n commit (0aa7588) enabled LVM_SETUNICODEFORMAT(TRUE) on the online
list. That flag also flips the embedded header control to Unicode mode, so
header notifications switch from HDN_ITEMCLICKA (= HDN_ITEMCLICK in MBCS
build) to HDN_ITEMCLICKW. The existing ON_NOTIFY mapping only handles the
A version, so clicking the column header silently does nothing.

Add a parallel ON_NOTIFY for HDN_ITEMCLICKW dispatching to the same handler.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
yuanyuanxiang
2026-05-07 10:37:24 +02:00
parent 5f4fb62d20
commit b252cbbaf2

View File

@@ -739,7 +739,11 @@ BEGIN_MESSAGE_MAP(CMy2015RemoteDlg, CDialogEx)
// 启用 LVM_SETUNICODEFORMAT 后,列表实际发送的是 LVN_GETDISPINFOW即便工程是 MBCS
// MBCS 工程里 LVN_GETDISPINFO == LVN_GETDISPINFOA两者码值不同需各自映射。
ON_NOTIFY(LVN_GETDISPINFOW, IDC_ONLINE, &CMy2015RemoteDlg::OnGetDispInfoW)
// m_CList_Online 启用 LVM_SETUNICODEFORMAT(TRUE) 后,列头会发 HDN_ITEMCLICKW
// MBCS 工程里 HDN_ITEMCLICK == HDN_ITEMCLICKA码值跟 W 版不同,必须各自映射,
// 否则点表头排序失效。两条都注册到同一个处理函数。
ON_NOTIFY(HDN_ITEMCLICK, 0, &CMy2015RemoteDlg::OnHdnItemclickList)
ON_NOTIFY(HDN_ITEMCLICKW, 0, &CMy2015RemoteDlg::OnHdnItemclickList)
ON_COMMAND(ID_ONLINE_MESSAGE, &CMy2015RemoteDlg::OnOnlineMessage)
ON_COMMAND(ID_ONLINE_DELETE, &CMy2015RemoteDlg::OnOnlineDelete)
ON_COMMAND(ID_ONLINE_UPDATE, &CMy2015RemoteDlg::OnOnlineUpdate)