c - 如何使我的 MessageBox 弹出在所有表单的顶部?

标签 c windows winapi messagebox

我目前正在我的 C 程序中通过消息框向用户提供信息,但该消息框出现在我的应用程序的所有其他形式的后面。

如何将其向前显示,以便它出现在我的所有表单前面,或设置其父表单?

这是我当前用于显示消息框的代码:

MessageBox(0,error_msg, "Error - No Algorithm", MB_OK );

最佳答案

它现在出现在所有表单后面的原因是因为您没有指定所有者窗口。这会导致它直接出现在桌面窗口的顶部。问题是您的其他窗口已经覆盖了桌面窗口,因此它们也很乐意继续覆盖您的消息框。

正如您所怀疑的,解决方案是将您的窗口之一指定为消息框的所有者。您可以通过将它们的窗口句柄 (HWND) 指定为函数的第一个参数来实现这一点:

MessageBox(hWnd,                    // the window handle for your owner window
           error_msg,               // the message to be displayed
           "Error - No Algorithm",  // the title
           MB_OK);                  // flags indicating contents and behavior

documentation提供附加信息。

关于c - 如何使我的 MessageBox 弹出在所有表单的顶部?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5455111/

相关文章:

c - 在 linux 中 fork 和 exec 几个 child

c# - 在 WP8 应用程序中反序列化 XML

windows - 菜单项的快捷键(alt + 字母)。有命名约定吗?

python - 在 Windows 上,python 启动器 'py' 做什么让 control-C 在进程组之间交叉?

windows - 两个DC是否可以共享一个GDI对象(画笔、笔等)?

使用 Http Post 的 C Wininet 文件上传

c - 如何将拆分的字符串分配给新变量?

c - 如何向 va_list 添加参数

c - 检测 C 中的结构字段访问

windows - GetDC() 和 BeginPaint() 之间的区别