15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


CFormView constructor for multiples dialogs.

=?ISO-8859-1?Q?Guillermo_G=F3mez_Valc=E1rcel?= -- guille@baratz.es
Monday, December 02, 1996

Environment : Visual C++ 4.2b, Win 95, Win NT 3.51

I'm trying to create a class derived from CFormView but whos dialog can t=
o
be variable.
My design of class is :

         CFormView
               \
	CMyBaseFormView
             /           \
CMyFormVw1   CMyFormVw2
(Dialog 1)	(Dialog 2)
=20
My problem lies with the MFC supplied constructor for CMyBaseFormView.

IMPLEMENT_DYNCREATE(CMyBaseFormView, CFormView)

 CMyBaseFormView::CMyBaseFormView()
    : CFormView(CMyBaseFormView::IDD) // I want variables IDDs, no
constant.
 {
         //{{AFX_DATA_INIT(CMyBaseFormView)
         //}}AFX_DATA_INIT
 }=20

My constructor derived class:

IMPLEMENT_DYNCREATE(CMyFormVw1,CMyBaseFormView)

 CMyFormVw1::CMyFormVw1()
    : CBaseFormView(CMyFormVw1::IDD) // I want pass IDD to MyBaseFormView=
 =09
		// constructor.
 {
         //{{AFX_DATA_INIT(CMyFormVw1)
         //}}AFX_DATA_INIT
 }=20

Any ideas?
Thanks for your help.

Guillermo G=F3mez Valc=E1rcel
Baratz, Servicios de Teledocumentaci=F3n, S.A.

<http://www.baratz.es>





Ian Pepper -- Ian@flexicom.ie
Wednesday, December 04, 1996

[Mini-digest: 6 responses]

Try:

class CMyBaseFormView : public CFormView
{  
...
public:
	CMyBaseFormView(UINT); 
};

CMyBaseFormView::CMyBaseFormView(UINT id) : CFormView(id)
{
...
}

That is remove the IMPLEMENT_DYNCREATE(CMyBaseFormView, CFormView) and
DECLARE_DYNAMIC from the base class.

Hope this helps,

Ian
ian@flexicom.ie
>
>
-----From: kpandya@harbinger.net (Kanir Pandya)

This is how you do it.

Have another constructor for CBaseFormView() as follows

My problem lies with the MFC supplied constructor for CMyBaseFormView.

IMPLEMENT_DYNCREATE(CMyBaseFormView, CFormView)

 CMyBaseFormView::CMyBaseFormView(int nIDD)
    : CFormView(nIDD) 	// now nIDD is the variable.
constant.
 {
         //{{AFX_DATA_INIT(CMyBaseFormView)
         //}}AFX_DATA_INIT
 }=20

My constructor derived class:

IMPLEMENT_DYNCREATE(CMyFormVw1,CMyBaseFormView)

 CMyFormVw1::CMyFormVw1()
    : CBaseFormView(CMyFormVw1::IDD) // I want pass IDD to =
MyBaseFormView =09
		// constructor.
 {
         //{{AFX_DATA_INIT(CMyFormVw1)
         //}}AFX_DATA_INIT
 }=20

----------
From: 	Guillermo G=F3mez Valc=E1rcel
Sent: 	Monday, December 02, 1996 4:35 AM
To: 	mfc-l@netcom.com
Subject: 	CFormView constructor for multiples dialogs.

Environment : Visual C++ 4.2b, Win 95, Win NT 3.51

I'm trying to create a class derived from CFormView but whos dialog can =
to
be variable.
My design of class is :

         CFormView
               \
	CMyBaseFormView
             /           \
CMyFormVw1   CMyFormVw2
(Dialog 1)	(Dialog 2)
=20
My problem lies with the MFC supplied constructor for CMyBaseFormView.

IMPLEMENT_DYNCREATE(CMyBaseFormView, CFormView)

 CMyBaseFormView::CMyBaseFormView()
    : CFormView(CMyBaseFormView::IDD) // I want variables IDDs, no
constant.
 {
         //{{AFX_DATA_INIT(CMyBaseFormView)
         //}}AFX_DATA_INIT
 }=20

My constructor derived class:

IMPLEMENT_DYNCREATE(CMyFormVw1,CMyBaseFormView)

 CMyFormVw1::CMyFormVw1()
    : CBaseFormView(CMyFormVw1::IDD) // I want pass IDD to =
MyBaseFormView =09
		// constructor.
 {
         //{{AFX_DATA_INIT(CMyFormVw1)
         //}}AFX_DATA_INIT
 }=20

Any ideas?
Thanks for your help.

Guillermo G=F3mez Valc=E1rcel
Baratz, Servicios de Teledocumentaci=F3n, S.A.

<http://www.baratz.es>
-----From: Todd Davis 

There's no law saying you HAVE to use the MFC supplied constructor for
CMyBaseFormView.  Instead, supply your own that takes a UINT parameter, pass
that UINT right on up the chain into CFormView, and you should be good to=
 go.

Right off the top of my head, I don't know if you're going to have problems
because of the IMPLEMENT_DYNCREATE, but make sure you make your new
constructor public.

Todd Davis

At 10:35 AM 12/2/96 +0100, you wrote:
>Environment : Visual C++ 4.2b, Win 95, Win NT 3.51
>
>I'm trying to create a class derived from CFormView but whos dialog can to
>be variable.
>My design of class is :
>
>         CFormView
>               \
>	CMyBaseFormView
>             /           \
>CMyFormVw1   CMyFormVw2
>(Dialog 1)	(Dialog 2)
>=20
>My problem lies with the MFC supplied constructor for CMyBaseFormView.
>
>IMPLEMENT_DYNCREATE(CMyBaseFormView, CFormView)
>
> CMyBaseFormView::CMyBaseFormView()
>    : CFormView(CMyBaseFormView::IDD) // I want variables IDDs, no
>constant.
> {
>         //{{AFX_DATA_INIT(CMyBaseFormView)
>         //}}AFX_DATA_INIT
> }=20
>
>My constructor derived class:
>
>IMPLEMENT_DYNCREATE(CMyFormVw1,CMyBaseFormView)
>
> CMyFormVw1::CMyFormVw1()
>    : CBaseFormView(CMyFormVw1::IDD) // I want pass IDD to MyBaseFormView =
=09
>		// constructor.
> {
>         //{{AFX_DATA_INIT(CMyFormVw1)
>         //}}AFX_DATA_INIT
> }=20
>
>Any ideas?
>Thanks for your help.
>
>Guillermo G=F3mez Valc=E1rcel
>Baratz, Servicios de Teledocumentaci=F3n, S.A.
>
><http://www.baratz.es>
>
>
>
----------------------------------------------------
at home... http://www.idir.net/~tigger
at work... davistod@gw2k.com
at play... tigger@idir.net
----------------------------------------------------

-----From: "Ronald D. Patton" 

Nothing keeps you from adding a default argument to the existing
constructor or
adding another constructor that will take the dialog id and pass it along
to the
CFormView constructor.

Hope this helps,
Ron Patton

----------
> From: Guillermo G=F3mez Valc=E1rcel 
> To: mfc-l@netcom.com
> Subject: CFormView constructor for multiples dialogs.
> Date: Monday, December 02, 1996 3:35 AM
>=20
> Environment : Visual C++ 4.2b, Win 95, Win NT 3.51
>=20
> I'm trying to create a class derived from CFormView but whos dialog can
to
> be variable.
> My design of class is :
>=20
>          CFormView
>                \
> 	CMyBaseFormView
>              /           \
> CMyFormVw1   CMyFormVw2
> (Dialog 1)	(Dialog 2)
> =20
> My problem lies with the MFC supplied constructor for CMyBaseFormView.
>=20
> IMPLEMENT_DYNCREATE(CMyBaseFormView, CFormView)
>=20
>  CMyBaseFormView::CMyBaseFormView()
>     : CFormView(CMyBaseFormView::IDD) // I want variables IDDs, no
> constant.
>  {
>          //{{AFX_DATA_INIT(CMyBaseFormView)
>          //}}AFX_DATA_INIT
>  }=20
>=20
> My constructor derived class:
>=20
> IMPLEMENT_DYNCREATE(CMyFormVw1,CMyBaseFormView)
>=20
>  CMyFormVw1::CMyFormVw1()
>     : CBaseFormView(CMyFormVw1::IDD) // I want pass IDD to MyBaseFormVi=
ew
=09
> 		// constructor.
>  {
>          //{{AFX_DATA_INIT(CMyFormVw1)
>          //}}AFX_DATA_INIT
>  }=20
>=20
> Any ideas?
> Thanks for your help.
>=20
> Guillermo G=F3mez Valc=E1rcel
> Baratz, Servicios de Teledocumentaci=F3n, S.A.
> 
> <http://www.baratz.es>
>=20
-----From: Vincent Mascart <100425.1337@CompuServe.COM>

>From: 	"=?ISO-8859-1?Q?Guillermo_G=F3mez_Valc=E1rcel?="
>Sent: 	mercredi 4 decembre 1996 6:41
>Subject: 	CFormView constructor for multiples dialogs.
>
>Environment : Visual C++ 4.2b, Win 95, Win NT 3.51
>
>I'm trying to create a class derived from CFormView but whos dialog can't be
variable.
>My design of class is :
>
>         CFormView
>               \
>	CMyBaseFormView
>             /           \
>CMyFormVw1   CMyFormVw2
<(Dialog 1)	(Dialog 2)
>
>My problem lies with the MFC supplied constructor for CMyBaseFormView.
>
>IMPLEMENT_DYNCREATE(CMyBaseFormView, CFormView)
>
> CMyBaseFormView::CMyBaseFormView()
>    : CFormView(CMyBaseFormView::IDD) // I want variables IDDs, no
>constant.
> {
>         //{{AFX_DATA_INIT(CMyBaseFormView)
>         //}}AFX_DATA_INIT
> }
>
>My constructor derived class:
>
>IMPLEMENT_DYNCREATE(CMyFormVw1,CMyBaseFormView)
>
> CMyFormVw1::CMyFormVw1()
>    : CBaseFormView(CMyFormVw1::IDD) // I want pass IDD to MyBaseFormView=
>
>		// constructor.
> {
>         //{{AFX_DATA_INIT(CMyFormVw1)
>         //}}AFX_DATA_INIT
> }
>
>Any ideas?
>Thanks for your help.

That's piece of cake.

Nothing prevent you to modify the constructor CMyBaseFormView like :

CMyBaseFormView::CMyBaseFormView(UINT nID) : CFormView(nID)

Vincent Mascart
100425.1337@compuserve.com




-----From: cugr1@gd.swissptt.ch (Cunningham Graham, IT347)


Well assuming that you dont want your class to be instantiated.
1. Use the IMPLEMENT_DYNAMIC/DECLARE_DYNAMIC pair
2. Have a constructor defined as below.

 CMyBaseFormView::CMyBaseFormView(UINT nIDTemplate) :  =
   CFormView(nIDTemplate)
=7B
=7D

If you are still having problems take a look at how CFormView itslef is   =
implemented as this is a class that cannot be instantiated and derives   =
from I think CScrollView.

 ----------
Von:  Guillermo G=F3mez Valc=E1rcel=5BSMTP:guille=40baratz.es=5D
Gesendet:  Montag, 2. Dezember 1996 10:35
An:  mfc-l=40netcom.com
Betreff:  CFormView constructor for multiples dialogs.

Environment : Visual C++ 4.2b, Win 95, Win NT 3.51

I'm trying to create a class derived from CFormView but whos dialog can   =
to
be variable.
My design of class is :

         CFormView
               =5C
 CMyBaseFormView
             /           =5C
CMyFormVw1   CMyFormVw2
(Dialog 1) (Dialog 2)
   =

My problem lies with the MFC supplied constructor for CMyBaseFormView.

IMPLEMENT_DYNCREATE(CMyBaseFormView, CFormView)

 CMyBaseFormView::CMyBaseFormView()
    : CFormView(CMyBaseFormView::IDD) // I want variables IDDs, no
constant.
 =7B
         //=7B=7BAFX_DATA_INIT(CMyBaseFormView)
         //=7D=7DAFX_DATA_INIT
 =7D

My constructor derived class:

IMPLEMENT_DYNCREATE(CMyFormVw1,CMyBaseFormView)

 CMyFormVw1::CMyFormVw1()
    : CBaseFormView(CMyFormVw1::IDD) // I want pass IDD to MyBaseFormView  =
 =
 =
  // constructor.
 =7B
         //=7B=7BAFX_DATA_INIT(CMyFormVw1)
         //=7D=7DAFX_DATA_INIT
 =7D

Any ideas?
Thanks for your help.

Guillermo G=F3mez Valc=E1rcel
Baratz, Servicios de Teledocumentaci=F3n, S.A.

<http://www.baratz.es>






| Вернуться в корень Архива |