Hola.
Usualmente para mandar llamar un mensaje haces algo como:
MessageBox(NULL, _T("Este es un mensaje"), _T("Caption"), MB_YESNO | MB_ICONQUESTION);
donde el primer parámetro es la ventana padre a la que le asociarás el mensaje (NULL significa que será la ventana del escritorio), el segundo y tercer parámetros son el mensaje y el "caption" del mensaje, y el cuarto parámetro es la combinación de estilos (en este caso, muestro los botones "Sí" y "No", y muestro el ícono de interrogación).
Ahora, este comportamiento no lo puedes cambiar -a menos que hackees la librería kernel32 de Windows).
Entonces lo que tienes que hacer es irte por el camino difícil, y crearte una ventana que funga como diálogo. Primero, en el archivo de recursos, te creas tu diálogo. Por lo menos, deberá tener un botón (Aceptar) y una etiqueta (label) vacía, digamos que se llama LBL_MESSAGE. Entonces tienes que crearte una clase que herede de CDialog.
class CMensajes : public CDialog
{
public:
CMensajes(CWnd* pParent) : CDialog(IDD_MENSAJES, pParent) { }
virtual ~CMensajes() { }
void SetMessageText(const CString& strMessage)
{
SetDlgItemText(LBL_MESSAGE, strMessage);
}
void SetCaptionText(const CString& strCaption)
{
SetWindowText(strCaption);
}
protected:
virtual void OnOK()
{
EndDialog(IDOK);
}
};
Y entonces para mostrar el mensaje, harías algo como
CMensajes msg = m_hwnd;
msg.SetMessageText(_T("Esto es un mensaje"));
msg.SetCaptionText(_T("Mensaje de prueba"));
msg.DoModal();
etcétera. Con esto, ya puedes personalizar tu diálogo. Por supuesto, podrías meterle más botones y estilos, eso ya dependería de tí. Pero esta es la idea en general.
NOTA: si con lo anterior no te queda claro, dime mejor qué es lo que sabes de MFC o Win32.
Saludos.