【发布时间】:2021-10-07 11:47:48
【问题描述】:
我想从 listCtrl 的标头中捕获 HDN_TRACK 消息,但从未收到通知。
我测试了HDN_BEGINTRACK 和HDN_ENDTRACK,它们运行良好。
我还将消息映射的 Control Id 更改为 IDC_TEST_LIST 和 0,没有区别 - 它仍然无法正常工作。
我搜索了很多论坛,但我找不到任何解决方案。
这是我的测试代码。
BEGIN_MESSAGE_MAP(CDlgTest, CDialogEx)
//ON_NOTIFY(HDN_BEGINTRACK, 0, &CDlgTest::OnTrackListTest) // WORKING!!
//ON_NOTIFY(HDN_ENDTRACK, 0, &CDlgTest::OnTrackListTest) // WORKING!!
//ON_NOTIFY(HDN_TRACK, IDC_TEST_LIST, &CDlgTest::OnTrackListTest) // NOT WORKING
ON_NOTIFY(HDN_TRACK, 0, &CDlgTest::OnTrackListTest) // NOT WORKING
END_MESSAGE_MAP()
void CDlgTest::OnTrackListLog(NMHDR* pNMHDR, LRESULT* pResult)
{
LPNMHEADER phdr = reinterpret_cast<LPNMHEADER>(pNMHDR);
// TODO: Add your control notification handler code here
AfxMessageBox(L"Hello!!!"); // >>>>>>>>>>> NOT showing up
*pResult = 0;
}
class CDlgTest : public CDialogEx {
public:
afx_msg void OnTrackListLog(NMHDR* pNMHDR, LRESULT* pResult);
}
我附加了一些我访问过的论坛:
- https://forums.codeguru.com/showthread.php?314900-HOW-detect-the-column-is-resize-in-CListCtrl
- http://rsdn.org/forum/mfc/1081554.all
接下来我可以尝试什么?
【问题讨论】: