PRB: Error C2039: OnInitDialog is Not a Member of CFormView

ID: Q132675


The information in this article applies to:
  • The Microsoft Foundation Classes (MFC), included with:
    • Microsoft Visual C++ for Windows, versions 1.0, 1.5, 1.51, 1.52
    • Microsoft Visual C++, 32-bit Editions, versions 2.0, 2.1, 4.0, 5.0


SYMPTOMS

The compiler generates the following error message when you try to define a handler for WM_INITDIALOG for your CFormView-derived class using ClassWizard:

Error C2039: 'OnInitDialog': is not a member of CFormView


CAUSE

This error is a result of the way ClassWizard views CFormView. ClassWizard, in most respects, treats the CFormView class as a CDialog class, and incorrectly allows users to define a handler for the WM_INITDIALOG message. If users choose to have their CFormView derived class handle the WM_INITDIALOG message, ClassWizard generates an OnInitDialog member function for their CFormView-derived class. The ClassWizard added OnInitDialog member function calls the parent OnInitDialog member function as follows:


   CFormView::OnInitDialog(); 
During compilation, the OnInitDialog member function generates the above mentioned error because CFormView is neither derived from CDialog nor does it have an OnInitDialog member function defined in its class.


RESOLUTION

To perform initialization of your CFormView, either override the OnInitialUpdate member function or define a handler for the WM_CREATE message in the CFormView-derived class.

Additional query words:

Keywords : kberrmsg kbwizard kbMFC kbVC100 kbVC150 kbVC151 kbVC152 kbVC200 kbVC210 kbVC400 kbVC500 kbGrpDSTools
Version : winnt:2.0,2.1,4.0,5.0
Platform : winnt
Issue type : kbprb


Last Reviewed: February 2, 2000
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.