最近在VC應用TEECHART中遇到一個問題,Teechart圖表我是用TAB控制元件設在一個子對話框中的,現在需要在主對話框中進行初始化控制
現在遇到的情況是:
1,Teechart的圖表初始化函式如果話在放在子對話框的初始化函式的話可以正常的對圖表進行初始化操作。
初始化方式如下:
BOOL CLineGraph::OnInitDialog()
{
CDialogEx::OnInitDialog();
m_screenWidth = GetSystemMetrics(SM_CXFULLSCREEN);
m_screenHeight = GetSystemMetrics(SM_CYFULLSCREEN);
InitChart1(0);
InitChart2(0);
return TRUE;
}
2,在其他的子對話框里面通過指標也可以對TeeChart圖表進行初始化操作,方法是這樣的:
CLineGraph *pDlg = (CLineGraph *)GetParent();//獲取子對話框的類指標
pDlg->Initchart2(0);//初始化子對話框的Teechart圖表
3,在主對話框通過通過定義類變數來初始化子對話框中的Teechart圖表就出問題了,初始化的方式為
CLineGraph pDlg;
pDlg.InitChart2(0);
這樣就會出問題,跟蹤了一下,在初始化函式的前面部分還沒有問題,但是到了用CSeries類定義一下變數時就會發生錯誤
那個地方的代碼為:
CSeries lineseries = (CSeries)m_chart2.Series(0);
如果沒有CSeries相關的類變數操作的話,就不會發生錯誤,大家知道這是什么原因嗎?
uj5u.com熱心網友回復:
CLineGraph pDlg;pDlg.InitChart2(0); //此時視窗還沒創建
pDlg.Create(xxxxxx)
pDlg.Initxxxxx
uj5u.com熱心網友回復:
視窗還沒有創建,與視窗相關的操作均為非法的~uj5u.com熱心網友回復:
我之前也做過類似的模塊:主界面A創建一個非模態的子視窗B,B用來放Tab控制元件;
然后視窗B創建多個非模態的Tab控制元件的子視窗C。
像樓主想要初始化TeeChart的話只能在子視窗初始化了,主界面可以把需要的引數在子視窗初始化時傳遞過去,然后再初始化Teechart···
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/121769.html
標籤:界面
