ON_MESSAGE in template basisklassen



  • wie kann ich erkennen ob die basisklasse eine ON_MESSAGE noch unterstützt oder ist es besser den fehler abzufangen ??

    template <class BASE> class CClipToBaseD : public BASE
    {
    protected:
      CClipToBaseD();
      virtual ~CClipToBaseD();
    
    protected:
      LRESULT OnMsgEx(WPARAM wParam, LPARAM lParam); 
    //..
    }
    
    BEGIN_MESSAGE_MAP_T(<class BASE>, CClipToBaseD<BASE>, BASE)
      ON_MESSAGE(WM_MSG_EX, OnMsgEx)
      //...
    END_MESSAGE_MAP()
    
    template <class BASE>
    LRESULT CClipToBaseD<BASE>::OnMsgEx(WPARAM wParam, LPARAM lParam)
    {
      switch (HIWORD(wParam))
      {
        case WM_SET_ORG_ZORDER:
          SetZOrder_Org();
          return 1;
    
        default:
     //hier muss ich prüfen ob BASE OnMsgEx(...) bearbeiten kann oder ist es besser
    über;
    
    try 
    {
      return BASE::OnMsgEx(wParam, lParam);
    } 
    catch(..)
    {
      return BASE::Default();
    }
    
      }
    }
    

    hat jemand eine idee?? danke

    [ Dieser Beitrag wurde am 24.04.2003 um 13:35 Uhr von vdittrich editiert. ]



  • Ähm, willst Du gerade WTL-Konstrukte mit MFC-Konstrukten durcheinander schmeissen?

    Würde ich Dir aufgrund Übersichtlichkeit nicht raten. Wenn Du schonmal mit MFC angefangen hast, dann bleib lieber bei virtuellen Funktionen!



  • mit

    template <class BASE> class CClipToBaseD : public BASE
    {
    
    }
    

    hab ich die möglichkeit mich zwischen z.b unterschiedlichen klassen zu schieben ohne für jede abgeleitete klasse weitere zwischenklasse aufzubauen.

    ich finde es persönlich effektiver und funktioniert sicher und ist programmtechnisch beherschbar.

    volker



  • Dann schau Dir doch am besten mal an, wie WTL/ATL das realisiert hat!



  • danke ich schau mal nach einen weg überigens habe ich mich von

    http://www.codeguru.com/cpp_mfc/tempinh.html

    leiten lassen, weil WTL/MFC zwar gemeinsam nutzbar sind aber es bedarf immer wieder ein kurzes umdenken.

    volker


Anmelden zum Antworten