簡體   English   中英

Win32 ListBox WNDPROC從未調用

[英]Win32 ListBox WNDPROC never called

我正在圍繞Win32控件/對話框/窗口編寫一個相當簡單的包裝器。

我的問題是ListBox和ComboBox的行為似乎完全不同。

在我繼承的基本Widget類中,我為控件覆蓋了現有的WNDPROC,然后在新的WNDPROC中處理消息,主要是將它們提升為boost :: signal事件。

問題是,盡管ComboBox的WndProc收到了CBN_SELCHANGE(如預期的那樣),但ListBox的WndProc卻沒有收到LBN_SELCHANGE命令。

我意識到擁有控件的對話框/窗口很可能會收到此消息,但是我已經有點麻煩了,感覺就像是一種非常簡潔的解決方案。 需要我退出並讓控件的所有者處理WM_COMMAND消息(並從那里將其提升為控件本身的事件)。

這是一項學習練習,所以請不要讓我想起MFC,也不要評論這樣做的價值。

通知消息通常發送給控件的父級。 假定所有窗口(即父窗口和控件)都使用相同的窗口過程? 在這種情況下,通常的解決方案是:在窗口過程的通知處理程序中,檢查通知是否來自當前窗口。 如果有,請引發一個事件; 如果它沒有將消息重新發送回它來自的控件(它將作為事件引發)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM