PRB: Missing Menu IDs from ClassWizard "Object IDs" Window (104241)
The information in this article applies to:
- The ClassWizard, when used with:
- Microsoft Visual C++ 1.51
- Microsoft Visual C++ 1.52
- Microsoft Visual C++, 32-bit Learning Edition 4.0
- Microsoft Visual C++, 32-bit Professional Edition 2.0
- Microsoft Visual C++, 32-bit Professional Edition 2.1
- Microsoft Visual C++, 32-bit Professional Edition 4.0
This article was previously published under Q104241 SYMPTOMS
The menu IDs of a menu created with App Studio, or Developer Studio in
Visual C++ version 4.0, do not appear in the ClassWizard Object IDs window
when a CDialog, CDialog-derived, CFormView, or CFormView-derived class is
selected in the ClassWizard Class Name combo box. However, the IDs do
appear when other classes, such as a program's CWinApp-derived class, are
selected.
CAUSE
This is by design. ClassWizard associates only one class with a
resource. Follow the steps below to associate the menu IDs with a
particular class.
RESOLUTION
Below are the steps that allow the developer to see the menu IDs in
the Object IDs list when a CFormview or CDialog class is selected
within ClassWizard.
- Go to App Studio or Developer Studio and select the desired menu.
- Press CTRL+W or choose the ClassWizard toolbar button.
- For Visual C++ for Windows or Visual C++, 32-bit Edition, version 2.x,
choose "Select Class" when the ClassWizard dialog box "Add Class" is
displayed. (For Visual C++, 32-bit Edition, version 4.0, the "MFC
ClassWizard" dialog box is displayed.)
- Select the CDialog, CDialog-derived, CFormView, or CFormView-derived
class from the "Class Name" list. The menu IDs will be displayed in
the Object IDs list.
MORE INFORMATION
One example of when this problem occurs is when a menu is attached to a
dialog, through the menu selection box in the dialog properties sheet, and
an attempt is made to create handlers for the menu items in the dialog
class. Upon building the project, the menu will be visible in the dialog
box, but the menu item IDs are not available in ClassWizard. Therefore, no
command handlers can be created for these menu items. As stated above, it
is necessary to invoke ClassWizard with the menu visible in the Resource
Editor to properly associate these menu items with the dialog class.
In Visual C++ version 1.5 and above, the Message Maps tab needs to be in
the fore because ClassWizard is a tabbed dialog box in these versions.
Modification Type: | Major | Last Reviewed: | 12/2/2003 |
---|
Keywords: | kbprb kbwizard KB104241 |
---|
|