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

  • Live Event Date: May 18, 2015 @ 1:00 p.m. ET / 10:00 a.m. PT While the idea of using facial and or gesture recognitions to create a modern, intuitive game seems attractive, some developers may want to leverage Unity 3D as a way to accelerate their development. There are many different ways in which Intel and Unity Technologies have been working together to helps speed the develop of games with the Intel® RealSense™ SDK (Software Developer Kit), so come hear from a panel of experts on what we've done …

  • Employees must exchange sensitive emails with customers and partners. These emails might contain protected health information, protected financial information, or corporate information that should not be made public. Globalscape® Mail Express® allows you to encrypt the emails that it manages so that no one but the sender and recipient--not even the administrator--can view the contents of the email. "Secure the Transfer of Sensitive Emails" is the property of GlobalSCAPE

Most Popular Programming Stories

More for Developers

RSS Feeds

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