【发布时间】:2011-04-11 14:33:07
【问题描述】:
问题来了:
我使用的 GUI 系统的工作方式如下:
小部件可以监听鼠标事件。侦听器可以消费他们正在侦听的事件,因此,他们正在侦听的小部件将不会收到该事件,即使它是为他们准备的,也只有侦听器会收到它。
问题出在这里:
滚动窗格内部有一个 ListBox。列表框可以滚动。滚动窗格也可以滚动。现在发生的事情是当我鼠标滚轮和鼠标下的小部件是列表框时,列表框和滚动窗格都会移动。我看到的唯一解决方案是滚动窗格消耗所有鼠标滚轮事件,但是 ListBox 无法滚动。
我想要的行为是让 ListBox 在获得焦点时滚动,但如果我这样做了,它将不起作用,因为例如,如果滚动窗格内的单选按钮获得焦点,我仍然希望滚动窗格滚动,它仅适用于不需要滚动条的小部件,例如文本框和列表框。
谢谢
另外,我使用的 gui 系统是我自己开发的。
【问题讨论】:
-
您正在用Java、.NET、和 C++开发一个GUI系统?
-
不,解决方案的语言对我来说不是问题,我是用 C++ 做的,但原理是一样的。
-
James 指的是您的标签,这些标签非常具有误导性
标签: c++ user-interface