編譯環(huán)境: EVC4.0+SP4
由于在對(duì)話框中加入了自定義繪圖控件,初始化與聲明不合適導(dǎo)致此程序運(yùn)行時(shí)出現(xiàn)三個(gè)ASSERT警告.
解決辦法參考:
http://support.microsoft.com/kb/113421/en-us 具體步驟: 1.在對(duì)話框資源里加入自定義控件, 設(shè)置屬性,注意ID設(shè)為IDC_XXX的XXX和類名一致.
2.在對(duì)話框類中添加成員變量,特別注意應(yīng)該放在以下字段中,而不是普通的程序變量中
// Dialog Data
//{{AFX_DATA(CVoltagecontrolDlg)
enum { IDD = IDD_VOLTAGECONTROL_DIALOG };
....
CLineChartCtrl m_LineChart;
//}}AFX_DATA
3.在XXDlg.cpp中,不要重復(fù)關(guān)聯(lián)控件ID和成員變量,在CDialog::DoDataExchange(pDX)里定義了DDX_Control(pDX, IDC_LineChartCtrl, m_LineChart);就不要在CDialog::OnInitDialog();再使用m_LineChart.SubclassDlgItem(IDC_LineChartCtrl, this); 與DDX重復(fù)關(guān)聯(lián)了.
主要錯(cuò)誤在于: 混淆了程序變量與控件變量, 并且重復(fù)關(guān)聯(lián)控件ID與變量.