[Last Call] Learn about multicloud storage options and how to improve your company's cloud strategy. Register Now

x
?
Solved

Call DEFINE_RESPONSE_TABLEx 4 templates

Posted on 1997-12-24
3
Medium Priority
?
373 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 40 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

Tech or Treat! - Giveaway

Submit an article about your scariest tech experience—and the solution—and you’ll be automatically entered to win one of 4 fantastic tech gadgets.

Question has a verified solution.

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

Preface This is the third article about the EE Collaborative Login Project. A Better Website Login System (http://www.experts-exchange.com/A_2902.html) introduces the Login System and shows how to implement a login page. The EE Collaborative Logi…
Have you tried to learn about Unicode, UTF-8, and multibyte text encoding and all the articles are just too "academic" or too technical? This article aims to make the whole topic easy for just about anyone to understand.
HTML5 has deprecated a few of the older ways of showing media as well as offering up a new way to create games and animations. Audio, video, and canvas are just a few of the adjustments made between XHTML and HTML5. As we learned in our last micr…
The viewer will learn how to create a basic form using some HTML5 and PHP for later processing. Set up your basic HTML file. Open your form tag and set the method and action attributes.: (CODE) Set up your first few inputs one for the name and …
Suggested Courses

650 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