Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想在 WinAPI 中创建一个控件,它的工作方式类似于某些工具栏按钮:您可以单击该按钮,但无法获得焦点;焦点停留在拥有它的控件上。我该怎么做?
这不是一个完整的答案,因为我最终放弃了这项任务,但我发现实际上,控件必须SetFocus(Self)手动进行,而且它们通常在WM_LMOUSEDOWN处理程序中执行此操作。
SetFocus(Self)
WM_LMOUSEDOWN
因此,要像工具栏按钮那样处理点击,不这样做就足够了。
问题是,标准控件和通用框架通常会在其内部深处自动执行此操作。使用 MFC 或 VCL 等框架可能会以某种方式破解此问题,WM_LMOUSEDOWNBUTTON 控件的标准处理程序似乎执行 SetFocus,并且不能简单地跳过它,因为它也执行单击处理。