+ -
当前位置:首页 → 问答吧 → VS2008想用C++动态画一个按钮,程序出现error C2352错误

VS2008想用C++动态画一个按钮,程序出现error C2352错误

时间:2011-12-17

来源:互联网

出现的错误如题,基本代码如下:
注:在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”的声明

作者: xx_xiaoyi   发布时间: 2011-12-17

ON_BN_CLICKED(IDC_BTN_TEST,&CCListBoxDlg::OnBnClickedTest())

改为

ON_BN_CLICKED(IDC_BTN_TEST,&CCListBoxDlg::OnBnClickedTest)

试试

作者: kuku_1122   发布时间: 2011-12-17