我正在设计一个图形应用程序,我决定编写自己的菜单。我希望这个菜单能够独立于平台。目前,我的菜单主要由多个按钮组成。我的问题涉及单击按钮时处理事件。我的困境是,一个按钮“知道”它所处的环境。在我看来,如果有一些较大的代码创建按钮并处理鼠标事件,则可能会出现某种类型的switch语句。 switch语句必须根据任何唯一定义的点击按钮来调用适当的操作。C++自定义GUI按钮问题
我想避免这个switch语句。我的第一个想法是让每个按钮保持一个函数指针,当它被点击时它用来盲目地启动正确的动作。这将消除任何按钮特定的代码。然而,它让我感到一个按钮应该包含任何特定于上下文的信息(比如函数指针)。我相当缺乏经验,我想知道这是否被认为是糟糕的设计。无论如何,我怎样才能设计我的菜单,而不需要某种类型的switch语句,并被认为是良好的OOP设计?我想听听您的首选解决方案。
在此先感谢!
谢谢,这完美地工作。 – Scott 2009-04-12 17:27:59