一尘不染

(C ++)适用于Linux的MessageBox(如MS Windows)

linux

我需要为Linux(SDL)应用程序实现一个简单的图形消息框,类似于C 中的Windows MessageBox(gcc / g
4.4.0)。它需要做的就是显示字幕,消息和确定或关闭按钮,并在单击该按钮时返回到调用功能。

SDL仅使用X(11)打开用于(OpenGL)渲染的窗口。

我浏览了有关GTK实现的类似主题,但是该实现似乎无法正常工作。

我也尝试过wxWidgets的wxMessageBox函数,但是编译标头会使编译器在include / c ++ / 4.4.0 / bits /
stl_algobase.h(openSuSE 11.1 32位上为gcc 4.4.0
32位)上引发有关语法错误的错误消息。使用wxWidgets还意味着必须链接大量的库,将STL添加到我的应用程序中(这不需要其他操作),并且谁知道其他什么,因此我不想使用wxWidgets。

X11 / motif(openmotif)具有我所需要的(XmCreate {Error | Warning |
InfoDialog),但是它们需要一个我没有的父窗口小部件(例如顶层窗口),并且不接受NULL参数。

所以我现在很沮丧。有一种简单的方法可以做我想要的吗?还是至少有一半简单/简单/直截了当?如果是的话,哪一个(提供尽可能多的细节将不胜感激)。


阅读 617

收藏
2020-06-07

共1个答案

一尘不染

在SDL2中,您现在可以显示消息框:

http://wiki.libsdl.org/SDL_ShowSimpleMessageBox

int SDL_ShowSimpleMessageBox(Uint32      flags,
                             const char* title,
                             const char* message,
                             SDL_Window* window)

http://wiki.libsdl.org/SDL_ShowMessageBox

int SDL_ShowMessageBox(const SDL_MessageBoxData* messageboxdata,
                       int*                      buttonid)
2020-06-07