代码之家  ›  专栏  ›  技术社区  ›  CodeFusionMobile

从自定义列表捕获wm_notify消息ctrl

  •  0
  • CodeFusionMobile  · 技术社区  · 16 年前

    我的应用程序是C++,是MFC和ATL的结合。 我在这里工作的是MFC。

    我的一个对话框中有一个自定义列表控件类,它继承了clistctrl。

    我正在尝试为lvn_itemChanged消息添加一个处理程序,以便更新对话框窗体的其余部分,这取决于列表的内容。 更具体地说,每个列表项都有一个复选框字段,我需要检测何时更改了该字段。

    问题是,我的列表没有发送消息。

    ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST_OUTPUT_CMDS, OnLvnItemchangedListOutputCmds)
    

    这是我的消息图,它工作得很好,我检测到其他消息,如lvn_uuitemchanging、nm_u click和nm_uuu releaseCapture,只需更改消息即可。

    因此,我猜想listcrl自定义类在某种程度上没有正确地发布消息。

    这个问题可以通过多种方式回答:
    1。 如何将lvn_itemChanged消息从子列表发布到其父列表(对话框)?
    2。 我是否捕捉到了正确的信息?我尝试过的大多数更新都过早地触发了更新(即,在列表中的数据更新之前),执行此操作时,对话框将根据列表的前一状态刷新。
    三。 还有什么我不该做的吗?我要求这样做只是为了让它开放。

    2 回复  |  直到 15 年前
        1
  •  0
  •   Roel    16 年前

    试着在你的对话中放一个简单的clistctrl,看看你是否能从中捕捉到信息。如果可以,您就知道问题是被重写的函数之一(可能您没有将鼠标事件转发到clistctrl或其他东西)。

        2
  •  0
  •   Community CDub    8 年前

    我把这个问题转移到 stackoverflow.com/questions/1272398

    答案贴在那里。