listControl 控件debug assrtion failed!

来源:互联网 发布:毕业分布图制作软件 编辑:程序博客网 时间:2024/05/18 21:49

    作为一个初学者,我记录下今天遇到的一个小问题。

1.class captureDg : public CDialog
{
 DECLARE_DYNAMIC(captureDg)

public:
 captureDg(CWnd* pParent = NULL);   // 标准构造函数
 virtual ~captureDg();

// 对话框数据
 enum { IDD = IDD_DIALOG1 };

protected:
 virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持

 DECLARE_MESSAGE_MAP()
private:
 CListCtrl clc;
};


captureDg::captureDg(CWnd* pParent /*=NULL*/)
 : CDialog(captureDg::IDD, pParent)
{
   clc.InsertColumn(0,L"haha", LVCFMT_LEFT, 60);
 }

把对控件的初始化放在构造函数里,你会发现clc的任何函数都不能用。这是因为控件实在生成对话框对象后才有的,把控件的初始化放在构造函数里无疑是错误的解决办法可以是:将初始化代码放到oninit 函数里面,oninit函数是CDialog的virtual函数,在captureDg中重写。如下所示:

BOOL captureDg::OnInitDialog(){

           CDialog::OnInitDialog();

          初始内容。。。。
           return true;

    }

 

   2第二个导致这个问题的原因可能是listControl控件的属性View没有设置成report。