MicrosoftVisualStudio2010中MSChart控件用于仿真曲線樣例_第1頁
MicrosoftVisualStudio2010中MSChart控件用于仿真曲線樣例_第2頁
MicrosoftVisualStudio2010中MSChart控件用于仿真曲線樣例_第3頁
MicrosoftVisualStudio2010中MSChart控件用于仿真曲線樣例_第4頁
MicrosoftVisualStudio2010中MSChart控件用于仿真曲線樣例_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

MSchart控件在C++6.0和Microsoftvisualstudio2005中使用都需要額外安裝控件,但是Microsoftvisualstudio2010中已經(jīng)內(nèi)含此控件,所以此教程用于Microsoftvisualstudio2010版本使用。1:新建MFC工程,此處可以選擇對話框程序,如圖1所示,其余設置可默認。圖12:MSChart控件位于工具箱下端的常規(guī)控件選項卡中,若是工具箱面板中未找到,可以右擊工具箱→選擇項→COM組件中選擇MicrosoftChartControl,version5.0。控件位置及圖標如圖2所示。注:此處除MicrosoftChartControl,version5.0外,還有MicrosoftChartControl6.0,所使用的是version5.0,但添加的類卻是6.0,對于此處差別還不太清楚。圖23:添加MicrosoftChartControl控件到對話框程序中,如圖3所示。圖34:點擊MicrosoftChartControl控件,右端出現(xiàn)屬性窗口,如圖4所示,在此處可以對于此控件進行設置,下面對于各個控件屬性含義進行具體講解。圖4更改屬性頁內(nèi)屬性,屬性頁位于屬性列表上端快捷鍵最后一位,屬性頁如圖5所示。圖5屬性列表主要包括以下幾個方面的設置:Chart主要包括對于圖表類型的選擇,此例中主要使用的是Line(2D),選項Showlegend為顯示圖例,在此例中需要進行勾選。設置如圖6所示。圖6Axis主要是對于各個坐標軸的設置,其中Axis可以進行XAxis、YAxis及SecondYAxis三個軸的選擇,其中Showscale選項可以選擇對應軸是否顯示,Automaticscaling可以對于坐標軸上最大值、最小值、標注標簽間隔和每個間隔細分格數(shù)(對于X及Y軸是不同的,X軸若是100為一個格,50需要為一個小格,Y軸Majordivisions對應的是大格格數(shù),Minordivisions對應小格格數(shù))。在對于此處設置之前,需要將屬性列表中的RowCount值更改,此例需要將橫軸分成1000份,所以RowCount值改為1000,同時Row與RowLabel對應更改,此類每100份表示為1格,標注為0.1變化,所以對應于下表進行更改。Row1101201301401501601701···RowLabel0.00.10.20.30.40.50.60.7···同時將RandomFill選項改為FALSE。X軸及Y軸設置如圖7及圖8所示,此處不需要SecondYAxis,所以將其Showscale選項勾選掉。Color可以修改對應軸的顏色,此處不進行解釋。圖7圖8表格形狀如圖9所示。圖9AxisGrid主要是對于表格中的網(wǎng)格線進行更改,此處為了更清晰的表示曲線,去除掉所有的網(wǎng)格線,故此例中將Color更改為白色即可。如圖10所示。圖10Series是對于圖標中曲線個數(shù)進行設置,此處需要先對屬性列表進行更改,ColumnCount是曲線個數(shù),此例共有兩條曲線,故此處設置為2,Column及ColumnLabel對應設置,當Column為1時,設置ColumnLabel為y=200x,Column為2時,設置ColumnLabel為y=100x。此處含義是當x軸對應0.1標簽時,兩個曲線分別對應于20及10,但是其實x軸0.1對應于100Row,這里有相對應關系。Statistics選項卡中,主要可以畫出最高最低限度、平均、標準及回歸等曲線,此處不用勾選,設置如圖11所示。圖11SeriesColor對于曲線顏色設置,此處將兩條曲線分別設置為紅色與綠色,主要更改Color選項。Backdrop主要是對于背景的設置,可以設置背景填充色以及邊框填充,此例將背景設置為藍色,設置如圖12所示。圖12Text及Fonts主要是對于標題、各軸標注等字體內(nèi)容設置,這些設置可以選擇用語句進行,所以此處只將標題字體Title改為仿宋,各軸標簽字體AxisLabel是改為TimeNewRoman。對于屬性頁設置如上所述,對于屬性表中,只需要再將Enabled選項改為FALSE,此處目的是在顯示曲線時,不可對控件進行操作。若圖例過長從而顯示不完全,可以在屬性頁中,更改Fonts選項卡中的Legend屬性即可。5:添加CMSChart類到工程中,點擊類視圖中的工程名,右擊選項卡中選擇添加→類,此處一定要注意,在類視圖中添加類和在項目選項卡中添加類是不同的,之前也是因為這個原因而困擾很久,此處位置如圖13所示。圖13在類添加選項卡中雙擊TypeLib中的MFC類這個類型。在類型庫中添加類向?qū)е?,選擇可用的類型庫文件名為MicrosoftChartControl6.0(SP4),然后點擊接口與生產(chǎn)的類中間的添加按鈕,設置如圖14所示。之后點擊完成即可。圖14此時在類視圖中可以發(fā)現(xiàn),已經(jīng)添加入很多類。添加工程所需要的頭文件,在ChartLearnDlg.h文件(也就是所命名的Dlg頭文件)中添加如下頭文件。#include<windows.h>#import<msdatsrc.tlb>no_namespace#import<mschrt20.ocx>no_namespace#include"CDMSChart.h"#include"CVcPlot.h"#include"CVcAxis.h"#include"CVcValueScale.h"#include"CVcSeriesCollection.h"#include"CVcSeries.h"#include"CVcPen.h"#include"CVcCategoryScale.h"#include"CVcColor.h"#include"CVcDataGrid.h"#include"CVcBackdrop.h"#include"CVcFill.h"#include"CVcBrush.h"#include"CVcDataPoints.h"#include"CVcDataPoint.h"#include"CVcDataPointLabel.h"#include"CVcAxisTitle.h"#include"CVcTitle.h"#include"CVcFont.h"#include"CVcLegend.h"#include"CVcMarker.h"#include"CVcLabels.h"#include"CVcLabel.h"#include"CVcSeriesMarker.h"6:添加變量,右擊對話框中的CMSChart控件,選擇添加變量選項,設置變量名為m_chart1。設置如圖15所示,之后點擊完成按鈕。圖15此時編譯會出現(xiàn)如圖16錯誤。圖16點擊錯誤,跳轉(zhuǎn)至錯誤的位置,需要將m_chart1(0)中的0刪除,此錯誤即可解除。具體原因未明。再編譯即可通過。7:添加函數(shù)對于MSChart控件進行初始化設置,此時點擊CChartLearnDlg類中的OnInitDialog()函數(shù),在其末端添加代碼,網(wǎng)上C++6.0在MSChart控件所使用的函數(shù)很多在此版本都是不可以的,所以此處所列的函數(shù)只為一些我所使用的函數(shù)。注:此處一些設置可以在屬性中直接更改。(1)添加標題。m_chart1.put_TitleText(_T("一次曲線"));(2)更改標題顏色及大小。 CVcTitlevctitle; CVcFontvcFont; CVcColorvcColor; vctitle=m_chart1.get_Title(); vcFont=vctitle.get_VtFont(); vcColor=vcFont.get_VtColor(); vcColor.Set(0,255,0); vcFont.put_Size(12);(3)坐標軸顯示標簽。 VARIANTvar; CVcPlotvcplot; CVcAxisvcaxis; CVcAxisTitlevcAxistitle; vcplot=m_chart1.get_Plot(); vcaxis=vcplot.get_Axis(0,var); vcAxistitle=vcaxis.get_AxisTitle(); vcAxistitle.put_Text(_T("時間t(s)"));函數(shù)get.Axis()中的0代表橫軸,1代表左縱軸,2代表右縱軸。(4)設置坐標軸最大及最小值。此例中在屬性中進行設置,所以沒有使用。 vcplot=m_chart1.get_Plot(); vcaxis=vcplot.get_Axis(1,var); CVcValueScalevcvalue1=vcaxis.get_ValueScale(); CVcCategoryScalevccat1=vcaxis.get_CategoryScale(); vccat1.put_Auto(FALSE); vcvalue1.put_MajorDivision(20); vcvalue1.put_Maximum(2000); vcvalue1.put_Minimum(0);(5)輸出點函數(shù) CVcDataGridvcDataGrid=m_chart1.get_DataGrid(); vcDataGrid.SetData(i,1,i,0); vcDataGrid.SetData(i,2,2*i,0);其中SetData函數(shù)中,第一位為Row,其實也就是橫軸位置,第二位為Column,也就是對應曲線,第三位為數(shù)值,第四位為0,具體含義未知。此函數(shù)將輸出點至于“確定”按鈕對應函數(shù)中,所以需要雙擊確定按鈕添加函數(shù),如圖17所示。圖17刪掉CDialogEx::OnOK();語句添加如下語句: for(inti=1;i<=1000;i++) { CVcDataGridvcDataGrid=m_chart1.get_DataGrid(); vcDataGrid.SetData(i,1,0.2*i,0); vcDataGrid.SetData(i,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論