Win32 ListBox WNDProc从未打电话

Win32 ListBox WNDPROC never called

本文关键字:打电话 WNDProc ListBox Win32      更新时间:2023-10-16

我正在围绕Win32控件/对话框/Windows编写一个相当简单的包装器。

我遇到的问题是ListBox和Combobox的行为似乎有所不同。

在我继承的基本小部件类中,我覆盖了对控件的现有wndproc,然后在新的wndproc中处理消息,主要促进它们以boost ::信号事件。

问题是,虽然ComboBox的WNDProc接收CBN_SELCHANGE - 如预期的 - ListBox的WNDProc未接收LBN_SELCHANGE命令。

我意识到拥有该控件的对话框/窗口可能会收到此功能,但是我已经沿着这个兔子的洞走了,感觉就像是一个非常整洁的解决方案。我需要退回并让控件的所有者处理WM_Command消息(从那里将其推广到控件本身上的事件)。

这是一项学习练习,所以请不要提醒我有关MFC或对此的价值发表评论。

通知消息通常发送给控件的父。大概所有的窗口(即父窗口和控件都使用)都在使用相同的窗口过程?在这种情况下,通常的解决方案是:在窗口过程中的"通知处理程序"中,检查通知是否来自当前窗口。如果这样做,请举办活动;如果它没有将消息重新发送回该控件(将作为事件提出)。