我正在为我正在使用C ++工作的openGL应用程序创建一个菜单系统。我正在为一个我以前学过的东西(Delphi中的TObjects)拍摄结构。我正在拍摄的结构是
对象 - >组件 - >控件(如果是视觉/互动) - >特定项目
我正在考虑的一件事是如何控制用户的焦点。焦点将是控件的成员,并且对于例如哪些按钮将执行,键入发生等等将是有用的...似乎焦点应该是指向特定GUI项的指针,因此是派生的控制类。我需要指向的对象类型并不总是相同的。如何在控件基类中声明一个指针指向任何派生类?我试过搜索谷歌,但我认为我没有使用正确的术语,因为我只是得到了很多关于继承的解释。我不认为答案就在那里。
我想到使用的一个解决方法是Component Base类中的受保护值,我们称之为ID
。每次创建任何新对象时ID
都是唯一的,我可以将焦点指针声明为int* focus
,然后尝试从ID中回溯需要发生的事情。看起来好像有点麻烦了。
提前感谢任何建议