我被引导相信,函数指针是需要的,以分配函数的图像,将作为按钮,但我找不到任何像样的资源。
如何在C++中设置按钮菜单?例如,有用于保存、加载、退出、新建的按钮。
编辑:我并不担心这个示例的可移植性。我宁愿自己做,也不愿使用预定义的框架。它将只在Windows机器上运行。
发布于 2009-11-30 18:14:40
您需要编写一组GUI类来绘制GUI界面(按钮、文本)以及一些基本的“冲突检测”,以检测当用户按下鼠标按钮时,鼠标是否在按钮内被单击。
您不必使用函数指针,它们更方便。下面的例子也同样有效。
我会写一个按钮类,有位置,宽度,高度等,然后你可以写一个方法返回,如果鼠标被点击,不需要任何硬编码,你应该避免不惜一切代价。
如果您想要实现一个非常基本且不灵活的GUI,您可以检测到鼠标点击情况):
if ( mouseWasClicked == true )
{
if (( mouseX > startButton.minX && mouseX < startButton.maxX ) &&
( mouseY > startButton.minY && startButton.maxY < mouseY) )
{
loadGame();
}
}
这就是说,我建议在GUI系统中使用一个合适的库,比如CEGUI,它是开源的,可以与Ogre等渲染引擎一起工作。CEGUI也是可移植的,比Qt轻量级得多。如果您正在编写游戏程序,则建议您执行此操作。
不要重新发明车轮,除非你试图学习低水平的工作方式,使用一些已被证实的东西。
发布于 2009-11-30 16:50:54
基本上,您必须完成所有自己的绘图、鼠标跟踪等操作。DirectX SDK本身中有一些示例显示了带有控件的整个窗口框架。
但是,可以通过使用类似于CEGUI的东西来显着地简化这一点。疯狂的埃迪的图形用户界面提供了一个完整的框架,准备好了,可以在DirectX中进行显示和控制,包括按钮、菜单等。
发布于 2009-11-30 16:51:44
正如你的答案所暗示的那样,这不是一个语言特性--你现在处于GUI和框架领域,它们通常是不可移植的。
因此,我会推荐Qt,它是跨平台的,成熟的,文档丰富的,成熟的。还有其他的选择,还有无数的常见问题来指导你。
https://stackoverflow.com/questions/1820954
复制相似问题