Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kako spreciti gubljenje fokusa na formi

[es] :: C/C++ programiranje :: Kako spreciti gubljenje fokusa na formi

[ Pregleda: 1009 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

zrnvltc
zoran vuletic
stomatolog

Član broj: 221088
Poruke: 28
93.87.179.*



Profil

icon Kako spreciti gubljenje fokusa na formi31.01.2010. u 09:25 - pre 173 meseci
Pozdrav svima.
Imam problem kada klijent pritisne "windows"
dugme koje je default pored 'ctrl' dugmeta u prvom donjem redu
na tastaturi. Naravno izgubi se fokus aplikacije u kojoj radi,
i klijent vise ne moze da unosi nista, a da sam toga naravno
nije ni svestan. Da li postoji odredjeni 'trik' da to sprecim.
Odnosno da onemogucim da se kada pritisne to dugme
fokus prebaci sa aplikacije na windows u pozadini ?

Pozdrav
 
Odgovor na temu

savkic
Igor Savkić

Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Kako spreciti gubljenje fokusa na formi01.02.2010. u 13:12 - pre 173 meseci
> Imam problem kada klijent pritisne "windows" dugme koje je default pored 'ctrl' dugmeta u prvom donjem redu
> na tastaturi. Naravno izgubi se fokus aplikacije u kojoj radi, i klijent vise ne moze da unosi nista, a da sam toga naravno
> nije ni svestan. Da li postoji odredjeni 'trik' da to sprecim.

Čim se ponovo vrati u program (npr Alt + Tab) dobiće i fokus, a ako želiš da potpuno sprečiš izlazak iz tvog programa, možeš ga postaviti kao shell (umesto explorera) ili kada stigne WM_ACTIVATEAPP za deaktivaciju, možeš ponovo forsirati vraćanje tvog programa na vrh. Evo Delphi primera za to, verujem da ćeš se snaći jer je u pitanju čist WinApi.

Code:


procedure ActivateApplication;
var
  ActiveThreadId, CurrentThreadId: DWORD;
begin
  if GetForegroundWindow <> Application.Handle then
  begin
    ActiveThreadId := GetWindowThreadProcessId(GetForegroundWindow, nil);
    CurrentThreadId := GetCurrentThreadId;
    AttachThreadInput(CurrentThreadId, ActiveThreadId, True);
    SetForegroundWindow(Application.Handle);
    AttachThreadInput(CurrentThreadId, ActiveThreadId, False);
    BringWindowToTop(Application.Handle);
  end;
end;


 
Odgovor na temu

[es] :: C/C++ programiranje :: Kako spreciti gubljenje fokusa na formi

[ Pregleda: 1009 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.