Solved

Call DEFINE_RESPONSE_TABLEx 4 templates

Posted on 1997-12-24
3
367 Views
Last Modified: 2013-12-26
How 2 call DEFINE_RESPONSE_TABLEx 4 templates ?

I want 2 build a template 4  Dialog witch can be called
as normal 'TDialog' or as 'TOleDialog' so this can be done :

*******************************************
TMyDialog::TMyDialog(TWindow * AParent)
         : TDlgBase<TDialog>

==> TMyDialog acts like 'TDialog'

TMyDialog::TMyDialog(TWindow * AParent)
         : TDlgBase<TOleDialog>

==> TMyDialog acts like 'TOleDialog'
*******************************************

I have done all the code but now I don´t know how to
call the DEFINE_RESPONSE_TABLEx, DECLARE_RESPONSE_TABLE Makros ?


*******************************************
Examlpe Header :

template <class TDlg> class TDlgBase
                 : public TDlg
{
public:

         THelpDlgBase(TWindow *AParent);

protected:

         void                 EvNCPaint();

DECLARE_RESPONSE_TABLE( TDlgBase ); /*????*/
};
********************************************

********************************************
Examlpe Cpp :

template <class TDlg>
TDlgBase<TDlg>::TDlgBase(TWindow * AParent)
              : TDlg(AParent)
{
}

template <class TDlg> inline void
THelpDlgBase<TDlg>::EvNCPaint()
{
  TDlg::EvNCPaint();
 
}

DEFINE_RESPONSE_TABLE1( THelpDlgBase , TDlg )  /*?????*/
   EV_WM_NCPAINT,
END_RESPONSE_TABLE;

********************************************
0
Comment
Question by:Dirk_Sander
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
3 Comments
 
LVL 3

Accepted Solution

by:
JPM earned 20 total points
ID: 1299503
This works for me!

template <class T> class TmyTemplateDlg : public TDialog
{.....................}

class TmyDialog : public TmyTemplateDlg< myDataClass >
{
......................
DECLARE_RESPONSE_TABLE( TmyDialog )

}
................
DEFINE_RESPONSE_TABLE1( TmyDialog , TDialog )
........

myDataClass is a class I have defined to storing data associated to TmyDialog box


( NB :  When it's only a comment , the current balance doesn't change , does it???
  So don't care about !
  Many guys can answer for free..... and I guess I can ! )        .... kidding.....

0
 
LVL 3

Expert Comment

by:LucHoltkamp
ID: 1299504
I don't think that answers Dirk_Sanders' question, he wants a template which takes a TWindow derived as parameter and this gives a lot of trouble with owl's DEFINE_RESPONSE_TABLE macro.
However, I think I have a (reusable) answer, requiring a few lines (8) of "code". Hint: take a look at owl/eventhan.h
.luc.
0
 

Author Comment

by:Dirk_Sander
ID: 1299505
What luc said is right !

I want to use TDialog or TOleDialog as base class
but in TMyDialog there has to be the DEFINE_RESPONSE_TABLE macro !

But here is the solution :

In Header file all as usual :

************************************
DECLARE_RESPONSE_TABLE( TMyDialog );
************************************

In Cpp file a little workarround 4 the makro :

*************************************************************
template <class TDlgBase> inline bool
TMyDialog<TDlgBase>::Find(TEventInfo& eventInfo, TEqualOperator equal)
{
  eventInfo.Object = (GENERIC*)this;

  return SearchEntries((TGenericTableEntry __RTFAR*)__entries,  eventInfo, equal) ||
         TDlgBase::Find(eventInfo, equal);
}

template <class TDlgBase> inline TResponseTableEntry<TMyDialog<TDlgBase> >
 __RTFAR  TMyDialog<TDlgBase>::__entries[] =
{
   EV_WM_NCPAINT,
   EV_WM_ACTIVATE,
   EV_WM_INITMENU,
   EV_WM_PAINT,
   EV_WM_SYSCOMMAND,
END_RESPONSE_TABLE;

***************************************************************
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

When you work with shopping cart / ecommerce relates web sites, you need to pass the certain form post details to the payment gateway process page with required details for the products items you give to order. Also you may need to track the ordered…
Introduction Knockoutjs (Knockout) is a JavaScript framework (Model View ViewModel or MVVM framework).   The main ideology behind Knockout is to control from JavaScript how a page looks whilst creating an engaging user experience in the least …
Viewers will learn about arithmetic and Boolean expressions in Java and the logical operators used to create Boolean expressions. We will cover the symbols used for arithmetic expressions and define each logical operator and how to use them in Boole…
The viewer will the learn the benefit of plain text editors and code an HTML5 based template for use in further tutorials.

726 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question