?
Danke für die Information.
Ich habe dank deines Hinweise hier im Forum folgenden Code gefunden:
CMyClass::ForceForegroundWindow(GetSafeHwnd());
BOOL CMyClass::ForceForegroundWindow(HWND hWnd)
{
if(!hWnd || !::IsWindow(hWnd))
return FALSE;
HWND hWndCurrentWindow = ::GetForegroundWindow();
if(hWndCurrentWindow == NULL)
{
return ::SetForegroundWindow(hWnd);
}
DWORD dwCurProcId, dwCurThreadId = ::GetWindowThreadProcessId(hWndCurrentWindow, &dwCurProcId);
DWORD dwHWndProcId;
::GetWindowThreadProcessId(hWnd, &dwHWndProcId);
BOOL bReturn = FALSE;
if(dwHWndProcId == dwCurProcId)
{
bReturn = ::SetForegroundWindow(hWnd);
}
else
{
DWORD dwMyThreadId = ::GetCurrentThreadId();
if(::AttachThreadInput(dwMyThreadId, dwCurThreadId, TRUE))
{
bReturn = ::SetForegroundWindow(hWnd);
::AttachThreadInput(dwMyThreadId, dwCurThreadId, FALSE);
}
else
{
bReturn = ::SetForegroundWindow(hWnd);
}
}
return bReturn;
}
Kann es sein, dass duch diese Funktion nicht mehr alle OnActivate Nachrichten abgearbeitet werden?