VS2008想用C++动态画一个按钮,程序出现error C2352错误
出现的错误如题,基本代码如下:
注:在String Table里面定义了IDC_BTN_TEST
CListBoxDlg.h文件代码
class CCListBoxDlg : public CDialog
{
//省略 。。。。
private:
CButton *myBtn;//按钮指针
protected:
HICON m_hIcon;
// 生成的消息映射函数
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
afx_msg void OnBnClickedTest();
DECLARE_MESSAGE_MAP()
};
CListBoxDlg.Cpp文件部分代码
BEGIN_MESSAGE_MAP(CCListBoxDlg, CDialog)
//{{AFX_MSG_MAP
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
//}}AFX_MSG_MAP
ON_BN_CLICKED(IDC_BTN_TEST,&CCListBoxDlg::OnBnClickedTest())
END_MESSAGE_MAP()
BOOL CCListBoxDlg::OnInitDialog()
{
//省略部分代码
myBtn=new CButton();
CString myBtnCaption;
myBtnCaption.LoadString(IDC_BTN_TEST);
myBtn->Create(myBtnCaption,WS_CHILD|WS_VISIBLE|WS_TABSTOP,CRect(20,20,20,20),this,IDC_BTN_TEST);
}
void CCListBoxDlg::OnBnClickedTest()
{
MessageBox(_T("Test"));
}
编绎后给出错误提示
error C2352: “CCListBoxDlg::OnBnClickedTest”: 非静态成员函数的非法调用
参见“CCListBoxDlg::OnBnClickedTest”的声明