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

Window-ove poruke

[es] :: Pascal / Delphi / Kylix :: Window-ove poruke

[ Pregleda: 3153 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Milan Milosevic

Član broj: 67
Poruke: 930
*.ptt.yu



+31 Profil

icon Window-ove poruke26.10.2001. u 14:52 - pre 256 meseci
Ukoliko se neko intenzivnije bavio presretanjem windows-ovih poruka mozda moze da mi pomogne.Pokusavam da iz moje aplikacije presretnem poruke koje windows sanje drugim prozorima, ali mi ne polazi za rukom.
Probao sam sa koriscenjem timer komponente, gde na njegov dogadaj upisao sledeci kod
Var
Msg:Tagmsg;
begin
Getmessage(Msg,handle,0,0);
Translatemessage(msg);
Dispatchmessage(msg);
End;

To lepo radi ukoliko za handle postavim handle maticne forme ili aplikacije.Medutim ukoliko postavim pokazivac na neku komponentu unutar forme ili na neku drugu formu
Dolazi do potpunog zastoja ,sve dok se ne desi neki dogadaj za tu komponentu,a za druge aplikacje dolazi do potpune blokade.Probao sam da u mesto getmessage koristim peekmessage, i to prolazi, ali poruke koje vraca nemaju blage veze sa zivotom.




 
Odgovor na temu

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 16292
*.verat.net



+7110 Profil

icon Re: Window-ove poruke26.10.2001. u 15:00 - pre 256 meseci
Ne radim programiranje u Delphi-ju, ali cu ti dati generalni odgovor (vezan za C Win32 programiranje), siguran sam da i u Delphi-ju moze to da se uradi na vrlo slican nacin.

Napravis svoj WndProc koji obradjuje poruke koje te zanimaju a na kraju zove zapamceni originalni dispatcher koji ces dobiti sa:

GetWindowLong(hwnd, GWL_WNDPROC);

Prozoru setujes novi dispatcher sa SetWindowLong(hwnd, GWL_WNDPROC, adresatvojeprocedur)

Ovo radi samo ako je taj prozor u tvom procesu (imaju isti handle) ako koristis NT. Pod w9x radi za svaki prozor.

DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos: http://www.digicortex.net/node/17 Gallery: http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! - https://github.com/psyq321/PowerMonkey
 
Odgovor na temu

Milan Milosevic

Član broj: 67
Poruke: 930
*.ptt.yu



+31 Profil

icon Re: Window-ove poruke27.10.2001. u 08:03 - pre 256 meseci
Ovo je potpuno ludo i radi ,samo nisam ukapirao jos kako da artikulisem poruke koje dolaze.Nije mi bas naj jasnije kako da uhvatim poruke koje mi trebaju.
Ako ti nije tesko mogao bi da mi napises jedan mali primer za bilo koji dogadaj .Nema veze sto je u c-u .Kapiram doneke i njega.U principu i c i delphi su potpuno isti ,samo im je sintaxa razlicita.
U buducnosti mi je plan da naucim i c++.
Unapred hvala.
 
Odgovor na temu

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 16292
*.verat.net



+7110 Profil

icon Re: Window-ove poruke27.10.2001. u 09:32 - pre 256 meseci
evo, ovako bi to tebalo da ide (verovatno ima gresaka, ali je to princip):

Mozes slicnu stvar da uradis i sa SetWindowsHookEx(), pogledaj MSDN

Da, mozes i da pozoves originalnu proceduru PRE tvoje obrade, recimo to je dobra ideja za WM_PAINT procesiranje (kada kontrola/prozor zavrsi svoje crtanje a onda ti dodas nesto, na primer ikonicu na dugme u zavisnosti od statusa, itd..)

Code:

WNDPROC OrigProc; // originalna procedura

LONG APIENTRY MainWndProc(HWND hWnd, UINT message, UINT wParam, LONG lParam)
{         

  switch (message)  {
    case WM_PAINT:
          // Prozor je dobio WM_PAINT poruku, radis obradu
    break;

    case WM_LBUTTONDOWN:
          // Levo dugme misa je pritisnuto
    break;

    default:
  }

  /* zovi originalnu proceduru */
  return (OrigProc)(hWnd, message, wParam, lParam);
}

void DeoKoda()
{
    /* evo kako da instaliras 'peek' proceduru */
    HWND prozorKojiTeZanima;

    OrigProc = GetWindowLong(prozorKojiTeZanima, GWL_WNDPROC);
    SetWindowLong(prozorKojiTeZanima, GWL_WNDPROC, (WNDPROC)MainWndProc);
}



[Ovu poruku je menjao Ivan Dimkovic dana 28.10.2001 u 11:18 AM GMT]
DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos: http://www.digicortex.net/node/17 Gallery: http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! - https://github.com/psyq321/PowerMonkey
 
Odgovor na temu

Makojdis
Stefanovic Milos
Kragujevac

Član broj: 78
Poruke: 302
*.ptt.yu



Profil

icon Re: Window-ove poruke27.10.2001. u 21:20 - pre 256 meseci
ubaci kod u [ code ]
 
Odgovor na temu

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 16292
*.verat.net



+7110 Profil

icon Re: Window-ove poruke28.10.2001. u 02:40 - pre 256 meseci
Pa ubacen je...
DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos: http://www.digicortex.net/node/17 Gallery: http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! - https://github.com/psyq321/PowerMonkey
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Window-ove poruke

[ Pregleda: 3153 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

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