我目前在我的C程序中通过消息框向用户提供信息,但消息框出现在我的所有其他形式的应用程序后面。
如何将它向前移动以使其显示在我的所有表单前面,或设置其父表单?
以下是我目前用于显示消息框的代码:
MessageBox(0,error_msg, "Error - No Algorithm", MB_OK );
答案 0 :(得分:2)
它现在出现在所有表单后面的原因是因为您没有指定所有者窗口。这使它直接出现在桌面窗口的顶部。问题是你的其他窗口已经掩盖了桌面窗口,所以他们也幸福地继续掩盖你的消息框。
您怀疑,解决方案是将您的一个窗口指定为消息框的所有者。你可以通过指定它们的窗口句柄(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提供了其他信息。
答案 1 :(得分:0)
MessageBox的第一个参数是父级的HWND。 0
或NULL
表示“没有父级”,因此生成的消息框不会是模态的。您需要提供父HWND才能获得所需的行为。
答案 2 :(得分:0)
迟到但只是使用FindWindow
按类或标题搜索窗口,并将HWND
作为MessageBox
的第一个参数提供。