FIX: Cannot Add New Member Variables with VIEWEX Sample (108291)



The information in this article applies to:

  • The Microsoft Foundation Classes (MFC), when used with:
    • Microsoft Visual C++ for Windows, 16-bit edition 1.0
    • Microsoft Visual C++ for Windows, 16-bit edition 1.5
    • Microsoft Visual C++, 32-bit Editions 1.0

This article was previously published under Q108291

SYMPTOMS

From the Visual C++ Workbench, open the VIEWEX sample. To do this, select the Project menu and choose Open. The sample is under the Visual C++ directory in MFC\SAMPLES\VIEWEX\VIEWEX.MAK.

Using App Studio, add an edit control (or any type of control) to the IDD_INPUTFORM dialog box used for the CFormView in this sample. Give it an ID of ID_MYNEWEDIT. Now start Class Wizard with CTRL+W. (You may need to choose to associate the CInputView class with the dialog box resource.) Select the CInputView class if it's not already selected. Choose the Edit Variables button or Member Variables tab depending on the version of Visual C++. The ID_MYNEWEDIT ID will not show up in the Control IDs list, and thus cannot be automatically associated with a member variable.

CAUSE

There is a line of code missing in the declaration of the CInputView class in the INPUTVW.H file. The class definition in this file has a section as follows:
   // Form Data
   public:
      //{{AFX_DATA(CInputView)
      CString m_strData;
      int     m_iColor;
      //}}AFX_DATA
				
This section of code is missing a line that Class Wizard needs in order to identify the controls available to set up as edit variables. This line is the enum line, which is normally automatically added by Class Wizard when creating CDialog derived classes.

RESOLUTION

Modify the above code as follows:
   //{{AFX_DATA(CInputView)
   enum { IDD = IDD_INPUTFORM };
   CString m_strData;
   int     m_iColor;
   //}}AFX_DATA
   //{{ AFX_DATA(CInputView
					
This will work around the problem. With such an enum line, Class Wizard is able to determine the dialog box template to examine for available controls.

STATUS

Microsoft has confirmed this to be a problem in the Microsoft products listed above. This problem was fixed in Microsoft Visual C++, 32-bit Edition, version 2.0.

Modification Type:MajorLast Reviewed:12/1/2003
Keywords:kbBug kbfix KbUIDesign kbVC150fix kbVC200fix kbWndw KB108291