我初学MFC,在使用m_DateFrom.SetFormat(_T("yyyyMMdd"));(这里m_DateFrom是一个CDateTimeCtrl对象)运行程序老是有一个断言错误。我又不知道怎么找出这个怎么回事。
BOOL CRentDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_rentInfoList.InsertColumn(0,"ID",LVCFMT_LEFT,40,-1);
m_rentInfoList.InsertColumn(1,"租借人",LVCFMT_LEFT,160,-1);
m_rentInfoList.InsertColumn(2,"租借DVD名",LVCFMT_LEFT,200,-1);
m_rentInfoList.InsertColumn(3,"租借日期",LVCFMT_LEFT,160,-1);
m_rentInfoList.SetExtendedStyle(LVS_EX_FULLROWSELECT||LVS_EX_GRIDLINES);
m_DateFrom.SetFormat("yyyyMMdd");//这句会出错
...............
}
BOOL CRentDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_rentInfoList.InsertColumn(0,"ID",LVCFMT_LEFT,40,-1);
m_rentInfoList.InsertColumn(1,"租借人",LVCFMT_LEFT,160,-1);
m_rentInfoList.InsertColumn(2,"租借DVD名",LVCFMT_LEFT,200,-1);
m_rentInfoList.InsertColumn(3,"租借日期",LVCFMT_LEFT,160,-1);
m_rentInfoList.SetExtendedStyle(LVS_EX_FULLROWSELECT||LVS_EX_GRIDLINES);
m_DateFrom.SetFormat("yyyyMMdd");//这句会出错
...............
}
解决方案 »
- poEdit做多语言,源码要翻译的文字不能是中文吗?
- 都有哪些好的vc QQ群啊?
- 在OnChar重载函数中放行CTRL_C,CTRL_V,CTRL_X虚拟键
- 在多文档应用程序中,为什么添加了C...Bar之后,客户区自动调整了大小,而添加自己的控件,客户区没调整大小,为什么?
- 如何用SDK编写一个类似于输入法工具条的窗口
- socket 组播 求救!!!(40分)
- 请问PE格式文件是专指EXE文件说的吗/
- 技术讨论:关于无模式对话框之间数据传输的问题!(高分求解)
- 父进程的内核对象句柄表中有没有子进程的内核句柄?
- 请教如何讲所有任务放入子线程
- Mfc与DialogBoxParam
- 帮忙把这个代码改成能够传输TXT文件
//断言错误就跟进去看看是什么断言错误?
我也试过了呀。也是不能用。还有,我也上网去找人家的代码。
如:
CDateTimeCtrl* pCtrl = (CDateTimeCtrl*) GetDlgItem(IDC_DATETIMEPICKER_FROM);
ASSERT(pCtrl != NULL);
pCtrl->SetFormat(_T("dd-MMM-yy"));
可是也不能用。
问题是,我试了,其他的方法也不行呀。
CDateTimeCtrl* pCtrl = (CDateTimeCtrl*) GetDlgItem(IDC_DATETIMEPICKER_FROM);
ASSERT(pCtrl != NULL);
pCtrl->SetFormat(_T("dd-MMM-yy"));
这个方法。直接获取指针,在ASSERT(pCtrl != NULL);没有错呀。
可是pCtrl->SetFormat(....);就错了, 参数我也试了好多个,都是那个断言错误。调试进去,都是汇编,看半天,调来调去
的根本理不出来。
CTime DateFrom 或者COleDataTime m_DateFrom
我觉得这样应当没有问题的。然后你再好好对比一下你现在的工程和测试工程相关代码之间的区别,应当就可以发现问题所在了。
可以用,不会出现断言错误呀。
ASSERT(pCtrl != NULL);
//这个断言说明没有取到IDC_DATETIMEPICKER_FROM,检查关联是否出错了。
可是对象我都有关联了,初始化了。
而且用下面的方法,去
CDateTimeCtrl* pCtrl = (CDateTimeCtrl*) GetDlgItem(IDC_DATETIMEPICKER_FROM);
ASSERT(pCtrl != NULL);
VERIFY(pCtrl->SetFormat(_T("dd-MMM-yy")));
也不行呀。这应该就不是对象没有初始化的问题了吧。
哪一位高手能帮我解决,我给加分呀。