编译环境: EVC4.0+SP4
由于在对话框中加入了自定义绘图控件,初始化与声明不合适导致此程序运行时出现三个ASSERT警告.
解决办法参考:
http://support.microsoft.com/kb/113421/en-us 具体步骤: 1.在对话框资源里加入自定义控件, 设置属性,注意ID设为IDC_XXX的XXX和类名一致.
2.在对话框类中添加成员变量,特别注意应该放在以下字段中,而不是普通的程序变量中
// Dialog Data
//{{AFX_DATA(CVoltagecontrolDlg)
enum { IDD = IDD_VOLTAGECONTROL_DIALOG };
....
CLineChartCtrl m_LineChart;
//}}AFX_DATA
3.在XXDlg.cpp中,不要重复关联控件ID和成员变量,在CDialog::DoDataExchange(pDX)里定义了DDX_Control(pDX, IDC_LineChartCtrl, m_LineChart);就不要在CDialog::OnInitDialog();再使用m_LineChart.SubclassDlgItem(IDC_LineChartCtrl, this); 与DDX重复关联了.
主要错误在于: 混淆了程序变量与控件变量, 并且重复关联控件ID与变量.