gpt4 book ai didi

c++ - 检测 CListCtrl 列大小调整

转载 作者:可可西里 更新时间:2023-11-01 10:02:25 25 4
gpt4 key购买 nike

我有一个非常简单的对话框,基本上包含一个CListCtrl,处于报告模式,带有多个列和一个标题。

现在我需要检测用户何时调整了列的大小,我希望每次用户调整列大小时调用 OnHdnChanged

除此之外,我的消息映射中还有这个,IDC_LIST1 是列表控件的 ID。

ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST1, OnItemchangedList)
ON_NOTIFY(HDN_ENDTRACKW, IDC_LIST1, OnHdnChanged)

OnHdnChanged 函数:

void CMyDlg::OnHdnChanged(NMHDR* pNMHDR, LRESULT* pResult)
{
...
*pResult = 0;
}

void CSanDlg::OnItemchangedList(NMHDR* pNMHDR, LRESULT* pResult)
{
...

OnItemchangedList 在执行时被调用,但 OnHdnChanged 不是。我认为 OnHdnChanged 没有被调用,因为标题控件的父级不是我的对话框,而是列表控件。

有人知道我能做什么吗?

最佳答案

我只是在看这个old article ,建议将 ON_NOTIFY 更改为 ON_NOTIFY(HDN_ENDTRACKW, 0, OnHdnChanged),因为 header 控件的控件 ID 似乎始终为 0。

我不知道这是否仍然正确,但值得检查。


编辑:根据回复评论进行更新。 Here我遇到的另一个建议是子类化 CListCtrl 并在那里处理通知。据推测,该处理程序可以将实际处理逻辑委托(delegate)给其父级。

关于c++ - 检测 CListCtrl 列大小调整,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56599846/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com