ClassWizard VirtualFilter Options

I came across a problem with the VC++ ClassWizard a while ago. If you have a class derived from a standard MFC class, ClassWizard will offer to insert handlers for virtual function overrides. For example, for a class derived from CPropertyPage, you can add handlers for OnWizardNext, OnWizardFinish and so on. However, if you derive again, e.g.
CPropertyPage
CWizardPage
CWizPage1

Then ClassWizard will show virtual functions for CWizardPage but not for CWizPage1.

I discovered that this can be fixed by editing the ClassWizard *.CLW file and adding the 'VirtualFilter' option to the appropriate section. For example:

[CLS:WizPage1]
Type=0
BaseClass=WizardPage
HeaderFile=WizPage1.h
ImplementationFile=WizPage1.cpp
Filter=N
LastObject=WizPage1
VirtualFilter=idWC

The right hand side of VirtualFilter is a list of case-sensitive letters specifying which sets of virtual functions will be listed by ClassWizard. So, in the above example, ClassWizard will list virtual functions from CPropertyPage, CDialog, CWnd and CCmdTarget.

Here's the full list:

a CDatabase
b CListBox
c CComboBox
d CDialog
e -
f CFrameWnd
g COleMessageFilter
h CDialog
i CPropertyPage
j -
k CHttpServer
l COleClientItem
m -
n CHttpFilter
o OLE stuff
p CSplitterWnd
q CAsyncSocket
r CRecordSet
s COleDropSource
t COleDopTarget
u COleMessageFilter
v COleServerDoc
w COleControl
x CRecordset
y CAsyncMonikerFile
z -

A CWinApp
B Button? (DrawItem)
C CObject/CCmdTarget
D CDocument
E CEditView
F -
G -
H -
I CDocItem
J -
K -
L COleLinkingDoc
M CMDIFrameWnd
N -
O COleDocument
P COleIPFrameWnd
Q -
R CRecordView
S -
T CWinThread
U -
V CView
W CWnd
X -
Y -
Z -



Comments

Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • Microsoft® Office 365 is a top choice for enterprises that want a cloud-based suite of productivity/ collaboration applications. With Office 365, you get access to Microsoft™ Office solutions practically anytime, anywhere, on virtually any device. It's a great option for current Microsoft users who can now build on their experience with Microsoft™ solutions while enjoying the flexibility of a cloud-based delivery. But even organizations with no previous investment in Microsoft will find that …

  • Live Event Date: July 28, 2016 @ 1:00 p.m. ET / 10:00 a.m. PT Jepsen tests are third-party tests for distributed databases that validate vendors' guarantees about how they perform under various failure scenarios, especially network partitions. These have proven their value as tools in any distributed system tester's arsenal. When the creator of Jepsen, Kyle Kingsbury, started his Jepsen-for-Hire business last fall, VoltDB immediately got in line, and over the past two months, our solution was given the most …

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date