Вопрос: Как сделать ,чтобы мое приложение всегда было в фокусе?

Ответ :

Можно так: 

code:
--------------------------------------------------------------------------------


void BringToFrontWindow(HWND hWnd)
	{
	HWND hCurrWnd;
	int iMyTID;
	int iCurrTID;
	
	hCurrWnd = ::GetForegroundWindow();
	iMyTID   = GetCurrentThreadId();
	iCurrTID = GetWindowThreadProcessId(hCurrWnd,0);

	AttachThreadInput(iMyTID, iCurrTID, TRUE);

	SetForegroundWindow(hWnd);

	AttachThreadInput(iMyTID, iCurrTID, FALSE);

}


--------------------------------------------------------------------------------
здесь hWnd Handle окна приложения которое д.б. активным.


Можно сделать постоянным фокус на окне и с помощью CBT_Hook. 
Правда для этого придётся слепить DLL. 
Приведу лишь сам отработчик для WH_CBT, из проверенного в работе примера. 

code:
--------------------------------------------------------------------------------

LRESULT CALLBACK CBTProc(
                         int     nCode,    // hook code
                         WPARAM  wParam,  // depends on hook code
                         LPARAM  lParam   // depends on hook code
                        )
{
   if (nCode<0) return CallNextHookEx(HookData->hHook,nCode,wParam,lParam);
  if(nCode==HCBT_ACTIVATE)
  {
    if(HookData->hWnd !=(HWND)wParam)SetForegroundWindow(HookData->hWnd);
  }
if(nCode==HCBT_SYSCOMMAND)return 0;
if(HookData->hWnd ==(HWND)wParam)return 0;
else return 1;
}

--------------------------------------------------------------------------------

	

Электронные Книги по компьютерным программам
На правах рекламы:
Логин
Пароль
Запомнить меня