PRB: USER Resource Leak when Improperly Using CFormView (118876)



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++ for Windows, 16-bit edition 1.51
    • Microsoft Visual C++ for Windows, 16-bit edition 1.52
    • Microsoft Visual C++, 32-bit Editions 1.0
    • Microsoft Visual C++, 32-bit Editions 2.0
    • Microsoft Visual C++, 32-bit Editions 2.1
    • Microsoft Visual C++, 32-bit Editions 4.0

This article was previously published under Q118876

SYMPTOMS

If a menu is specified for the dialog-box template of a CFormView, then a permanent USER resource leak occurs.

CAUSE

A CFormView object uses a dialog-box template with a child style. It is not valid for a child window to have a menu. If a menu is specified for a child window, the menu will be created when the template is created but it will not be attached to the CFormView and it will therefore not be destroyed when the CFormView object is destroyed.

RESOLUTION

Make sure none of the dialog-box templates for your CFormView objects have menus specified for them. To assist in this endeavor, starting with Visual C++, 32-bit Edition, version 4.0, the Dialog Editor will disable the Menu option on the Dialog Properties dialog box if the loaded dialog template has the Child style (WS_CHILD).

MORE INFORMATION

If you are still encountering the resource leak, there are several other articles in the Knowledge Base that discuss possible causes:

71455 Tracking Down Lost System Resources

66654 Possible Causes for System Resource Reduction

72236 Maximizing the Use of Available Memory in Windows


Modification Type:MajorLast Reviewed:12/2/2003
Keywords:kbDocView kbprb KB118876