Причина, по которой он отображается за всеми формами, заключается в том, что вы не указали окно владельца. Это заставляет его появляться прямо в верхней части окна рабочего стола. Проблема в том, что другие ваши окна уже закрывают окно рабочего стола, поэтому они, как ни в чем не бывало, продолжают закрывать окно вашего сообщения.
Решение, как вы подозреваете, состоит в том, чтобы указать одно из ваших окон в качестве владельца окна сообщения. Это можно сделать, указав их дескриптор окна (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
Документация предоставляет дополнительную информацию.