Итак, внимание. Для всех, кто когда-либо будет искать что-то подобное (большинство примеров в сети почему-то не работают)
void MakeForeground(HWND hWnd) //целевое окно, которое переносим наверх
{
HWND hCurrWnd;
int iMyTID;
int iCurrTID;
hCurrWnd = GetForegroundWindow();
iMyTID = GetCurrentThreadId();
iCurrTID = GetWindowThreadProcessId(hCurrWnd,0);
AttachThreadInput(iMyTID, iCurrTID, TRUE);
SetForegroundWindow(hWnd);
SetWindowPos(hWnd,HWND_TOP,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
AttachThreadInput(iMyTID, iCurrTID, FALSE);
}
При разборе читать ремарксы к SetForegroundWindow
Теги для поиска: z-order, z-последовательность, BringWindowToTop, наверх z-последовательности.