Ce este Spy?

Intrebari despre programarea cu VC++ incluzand mediul de dezvoltare, instalare, setari, debugger, compilator, linker si documentatie.
Post Reply
User avatar
black_atus
Membru
Membru
Posts: 139
Joined: 20 Jun 2012, 10:20
Judet: Prahova
Location: Ploiesti

Ce este Spy?

Post by black_atus » 07 Feb 2013, 17:43

[ 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 :)


Cu stima,
Daniel Constantin

User avatar
Ovidiu Cucu
Fondator
Fondator
Posts: 3776
Joined: 11 Jul 2007, 16:10
Judet: Iaşi
Location: Iasi
Contact:

Re: OnActivate()...

Post by Ovidiu Cucu » 07 Feb 2013, 18:16

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.

User avatar
black_atus
Membru
Membru
Posts: 139
Joined: 20 Jun 2012, 10:20
Judet: Prahova
Location: Ploiesti

Re: OnActivate()...

Post by black_atus » 08 Feb 2013, 13:53

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 :)
Cu stima,
Daniel Constantin

User avatar
Ovidiu Cucu
Fondator
Fondator
Posts: 3776
Joined: 11 Jul 2007, 16:10
Judet: Iaşi
Location: Iasi
Contact:

Re: Ce este Spy?

Post by Ovidiu Cucu » 08 Feb 2013, 21:15

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 4734 times

User avatar
black_atus
Membru
Membru
Posts: 139
Joined: 20 Jun 2012, 10:20
Judet: Prahova
Location: Ploiesti

Re: Ce este Spy?

Post by black_atus » 11 Feb 2013, 10:01

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 :)
Cu stima,
Daniel Constantin

User avatar
Marius Bancila
Fondator
Fondator
Posts: 2343
Joined: 11 Jul 2007, 11:45
Judet: Timiş
Location: Timisoara
Contact:

Re: Ce este Spy?

Post by Marius Bancila » 11 Feb 2013, 17:19

Marius Bancila
Fondator Codexpert, Microsoft MVP VC++
Site personal | Blog

User avatar
Ovidiu Cucu
Fondator
Fondator
Posts: 3776
Joined: 11 Jul 2007, 16:10
Judet: Iaşi
Location: Iasi
Contact:

Re: Ce este Spy?

Post by Ovidiu Cucu » 18 Feb 2013, 16:58

...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 4672 times
Daca e ceva neclar insa, nu ezita sa ne intrebi. ;)

Post Reply