Argument pointer CView

Intrebari legate de programarea cu biblioteci precum MFC, ATL, WTL si GDI+.
Post Reply
mesajflaviu
Membru++
Membru++
Posts: 687
Joined: 10 Sep 2008, 21:40
Judet: Cluj

Argument pointer CView

Post by mesajflaviu » 20 Aug 2010, 13:25

As putea folosi ca argument al unei metode de clase generice , un pointer de un anume tip de CView ?

Code: Select all

void CMyGenericClass::NumeMetoda(arg1,...,RuntimeClass* pView)
{
...
...
       pView->MetodaView();
...
...
}
iar metoda sa recunoasca tipul pointer-ului daca este de tip CMyFormView1 , sau CMyFormView2 , etc. ?
Apoi , in interiorul acestei metode , pot recunoaste ( fara eroare ) un obiect de pe view dupa ID , daca exista si de ce tip este ( CEdit sau CComboBox ) ?
Last edited by mesajflaviu on 20 Aug 2010, 15:06, edited 1 time in total.



neagu_laurentiu
Membru++
Membru++
Posts: 919
Joined: 23 Jul 2007, 11:32

Re: Argument pointer CView

Post by neagu_laurentiu » 20 Aug 2010, 13:59

1) Cu functii virtuale. Defineste o clasa a ta, MyBaseCView (derivata din CView), functiile virtuale dorite apoi derivezi din nou cate CMyFormView1,2,3 vrei.
2) __hook si evenimente

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

Re: Argument pointer CView

Post by Ovidiu Cucu » 21 Aug 2010, 14:05


mesajflaviu
Membru++
Membru++
Posts: 687
Joined: 10 Sep 2008, 21:40
Judet: Cluj

Re: Argument pointer CView

Post by mesajflaviu » 21 Aug 2010, 22:51

Ovidiu Cucu wrote:Vezi si articolul asta: http://www.codexpert.ro/articole.php?id=10
Cred ca o sa adopt ultima solutie a acestui articol ... excelent ! ( care de fapt e prima varianta a lui Laurentiu ).

neagu_laurentiu
Membru++
Membru++
Posts: 919
Joined: 23 Jul 2007, 11:32

Re: Argument pointer CView

Post by neagu_laurentiu » 22 Aug 2010, 09:30

Cand nu ai o ierarhie de clase (nu neaparat) dar vrei ca la un moment dat / eveniment in clasa A sa-ti apeleze ceva din B, la momentul definitiei lui A nu se stie de B, __hook poate fi util. Iar cine vrea ceva pur C++ poate apela la template-uri: http://www.tweakbits.com/articles/events/index.html

(__closure e implementarea din C++Builder, __hook a aparut mult mai tarziu in VC++)

Post Reply