Page 1 of 1

Ce este Spy?

Posted: 07 Feb 2013, 17:43
by black_atus
[ split topic ]
Andreas wrote:Recunosc ca m-am pripit putin: solutia care ti-am sugerat-o a fost testata in VS2005 pe ferestre non-tabbed, si ma gandeam ca merge si in 2008, pe tabbed child windows. Deci trebuie sa rectific:

1. Intradevar avem de a face cu un CMFCTabCtrl care este fereastra de deasupra ferestrelor copil(fiasia cu tab-uri);
Am realizat asta urmarind mesajele cu Spy;
2. O idee ar fi fost sa subclasam acest control pentru a prinde mesajele care nu au handler-e in fereastra main frame;dar
3. Fereastra main frame este derivata din CMDIFrameWndEx care controleaza si tab-urile; numai ca
4. Wizard-ul nu ne ajuta sa adaugam facil un handler pentru un mesaj corespunzator; de ce?
5. Avem de a face cu un mesaj non-sistem care trebuie inregistrat si adaugat handler pentru prelucrare: mesajul in cuza este AFX_WM_CHANGE_ACTIVE_TAB observat tot cu Spy pe fereastra AfX:TabWnd; cum
Solutie:

1. In cpp-ul main frame-ului, in harta de mesaje se adauga:

Code: Select all

BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWndEx)
...
ON_REGISTERED_MESSAGE(AFX_WM_CHANGE_ACTIVE_TAB, &CMainFrame::OnTabChange)
...
2. Se declara in header-ul main frame-ului functia handler in sectiunea protected:

Code: Select all

afx_msg LRESULT OnTabChange(WPARAM wp, LPARAM lp);
3. Se defineste handler-ul OnTabChange:

Code: Select all

LRESULT CMainFrame::OnTabChange(WPARAM wp,LPARAM lp)
{

  return 0;
}
Si gata!

Trebuie subliniat inca o data ca event-urile de acivate in cazul mdi app. nu reprezinta o solutie pentru procesari de tip "once", pentru ca se declanseaza demai multe ori, inclusiv cele MDIACTIVATE.

Weekend placut si spor!

Cum se foloseste programul asta Spy? E vreun tool din Visual Studio? Nu am folosit niciodata dar mi-ar fi de ajutor daca pot vedea mesajele primite de o clasa ..
Multumesc anticipat :)

Re: OnActivate()...

Posted: 07 Feb 2013, 18:16
by Ovidiu Cucu
Spy++ e un tool care vine cu Visual Studio (nu insa si in editiile Express).
Il poti porni din meniul "Tools" iar mai departe e super-easy de folosit.
Cu el poti obtine diverse informatii despre ferestre, procese si threaduri.
Si da, cu el poti urmari mesajele care se trimit la ferestre.

Re: OnActivate()...

Posted: 08 Feb 2013, 13:53
by black_atus
Foarte tare tool-ul asta ... Habar nu aveam de el ... Cat de mult mi-as fi simplificat viata daca stiam de el de anul trecut .. :) Ar fi fost totusi ceva mai bun daca puteam sa exclud unele mesaje care se repeta... cum e WM_PAINT de exemplu :)
Oricum..e foarte util :)

Re: Ce este Spy?

Posted: 08 Feb 2013, 21:15
by Ovidiu Cucu
Cum adica sa "excluzi unele mesaje care se repeta"?

Spy++ are o lista in care poti seta ce mesaje vrei si ce mesaje nu vrei sa monitorizezi.
Spy++ Messages Filter.jpg
Spy++ Messages Filter.jpg (47.53 KiB) Viewed 9556 times

Re: Ce este Spy?

Posted: 11 Feb 2013, 10:01
by black_atus
Perfect ... Ce vroiam sa zic e ca nu stiam ca exista filtre .. Adica sa vad doar mesajele de la tastatura sau mouse. Imi apareau multe mesaje cu WM_PAINT dar si altele e destul de greu sa parcurgi o lista foarte mare ca sa cauti un singur mesaj. :) Asa caut doar mesajele de la mouse si e mult mai usor sa gasesti unele mesaje.
Mersi mult Ovidiu :)

Re: Ce este Spy?

Posted: 11 Feb 2013, 17:19
by Marius Bancila

Re: Ce este Spy?

Posted: 18 Feb 2013, 16:58
by Ovidiu Cucu
...nici macar nu tre sa cauti pe net.
Spy++ are un menu (vezi in dreapta, sus) pe care scrie "Help". :)
Foloseste-l cu incredere!
Spy++ Help.jpg
Spy++ Help.jpg (53.6 KiB) Viewed 9494 times
Daca e ceva neclar insa, nu ezita sa ne intrebi. ;)