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

Mar*_*ark 3 c++ directx user-interface menu button

我认为需要使用函数指针将函数分配给将以某种方式用作按钮的图像,但我找不到任何合适的资源.

如何在C++中设置按钮菜单?例如,具有保存,加载,退出,新的按钮.

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

Bro*_*olf 5

您需要自己编写一组GUI类,用于绘制GUI界面(按钮,文本)以及一些基本的"碰撞检测",以检测用户按下鼠标按钮时是否在按钮内单击了鼠标.

你不一定要使用函数指针,它们更方便.以下示例同样有能力.

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

如果你想实现一个非常基本和非灵活的GUI,你可以检测到像这样的鼠标点击):

if ( mouseWasClicked == true )
{
    if (( mouseX > startButton.minX && mouseX < startButton.maxX ) && 
        ( mouseY > startButton.minY && startButton.maxY < mouseY) )
    {
        loadGame();
    }
}
Run Code Online (Sandbox Code Playgroud)

这就是说我建议为GUI系统使用一个合适的库,例如CEGUI,这是一个开源的,可以与Ogre等渲染引擎一起使用.CEGUI也是便携式的,比Qt轻得多.如果您正在编写游戏,建议您使用它.

除非你试图了解低级别的工作原理,否则不要重新发明轮子,使用经过验证的东西.