首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在C++/directx中设置菜单系统(可单击按钮)?

如何在C++/directx中设置菜单系统(可单击按钮)?
EN

Stack Overflow用户
提问于 2009-11-30 16:46:12
回答 3查看 5.4K关注 0票数 3

我被引导相信,函数指针是需要的,以分配函数的图像,将作为按钮,但我找不到任何像样的资源。

如何在C++中设置按钮菜单?例如,有用于保存、加载、退出、新建的按钮。

编辑:我并不担心这个示例的可移植性。我宁愿自己做,也不愿使用预定义的框架。它将只在Windows机器上运行。

EN

回答 3

Stack Overflow用户

发布于 2009-11-30 18:14:40

您需要编写一组GUI类来绘制GUI界面(按钮、文本)以及一些基本的“冲突检测”,以检测当用户按下鼠标按钮时,鼠标是否在按钮内被单击。

您不必使用函数指针,它们更方便。下面的例子也同样有效。

我会写一个按钮类,有位置,宽度,高度等,然后你可以写一个方法返回,如果鼠标被点击,不需要任何硬编码,你应该避免不惜一切代价。

如果您想要实现一个非常基本且不灵活的GUI,您可以检测到鼠标点击情况):

代码语言:javascript
运行
复制
if ( mouseWasClicked == true )
{
    if (( mouseX > startButton.minX && mouseX < startButton.maxX ) && 
        ( mouseY > startButton.minY && startButton.maxY < mouseY) )
    {
        loadGame();
    }
}

这就是说,我建议在GUI系统中使用一个合适的库,比如CEGUI,它是开源的,可以与Ogre等渲染引擎一起工作。CEGUI也是可移植的,比Qt轻量级得多。如果您正在编写游戏程序,则建议您执行此操作。

不要重新发明车轮,除非你试图学习低水平的工作方式,使用一些已被证实的东西。

票数 5
EN

Stack Overflow用户

发布于 2009-11-30 16:50:54

基本上,您必须完成所有自己的绘图、鼠标跟踪等操作。DirectX SDK本身中有一些示例显示了带有控件的整个窗口框架。

但是,可以通过使用类似于CEGUI的东西来显着地简化这一点。疯狂的埃迪的图形用户界面提供了一个完整的框架,准备好了,可以在DirectX中进行显示和控制,包括按钮、菜单等。

票数 4
EN

Stack Overflow用户

发布于 2009-11-30 16:51:44

正如你的答案所暗示的那样,这不是一个语言特性--你现在处于GUI和框架领域,它们通常是不可移植的。

因此,我会推荐Qt,它是跨平台的,成熟的,文档丰富的,成熟的。还有其他的选择,还有无数的常见问题来指导你。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1820954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档