編譯環境: 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與變量.