我正在尝试使用 WTL 跟踪几个 TrackBars(又名滑块,都在同一个窗口内)之间的焦点变化。
到目前为止,我已经为每个滑块尝试了一个 MESSAGE_HANDLER(WM_SETFOCUS, func) 和一个 COMMAND_HANDLER(IDC_SLIDERn, WM_SETFOCUS, func) ,但没有成功。
msdn 上的 about trackbar controls 页面显示:“WM_SETFOCUS 重新绘制 trackbar 窗口。” ..
编辑:我现在已经从我自己的类中派生了滑块,在该类中我使用 MESSAGE_HANDLER 处理 WM_SETFOCUS 并通过将消息发布到父窗口并将 m_hWnd 作为 lParam 来通知父窗口,这样我就可以在父窗口中检查哪个滑块获得了焦点。
这行得通,但是有没有更优雅的方法来做到这一点?