方法1:
1 DoDataExchange,里面的DDX_Control语句,一定要放在
//{{AFX_DATA_MAP(CxxxDlg)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
中间。
2 BEGIN_MESSAGE_MAP下面的一些函数,一定要放在
//{{AFX_MSG_MAP(CxxxDlg)
// No message handlers
//}}AFX_MSG_MAP
中间。
虽然这些语句注释掉了,但classwiard会用到。
3 在.h文件中,
//{{AFX_MSG(CxxxDlg)
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
//}}AFX_MSG
这个AFX_MSG一定要有
1 DoDataExchange,里面的DDX_Control语句,一定要放在
//{{AFX_DATA_MAP(CxxxDlg)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
中间。
2 BEGIN_MESSAGE_MAP下面的一些函数,一定要放在
//{{AFX_MSG_MAP(CxxxDlg)
// No message handlers
//}}AFX_MSG_MAP
中间。
虽然这些语句注释掉了,但classwiard会用到。
3 在.h文件中,
//{{AFX_MSG(CxxxDlg)
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
//}}AFX_MSG
这个AFX_MSG一定要有
检查一下,一般这几个地方改动时容易删掉注释的代码,程序没错,但wizard可能就找不到了。
方法2:
如果在classwizard中无法显示你创建或者导入的类,请检查你的类声明文件中的如下代码:
比如在MyView.h中的CMyView类,
//{{AFX_MSG(CMyView)
afx_msg void OnPaint();
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
注意这两行注释后的代码,不要以为它没有用,如果AFX_MSG(CMyView)这句:括号中的参数,如果与你的类名不同,则在classwizard中无法显示你的类。
同样,在对应的cpp文件中
BEGIN_MESSAGE_MAP(CMyView, CView)
//{{AFX_MSG_MAP(CMyView)
ON_WM_PAINT()
ON_WM_LBUTTONDOWN()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
对应的注释掉的那两行,参数必须与你的类名相同。
修改这些后,删掉.clw文件,然后用classwizard重建,就能看到你的类了!