mschart安装使用

合集下载

MsChart控件使用指南(.NET3.5)

MsChart控件使用指南(.NET3.5)

微软图表控件MsChart使用指南昨天在网上看到了微软发布了.NET 框架下的图表控件,第一时间抓下来看了一下,发觉功能很强劲,基本上能想到的图表都可以使用它绘制出来,给图形统计和报表图形显示提供了很好的解决办法,同时支持Web和WinForm两种方式,不过缺点也比较明显,只能在最新的开发环境中使用,需要.Net Sp1以及VS 2008的开发环境。

下面是下载地址:rosoft Chart Controls for Microsoft .NET Framework –1.包含英文版,中文版。

上面提供的链接是中文版的,可以更改为英文版。

2.语言包:Microsoft Chart Controls for Microsoft .NET Framework Language Pack3.Microsoft .NET Framework 的Microsoft 图表控件的语言包,包含23中语言。

4.Microsoft Chart Controls Add-on for Microsoft Visual Studio 2008–这个只有英文的,没找到中文的。

5.文档(Microsoft Chart Controls for .NET Framework Documentation)–这个只有英文的,没找到中文的。

6.WinForm 和的例子(Samples Environment for Microsoft Chart Controls)–这个只有英文的,没找到英文的。

Demo 下载:下了它的示例程序后,运行了一下,非常的强大,可以支持各种各样的图形显示,常见的:点状图、饼图、柱状图、曲线图、面积图、排列图等等,同时也支持3D样式的图表显示,不过我觉得最有用的功能还是支持图形上各个点的属性操作,它可以定义图形上各个点、标签、图形的提示信息(Tooltip)以及超级链接、Javascript动作等,而不是像其它图形类库仅生成一幅图片而已,通过这些,加上微软自己的Ajax框架,可以建立一个可以互动的图形统计报表了。

c#mschart控件使用方法

c#mschart控件使用方法

c# ms chart 控件使用方法第一个简单的chart:spline// Create new data series and set it's visualattributes Series series = new Series("Spline");series.ChartType = SeriesChartType.Spline;series.BorderWidth = 3;series.ShadowOffset = 2;// Populate new series with dataseries.Points.AddY(67);series.Points.AddY(57);series.Points.AddY(83);series.Points.AddY(23);series.Points.AddY(70);series.Points.AddY(60);series.Points.AddY(90);series.Points.AddY(20);// Add series into the chart's series collectionChart1.Series.Add(series);同时显示2条曲线// Populate series with random dataRandom random = new Random();for (int pointIndex = 0; pointIndex < 10;pointIndex++){Chart1.Series["Series1"].Points.AddY(random.Next(45, 95));Chart1.Series["Series2"].Points.AddY(random.Next(5, 75));}// Set series chart typeChart1.Series["Series1"].ChartType = SeriesChartType.Line;Chart1.Series["Series2"].ChartType = SeriesChartType.Spline;// Set point labelsChart1.Series["Series1"].IsValueShownAsLabel = true;Chart1.Series["Series2"].IsValueShownAsLabel = true;// Enable X axis marginChart1.ChartAreas["ChartArea1"].AxisX.IsMarginVisible = true;// Enable 3D, and show data point marker linesChart1.ChartAreas["ChartArea1"].Area3DStyle.Enable3D = true; Chart1.Series["Series1"]["ShowMarkerLines"] = "True";Chart1.Series["Series2"]["ShowMarkerLines"] = "True";显示column类型图// Create new data series and set it's visual attributesSeries series = new Series("FlowRead");series.ChartType = SeriesChartType.Column;series.BorderWidth = 3;series.ShadowOffset = 2;// Populate new series with dataseries.Points.AddY(67);series.Points.AddY(57);series.Points.AddY(83);series.Points.AddY(23);series.Points.AddY(70);series.Points.AddY(60);series.Points.AddY(90);series.Points.AddY(20);// Add series into the chart's series collectionChart1.Series.Add(series);很多点,效率还可以// Fill series datadouble yValue = 50.0;Random random = new Random();for (int pointIndex = 0; pointIndex < 20000;pointIndex++){yValue = yValue + (random.NextDouble() * 10.0 - 5.0);Chart1.Series["Series1"].Points.AddY(yValue);}// Set fast line chart typeChart1.Series["Series1"].ChartType = SeriesChartType.FastLine;}日期,xy类型// Create a new random number generatorRandom rnd = new Random();// Data points X value is using current dateDateTime date = DateTime.Now.Date;// Add points to the stock chart seriesfor (int index = 0; index < 10; index++){Chart1.Series["Series1"].Points.AddXY(date, // X value is a daternd.Next(40,50)); //Close Y value// Add 1 day to our X valuedate = date.AddDays(1);}int-int的xy数据绘图// Create a new random number generatorRandom rnd = new Random();// Add points to the stock chart seriesfor (int index = 0; index < 10; index++){Chart1.Series["Series1"].Points.AddX Y(rnd.Next(10,90), // X value is a daternd.Next(40,50)); //Close Y value}数据库数据,datetime-int类型string connStr ="server=localhost;database=seis_project;uid=seisprjs;pwd=seisprjs";SqlConnection myConn = new SqlConnection(connStr);string selStr = "select 时间,序号from pub_log_read order by 序号asc";SqlCommand myCmd = myConn.CreateCommand();mandText = selStr;myConn.Open();SqlDataReader sdr =myCmd.ExecuteReader(CommandBehavior.CloseConnection);// Since the reader implements and IEnumerable, pass the readerdirectly into// the DataBindTable method with the name of the Column to be usedas the X ValueChart1.DataBindTable(sdr, "时间");sdr.Close();myConn.Close();数据库数据2,string-int类型string connStr ="server=localhost;database=seis_project;uid=seisprjs;pwd=seisprjs";SqlConnection myConn = new SqlConnection(connStr);string selStr = "select 帐号,count(帐号) as 次数from pub_log_read groupby 帐号order by 帐号asc";SqlCommand myCmd = myConn.CreateCommand();mandText = selStr;myConn.Open();SqlDataReader sdr =myCmd.ExecuteReader(CommandBehavior.CloseConnection);// Since the reader implements and IEnumerable, pass the readerdirectly into// the DataBindTable method with the name of the Column to be usedas the X ValueChart1.DataBindTable(sdr, "帐号");sdr.Close();myConn.Close();数据库绑定3-error?string connStr ="server=localhost;database=seis_project;uid=seisprjs;pwd=seisprjs";SqlConnection myConn = new SqlConnection(connStr);string selStr = "select 帐号,count(帐号) as 次数from pub_log_read groupby 帐号order by 帐号asc";SqlCommand myCmd = myConn.CreateCommand();mandText = selStr;myConn.Open();// Set chart data sourceChart1.DataSource = myCmd;// Set series members names for the X and Y valuesChart1.Series["Series1"].X ValueMember = "帐号";Chart1.Series["Series1"].YValueMembers = "次数";// Data bind to the selected data sourceChart1.DataBind();myConn.Close();数据库4,只绑定ystring connStr ="server=localhost;database=seis_project;uid=seisprjs;pwd=seisprjs";SqlConnection myConn = new SqlConnection(connStr);string selStr = "select 序号from pub_log_read order by 序号asc";SqlCommand myCmd = myConn.CreateCommand();mandText = selStr;myConn.Open();SqlDataReader sdr =myCmd.ExecuteReader(CommandBehavior.CloseConnection);// Since the reader implements and IEnumerable, pass the readerdirectly into// the DataBindTable method with the name of the Column to be usedas the X ValueChart1.Series[0].Points.DataBindY(sdr);sdr.Close();myConn.Close();数据库5,绑定xystring connStr ="server=localhost;database=seis_project;uid=seisprjs;pwd=seisprjs";SqlConnection myConn = new SqlConnection(connStr);string selStr = "select 帐号,count(帐号) as 次数from pub_log_read groupby 帐号order by 帐号desc";SqlCommand myCmd = myConn.CreateCommand();mandText = selStr;myConn.Open();SqlDataReader sdr =myCmd.ExecuteReader(CommandBehavior.CloseConnection);// Since the reader implements and IEnumerable, pass the readerdirectly into// the DataBindTable method with the name of the Column to be usedas the X ValueChart1.Series[0].Points.DataBindX Y(sdr, "帐号",sdr,"次数");sdr.Close();myConn.Close();数据库6,支持显示参数// Resolve the address to the Access databasestringfileNameString = this.MapPath(".");fileNameString += "..\\..\\..\\data\\chartdata.mdb";//Initialize a connectionstringstringmyConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DataSource=" + fileNameString;// Definethe databasequerystringmySelectQuery="SELECT * FROM REPSALES WHERE Year=2004;";// Createa database connection object using the connectionstringOleDbConnection myConnection = newOleDbConnection(myConnectionString);// Create adatabase command on the connection usingqueryOleDbCommandmyCommand = new OleDbCommand(mySelectQuery, myConnection);// Open theconnectionmyCommand.Connection.Open();// Create adatabasereaderOleDbDataReader myReader=myCommand.ExecuteReader(CommandBehavior.CloseConnection);// Since thereader implements and IEnumerable, pass the reader directlyinto// theDataBind method with the name of the Columns assigned to theappropriateproperty Chart1.Series["Series1"].Points.DataBind(myReader,"Name","Sales","Tooltip=Year, Label=Commissions{C2}");// Closethe reader and the connectionmyReader.Close();myConnection.Close();数据库7,支持多line// Resolve the address to the Access databasestringfileNameString = this.MapPath(".");fileNameString += "..\\..\\..\\data\\chartdata.mdb";//Initialize a connectionstringstringmyConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DataSource=" + fileNameString;// Definethe databasequerystringmySelectQuery="SELECT * FROM REPSALES;";// Createa database connection object using the connectionstringOleDbConnection myConnection = newOleDbConnection(myConnectionString);// Create adatabase command on the connection usingqueryOleDbCommandmyCommand = new OleDbCommand(mySelectQuery, myConnection);// Open theconnectionmyCommand.Connection.Open();// Create adatabasereaderOleDbDataReader myReader=myCommand.ExecuteReader(CommandBehavior.CloseConnection);// Data bindchart to a table where all rows are grouped in series by the "Name"column Chart1.DataBindCrossTable(myReader,"Name","Year","Sales","Label=Commissions{C}");// Closethe reader and the connectionmyReader.Close();myConnection.Close();数据库8,按照行添加数据// Resolve the address to the Access databasestringfileNameString = this.MapPath(".");fileNameString += "..\\..\\..\\data\\chartdata.mdb";//Initialize a connectionstringstringmyConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DataSource=" + fileNameString;// Definethe databasequerystringmySelectQuery="SELECT * FROM SALESCOUNTS;";// Createa database connection object using the connectionstringOleDbConnection myConnection = newOleDbConnection(myConnectionString);// Create adatabase command on the connection usingqueryOleDbCommandmyCommand = new OleDbCommand(mySelectQuery, myConnection);// Open theconnectionmyCommand.Connection.Open();//Initializes a new instance of the OleDbDataAdapter classOleDbDataAdapter myDataAdapter = new OleDbDataAdapter();myDataAdapter.SelectCommand = myCommand;//Initializes a new instance of the DataSet classDataSetmyDataSet = new DataSet();// Addsrows in the DataSetmyDataAdapter.Fill(myDataSet,"Query");foreach(DataRow row in myDataSet.Tables["Query"].Rows){// For each Row add a new seriesstring seriesName = row["SalesRep"].ToString();Chart1.Series.Add(seriesName);Chart1.Series[seriesName].ChartType = SeriesChartType.Line;Chart1.Series[seriesName].BorderWidth = 2;for(int colIndex = 1; colIndex <myDataSet.Tables["Query"].Columns.Count; colIndex++) {// For each column (column 1 and onward) add the value as apointstring columnName =myDataSet.Tables["Query"].Columns[colIndex].ColumnName; int YVal = (int) row[columnName];Chart1.Series[seriesName].Points.AddX Y(columnName, YVal);}}DataGrid.DataSource = myDataSet;DataGrid.DataBind();// Closesthe connection to the data source. This is the preferred// method ofclosing any open connection.myCommand.Connection.Close();使用xml数据// resolve the address to the X ML documentstringfileNameString = this.MapPath(".");stringfileNameSchema = this.MapPath(".");fileNameString += "..\\..\\..\\data\\data.xml";fileNameSchema += "..\\..\\..\\data\\data.xsd";//Initializes a new instance of the DataSet classDataSetcustDS = new DataSet();// Read X MLschema into the DataSet.custDS.ReadX mlSchema( fileNameSchema );// ReadX ML schema and data into the DataSet.custDS.ReadX ml( fileNameString );//Initializes a new instance of the DataView classDataViewfirstView = new DataView(custDS.Tables[0]);// Sincethe DataView implements and IEnumerable, pass the reader directlyinto // theDataBindTable method with the name of the column used for the X value. Chart1.DataBindTable(firstView, "Name");使用excel数据// resolve the address to the Excel filestringfileNameString = this.MapPath(".");fileNameString += "..\\..\\..\\data\\ExcelData.xls";// Createconnection object by using the preceding connection string.string sConn= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +fileNameString + ";Extended Properties="Excel8.0;HDR=YES"";OleDbConnection myConnection = new OleDbConnection( sConn );myConnection.Open();// Thecode to follow uses a SQL SELECT command to display the data fromthe worksheet.// Createnew OleDbCommand to return data from worksheet.OleDbCommandmyCommand = new OleDbCommand( "Select * From[data1$A1:E25]",myConnection );// createa databasereaderOleDbDataReader myReader=myCommand.ExecuteReader(CommandBehavior.CloseConnection);//Populate the chart with data in the fileChart1.DataBindTable(myReader, "HOUR");// closethe reader and the connectionmyReader.Close();myConnection.Close();使用csv数据// Filename of the CSV filestring file= "DataFile.csv";// Getthe path of the CSV filestring path= this.MapPath(".");path +="..\\..\\..\\data\";// Createa select statement and a connection string.stringmySelectQuery = "Select * from " + file;stringConStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+path+ ";Extended Properties="Text;HDR=No;FMT=Delimited"";OleDbConnection myConnection = new OleDbConnection(ConStr);// Createa database command on the connection using queryOleDbCommandmyCommand = new OleDbCommand(mySelectQuery, myConnection);// Openthe connection and create the readermyCommand.Connection.Open();OleDbDataReader myReader=myCommand.ExecuteReader(CommandBehavior.CloseConnection);// Column1 is a time value, column 2 is a double// Databindthe reader to the chart using the DataBindX Y methodChart1.Series[0].Points.DataBindX Y(myReader, "1", myReader,"2");// Closeconnection and data readermyReader.Close();myConnection.Close();数组绘图// Initialize an array of doublesdouble[] yval = { 2, 6, 4, 5, 3 };// Initialize an array of stringsstring[] xval = { "Peter", "Andrew", "Julie", "Mary", "Dave" };// Bind the double array to the Y axis points of the Default dataseriesChart1.Series["Series1"].Points.DataBindX Y(xval, yval);数据库9,dataview// Resolve the address to the Access databasestringfileNameString = this.MapPath(".");fileNameString += "..\\..\\..\\data\\chartdata.mdb";//Initialize a connectionstringstringmyConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DataSource=" + fileNameString;// Definethe databasequerystringmySelectQuery="SELECT * FROM REPS;";// Createa database connection object using the connectionstringOleDbConnection myConnection = newOleDbConnection(myConnectionString);// Create adatabase command on the connection usingqueryOleDbCommandmyCommand = new OleDbCommand(mySelectQuery, myConnection);// Open theconnectionmyCommand.Connection.Open();//Initializes a new instance of the OleDbDataAdapter classOleDbDataAdapter custDA = new OleDbDataAdapter();custDA.SelectCommand = myCommand;//Initializes a new instance of the DataSet classDataSetcustDS = new DataSet();// Addsrows in the DataSetcustDA.Fill(custDS, "Customers");//Initializes a new instance of the DataView classDataViewfirstView = new DataView(custDS.Tables[0]);// Sincethe DataView implements IEnumerable, pass the dataview directlyinto // the DataBind method with thename of the Columns selected in thequeryChart1.Series["Default"].Points.DataBindX Y(firstView,"Name",firstView, "Sales");// Closesthe connection to the data source. This is the preferred// method of closing any openconnection.myCommand.Connection.Close();指定坐标轴的数据显示范围// Create a new random number generatorRandom rnd = new Random();// Add points to the stock chart seriesfor (int index = 0; index < 10; index++){Chart1.Series["Series1"].Points.AddX Y(rnd.Next(10,90), // X value is a daternd.Next(40,50)); //Close Y value}Chart1.ChartAreas[0].AxisY.Minimum = 40;Chart1.ChartAreas[0].AxisY.Maximum = 50;数据排序// Use point index for drawing the chartChart1.Series["Series1"].I sX ValueIndexed = true;// Sortseries points by second Y valueChart1.DataManipulator.Sort(PointSortOrder.Ascending, "Y2","Series1");查找数据最大值和最小值// Find point with maximum Y value and change colorDataPointmaxValuePoint =Chart1.Series["Series1"].Points.FindMaxValue();maxValuePoint.Color = Color.FromArgb(255, 128, 128);// Findpoint with minimum Y value and change colorDataPointminValuePoint =Chart1.Series["Series1"].Points.FindMinValue();minValuePoint.Color = Color.FromArgb(128, 128, 255);pie显示交互private void Page_Load(object sender, System.EventArgs e){// Addseries to the chartSeriesseries = Chart1.Series.Add("My series");// Setseries and legend tooltipsseries.ToolTip = "#VALX: #VAL{C} million";series.LegendToolTip = "#PERCENT";series.PostBackValue = "#INDEX";series.LegendPostBackValue = "#INDEX";// Populateseries datadouble[] yValues = {65.62, 75.54, 60.45, 34.73, 85.42, 32.12, 55.18, 67.15,56.24, 23.65};string[] xValues = {"France", "Canada", "Germany", "USA", "Italy", "Russia","China", "Japan", "Sweden", "Spain" };series.Points.DataBindX Y(xValues, yValues);// Setseries visual attributesseries.Type= SeriesChartType.Pie;series.ShadowOffset = 2;series.BorderColor = Color.DarkGray;series.CustomAttributes = "LabelStyle=Outside";}protected void Chart1_Click(object sender, ImageMapEventArgse){intpointIndex = int.Parse(e.PostBackValue);Seriesseries = Chart1.Series["My series"];if(pointIndex >= 0 &&pointIndex < series.Points.Count){series.Points[pointIndex].CustomProperties +="Exploded=true";}}chart点击事件/// <summary>/// Page Load event handler./// </summary>protected void Page_Load(object sender, System.EventArgs e){this.Chart1.Click += new ImageMapEventHandler(Chart1_Click);// directusing of PostBackValueforeach(Series series in this.Chart1.Series){series.PostBackValue = "series:" + + ",#INDEX";}// transferof click coordinates. getCoordinates is a javascriptfunction.stringpostbackScript =ClientScript.GetPostBackEventReference(this.Chart1,"chart:@");this.Chart1.Attributes["onclick"] = postbackScript.Replace("@'", "'+ getCoordinates(event)"); }/// <summary>/// Handles the Click event of the Chart1 control./// </summary>/// <param name="sender">The sourceof the event.</param>/// <paramname="e">The<seecref="System.Web.UI.WebControls.ImageMapEventArgs"/>instance containing the eventdata.</param>protected void Chart1_Click(object sender, ImageMapEventArgse){this.Chart1.Titles["ClickedElement"].Text = "Nothing";string[]input = e.PostBackValue.Split(':');if(input.Length == 2){string[] seriesData = input[1].Split(',');if (input[0].Equals("series")){this.Chart1.Titles["ClickedElement"].Text = "Last Clicked Element:" + seriesData[0] + " - Data Point #" + seriesData[1];}else if (input[0].Equals("chart")){// hit test of X and Y click pointHitTestResult hitTestResult=this.Chart1.HitTest(Int32.Parse(seriesData[0]),Int32.Parse(seriesData[1]));if (hitTestResult != null){this.Chart1.Titles["ClickedElement"].Text = "Last Clicked Element:" + hitTestResult.ChartElementType.ToString();}}}}。

MSChart的使用

MSChart的使用

MSChart的使用编写人:少将日期:2011-02-231.下载并注册MSCHRT20.OCX控件 (1)2.添加MSChart控件 (1)3.需要使用的头文件 (2)4.类中定义变量和方法 (3)5.在对话框的OnInitDialog()函数中 (4)6.在对话框的OnSize()函数中 (5)7.完成initmschart() (5)8.完成DrawChart() (7)9.完成OnChartLine()、OnChartCombi()、OnChartPie() (8)1.下载并注册MSCHRT20.OCX控件下载MSChart6.0,并通过regsvr32进行注册2.添加MSChart控件3.需要使用的头文件首先在要使用的类的实现文件中包含如下头文件:#include "VcPlot.h"#include "VcAxis.h"#include "VcValueScale.h"#include "VcSeriesCollection.h"#include "VcSeries.h"#include "VcPen.h"#include "VcCategoryScale.h"#include "VcColor.h"#include "VcDataGrid.h"#include "VcBackdrop.h"#include "VcFill.h"#include "VcBrush.h"#include "VcDataPoints.h"#include "VcDataPoint.h"#include "VcDataPointLabel.h"#include "VcAxisTitle.h"#include "math.h"#include "VcAxisGrid.h"#include "VcAxisScale.h"在要使用的类的头文件中包含:#include "mschart.h"4.类中定义变量和方法class CTestMSChartDlg : public CDialog{// Constructionpublic:CTestMSChartDlg(CWnd* pParent = NULL); // standard constructor// Dialog Data//{{AFX_DATA(CTestMSChartDlg)enum { IDD = IDD_TESTMSCHART_DIALOG };// NOTE: the ClassWizard will add data members here//}}AFX_DATA// ClassWizard generated virtual function overrides//{{AFX_VIRTUAL(CTestMSChartDlg)protected:virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support //}}AFX_VIRTUAL// Implementationprotected:HICON m_hIcon;// Generated message map functions//{{AFX_MSG(CTestMSChartDlg)virtual BOOL OnInitDialog();afx_msg void OnSysCommand(UINT nID, LPARAM lParam);afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();afx_msg void OnSize(UINT nType, int cx, int cy);afx_msg void OnBtnline();afx_msg void OnBtncombi();afx_msg void OnBtnpie();//}}AFX_MSGDECLARE_MESSAGE_MAP()private:void DrawChart();void initmschart();void OnChartLine();void OnChartCombi();void OnChartPie();CMSChart m_Chart;};5.在对话框的OnInitDialog()函数中BOOL CTestMSChartDlg::OnInitDialog(){CDialog::OnInitDialog();// Add "About..." menu item to system menu.// IDM_ABOUTBOX must be in the system command range.ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX < 0xF000);CMenu* pSysMenu = GetSystemMenu(FALSE);if (pSysMenu != NULL){CString strAboutMenu;strAboutMenu.LoadString(IDS_ABOUTBOX);if (!strAboutMenu.IsEmpty()){pSysMenu->AppendMenu(MF_SEPARATOR);pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);}}// Set the icon for this dialog. The framework does this automatically// when the application's main window is not a dialogSetIcon(m_hIcon, TRUE); // Set big iconSetIcon(m_hIcon, FALSE); // Set small icon// TODO: Add extra initialization here//创建图表CRect rc;GetClientRect(&rc);rc.bottom-=50;m_Chart.Create("mschart", WS_CHILD| WS_VISIBLE, rc, this, 10);initmschart();DrawChart();//折线图OnChartLine();//条状图//OnChartCombi();//饼状图//OnChartPie();return TRUE; // return TRUE unless you set the focus to a control}6.在对话框的OnSize()函数中//控件自适应窗口大小void CTestMSChartDlg::OnSize(UINT nType, int cx, int cy){CDialog::OnSize(nType, cx, cy);// TODO: Add your message handler code hereif( m_Chart.GetSafeHwnd() )m_Chart.MoveWindow( 0, 0, cx, cy );}7.完成initmschart()//初始化图表void CTestMSChartDlg::initmschart(){// 设置标题m_Chart.SetTitleText("mschart 示例");// 下面两句改变背景色m_Chart.GetBackdrop().GetFill().SetStyle(1);m_Chart.GetBackdrop().GetFill().GetBrush().GetFillColor().Set(255, 255, 255);// 显示图例m_Chart.SetShowLegend(TRUE);m_Chart.SetColumn(1);m_Chart.SetColumnLabel((LPCTSTR)"1号机");m_Chart.SetColumn(2);m_Chart.SetColumnLabel((LPCTSTR)"2号机");m_Chart.SetColumn(3);m_Chart.SetColumnLabel((LPCTSTR)"3号机");// 栈模式//m_Chart.SetStacking(TRUE);//X轴设置m_Chart.SetRowCount(6);char buf[32];for(int row=1;row<=6;++row){m_Chart.SetRow(row);sprintf(buf, "%d号", row);m_Chart.SetRowLabel((LPCTSTR)buf);}V ARIANT varX;// 不自动标注X轴刻度m_Chart.GetPlot().GetAxis(0,varX).GetCategoryScale().SetAuto(FALSE);// 每刻度一个标注m_Chart.GetPlot().GetAxis(0,varX).GetCategoryScale().SetDivisionsPerLabel(1);// 每刻度一个刻度线m_Chart.GetPlot().GetAxis(0,varX).GetCategoryScale().SetDivisionsPerTick(1);// X轴名称m_Chart.GetPlot().GetAxis(0,varX).GetAxisTitle().SetText("日期");// Y轴设置V ARIANT varY;m_Chart.GetPlot().GetAxis(1,varY).GetValueScale().SetAuto(FALSE); // 不自动标注Y 轴刻度m_Chart.GetPlot().GetAxis(1,varY).GetValueScale().SetMaximum(100); // Y轴最大刻度m_Chart.GetPlot().GetAxis(1,varY).GetValueScale().SetMinimum(0); // Y轴最小刻度m_Chart.GetPlot().GetAxis(1,varY).GetValueScale().SetMajorDivision(5); // Y轴刻度5等分m_Chart.GetPlot().GetAxis(1,varY).GetValueScale().SetMinorDivision(1); // 每刻度一个刻度线m_Chart.GetPlot().GetAxis(1,varY).GetAxisTitle().SetText("小时"); // Y轴名称// 3条曲线m_Chart.SetColumnCount(3);// 线色m_Chart.GetPlot().GetSeriesCollection().GetItem(1).GetPen().GetVtColor().Set(0, 0, 255);m_Chart.GetPlot().GetSeriesCollection().GetItem(2).GetPen().GetVtColor().Set(255, 0, 0);m_Chart.GetPlot().GetSeriesCollection().GetItem(3).GetPen().GetVtColor().Set(0, 255, 0);// 线宽(对点线图有效)m_Chart.GetPlot().GetSeriesCollection().GetItem(1).GetPen().SetWidth(50);m_Chart.GetPlot().GetSeriesCollection().GetItem(2).GetPen().SetWidth(100);m_Chart.GetPlot().GetSeriesCollection().GetItem(3).GetPen().SetWidth(2);// 数据点类型显示数据值的模式(对柱柱状图和点线图有效)// 0: 不显示1: 显示在柱状图外// 2: 显示在柱状图内上方3: 显示在柱状图内中间4: 显示在柱状图内下方m_Chart.GetPlot().GetSeriesCollection().GetItem(1).GetDataPoints().GetItem(-1).GetD ataPointLabel().SetLocationType(1);m_Chart.GetPlot().GetSeriesCollection().GetItem(2).GetDataPoints().GetItem(-1).GetD ataPointLabel().SetLocationType(1);m_Chart.GetPlot().GetSeriesCollection().GetItem(3).GetDataPoints().GetItem(-1).GetD ataPointLabel().SetLocationType(1);//不要与x轴垂直的表格线m_Chart.GetPlot().GetAxis(0,varX).GetAxisGrid().GetMajorPen().SetStyle(0);// no x grids//隐藏第二y轴,即右边的y轴m_Chart.GetPlot().GetAxis(2,varY).GetAxisScale().SetHide(TRUE);}8.完成DrawChart()//设置数据void CTestMSChartDlg::DrawChart(){/*int nRowCount = 6;char buf[32];srand( (unsigned)time( NULL ) );for(int row = 1; row <= nRowCount; ++row){m_Chart.SetRow(row);sprintf(buf, "%d号", row);m_Chart.SetRowLabel((LPCTSTR)buf);m_Chart.GetDataGrid().SetData(row, 1, rand() * 100 / RAND_MAX, 0);m_Chart.GetDataGrid().SetData(row, 2, rand() * 100 / RAND_MAX, 0);m_Chart.GetDataGrid().SetData(row, 3, rand() * 100 / RAND_MAX, 0);}*/for(int row=1;row<=6;++row){m_Chart.GetDataGrid().SetData(row, 1, 11*row, 0);m_Chart.GetDataGrid().SetData(row, 2, 22*row, 0);m_Chart.GetDataGrid().SetData(row, 3, 33*row, 0);}m_Chart.Refresh();m_Chart.EditCopy();}9.完成OnChartLine()、OnChartCombi()、OnChartPie()/*设置图例类型3:曲线型;1:条形;14:饼图,0:三维显示,1:二维显示m_Chart.SetChartType(1|0) //2D柱(条)形,m_Chart.SetChartType(0|0) //3D柱(条)形m_Chart.SetChartType(1|2) //2D线条型m_Chart.SetChartType(0|2) //3D线条型m_Chart.SetChartType(1|4) //2D区域型m_Chart.SetChartType(0|4) //3D区域型m_Chart.SetChartType(1|6) //2D阶梯型m_Chart.SetChartType(0|6) //3D阶梯型m_Chart.SetChartType(1|8) //2D复(混)合型m_Chart.SetChartType(0|8) //3D复(混)合型另外,在2D方式中,还有两类:饼型和XY型m_Chart.SetChartType(14) //2D 饼型m_Chart.SetChartType(16) //2DXY型*/// 折线图void CTestMSChartDlg::OnChartLine(){m_Chart.SetChartType(3); DrawChart();}// 柱状图void CTestMSChartDlg::OnChartCombi() {m_Chart.SetChartType(1); DrawChart();}// 饼状图void CTestMSChartDlg::OnChartPie() {m_Chart.SetChartType(14); DrawChart();}。

如何安装 Microsoft 分布式事务处理协调器

如何安装 Microsoft 分布式事务处理协调器

如何安装Microsoft 分布式事务处理协调器安装操作系统并配置群集之后,必须在Microsoft Windows 2000 和Microsoft Windows Server 2003 操作系统上配置Microsoft 分布式事务处理协调器(MS DTC),才能使用群集管理器在群集中工作。

配置MS DTC 群集失败不会终止SQL Server 2005 安装程序,但是如果MS DTC 配置不正确,SQL Server 2005 应用程序的功能可能会受到影响。

为了确保多个群集应用程序的可用性,强烈建议将Microsoft 分布式事务处理协调器配置为拥有自己的资源组和资源。

如何在Windows Server 2003 群集上配置Microsoft 分布式事务处理协调器本文描述如何在Windows Server 2003 群集上安装Microsoft 分布式事务处理协调器(MSDTC)。

Microsoft 仅支持在群集节点上作为群集资源运行MSDTC。

可以采用两种方法安装MSDTC。

使用群集管理器或Cluster.exe 创建MSDTC 资源前,必须启用网络DTC 访问。

有关启用DTC 访问的更多信息,请单击下面的文章编号,以查看Microsoft 知识库中相应的文章:817064如何在Windows Server 2003 中启用网络DTC 访问注意:如果这是“多数节点集”(MNS) 群集,请不要将MNS 资源用作MSDTC 的存储设备。

MSDTC 需要存储资源(如物理磁盘)。

要安装MSDTC,请使用下列方法之一:方法1:使用群集管理器本节介绍如何在群集中的所有节点上通过群集管理器安装MSDTC。

只要在群集管理器中安装MSDTC 一次,即会在群集中的所有节点上配置MSDTC。

不必在每个节点上手动安装MSDTC。

1.完成知识库文章817064 中介绍的步骤。

注意:如果群集专门用于Microsoft Exchange Server,则不必启用网络DTC 访问。

VS_MSChart控件的安装及应用

VS_MSChart控件的安装及应用

VS_MSChart控件的安装及应用1. 安装在VS中使用 Chart 控件的要求是 .net framework service pack 1准备 4 个文件,分别是:dotnetfx35sp1.exe(若当前 framework 版本为 sp1.1 就不需要装这个了)MSChart.exeMSChart_VisualStudioAddOn.exeMSChartLP_chs.exe顺序:MSChart.exeMSChart_VisualStudioAddOn.exe(至此,打开 VS 可看到工具箱中新增了[data]选项卡,下面有 Chart 控件)注意:安装时 VS 需要关闭安装中遇到的问题的小结:运行 dotNetFx35setup.exe 时,首先会提示下载,下载完毕之后进入安装。

但安装出错,报错原因为 dotnetfx2.0 SP1、dotnetfx3.0 SP1 安装不正确,错误代码 1603。

根据网上的资料,需要先清除系统中所有的 .net framework,然后重新安装。

清除时使用 microsoft 的工具dotnetfx_cleanup_tool 完全清除。

之后关闭 Cryptographic Services 服务,并删除system32\catroot2 目录下的所有内容。

再重新启动 Cryptographic Services 服务。

打开 dotnetfx35\wcu\dotNetFramework\dotNetFX30 目录,找到 WIC_x86_enu.exe,点击安装。

之后安装 dotnetfx35\wcu\dotNetFramework 目录中的 dotNetFx35setup.exe 独立安装包即可成功。

2. 使用需要添加如下引用System.Windows.Forms.DataVisualization.dll并导入如下命名空间using System.Windows.Forms.DataVisualization.Charting;但是这个命名空间只有在安装了 ChartControl.exe 之后才能在添加引用窗口中的 .NET 组件中找到,但是要安装 ChartControl 组件,需要当前的系统环境为 .net framework 3.5 SP1。

mschart annotations 使用方法

mschart annotations 使用方法

一、概述在数据可视化中,注释是一种重要的功能,它可以帮助用户更清晰地理解图表中的数据,传达更加准确和清晰的信息。

MSChart是微软公司提供的一种图表绘制工具,具有丰富的功能和灵活的应用方式。

本文将介绍MSChart中注释的使用方法,帮助读者更好地利用这一功能进行数据可视化和分析。

二、MSChart注释的基本概念1. MSChart是什么?MSChart是微软公司提供的一种用于绘制图表的工具,它能够生成丰富多样的图表,包括线形图、柱状图、饼图等。

MSChart提供了丰富的功能和参数,能够满足用户在数据可视化方面的需求。

2. 注释在数据可视化中的作用注释是指在图表中添加文字、箭头、线条等元素,用来对图表中某个特定的数据点或趋势进行解释和说明。

注释能够让用户更加直观地理解数据,传达更加有效和清晰的信息。

三、在MSChart中使用注释的方法1. 添加注释在MSChart中,用户可以通过以下步骤添加注释:(1)通过代码:在代码中使用Annotation类的实例来创建并添加注释。

(2)通过设计器:在设计器中选择需要添加注释的图表,右键点击选择“添加注释”,然后在图表上选择需要添加注释的位置,并输入注释内容。

2. 设置注释的样式和格式MSChart提供了丰富的接口和属性来设置注释的样式和格式,包括字体、颜色、格式、位置等。

用户可以根据自己的需求对注释进行定制化设置,使得注释更加符合实际应用场景和用户需求。

3. 对注释进行交互操作在MSChart中,用户可以对注释进行交互操作,包括拖动、调整大小、隐藏、显示等。

这种交互操作能够帮助用户更好地理解数据,并进行更深入的分析和研究。

4. 多种类型的注释除了常见的文字注释外,MSChart还支持添加箭头、线条等元素作为注释,这些不同类型的注释能够更好地帮助用户理解数据,传达更加清晰的信息。

四、注意事项和常见问题1. 注释的数量和位置在使用注释时,需要注意不要添加过多的注释,这会导致图表混乱,影响用户的观感。

图表绘制控件mschart的使用方法1

图表绘制控件mschart的使用方法1

图表绘制控件mschart的使⽤⽅法1VisualBasic中ActiveX控件MSChart的使⽤⽅法*依⽪提哈尔·穆罕买提,那斯尔江·⼟尔逊(新疆⼤学数学与系统科学学院,乌鲁⽊齐,830046)热依曼·吐尔逊(新疆⼤学信息⼯程学院,乌鲁⽊齐,830046)摘要:本⽂⾸先介绍了VisualBasic(简称VB)中MSChart控件的使⽤⽅法,然后通过简单的例⼦详细介绍了利⽤MSChart控件绘制Excel数据源图表的⽅法。

关键词:VisualBasic;MSChart控件;MicrosoftExcel数据表;图表;数据库The Methods of Using MSChart Control Based on VBIptihar.Muhammat,Nasirjan.Tursun(Mathematics and Systematic Science Institude of XinjiangUniversity,Urumqi,Xinjiang,830046)Reyima.Tursun(Information Science and Engineering Institude of Xinjiang University,Urumqi,Xinjiang,830046)Abstract:This article discusses how to use the MSChart control and how that is used in the VB project to drawing Microsoft? Excel charts.KeyWords: MSChart Control;Chartdata ;Mirosoft Excel Sheets;Chart;Database1. 引⾔Visual Basic中的MSChart控件是⼀个功能强⼤的⾼级图表⼯具,拥有丰富的图表绘制功能,⽤它来可以显⽰⼆维和三维的棒图、区域图、线形图、饼图等多种常⽤图表。

mschart利用技能总结

mschart利用技能总结

MSChart使用技巧总结上一篇文章写了用dotnetCHARTING 制作柱形图,折线图和圆饼图园友一直在推荐用微软的MSChart..于是,这几天工作之余研究了一下,其中也发现了不少问题.首先固然需要下载MSChart 下载地址而且微软官方有个很不错的实例代码可以帮助学习使用MSChart 下载地址,当然不用我说.大家也知道的.需要NET Framework 以及配合VS2008 sp1来使用了,至于vs2010好像还没有发现MSChart ,希望有知道的朋友给点帮助.安装完MSChart后在vs2021报表一栏里会出现MSChart控件..二话不说拖到页面.自动生成如下代码:代码<asp:Chart ID="Chart1"runat="server"><Series><asp:Series Name="Series1"></asp:Series></Series><ChartAreas><asp:ChartArea Name="ChartArea1"></asp:ChartArea></ChartAreas></asp:Chart>复制代码相信在你们看过微软的实例后对这些属性会有一些了解滴..然后进入正题,本文也主要介绍MSChart的折线图,圆饼图,和柱状图, 因为这三种本人感觉是最常常利用的.对于这三种用MSChart来实现的话本人感觉比较困难的就是数据绑定带来的麻烦,因为在咱们平时利用的时候大体都是动态的数据,而微软实例大体都是写死在页面上的数据, 而且网上这方面资料也比较少,只能自己动手实践啦.先介绍几种MSChart的数据绑定方式,第一种,也是最通俗的一种= ();["ChartArea1"].XValueMember = "home";["ChartArea1"].YValueMembers = "num1";复制代码第二种往后都是通过List的集合形式绑定数据,这里就用变量list来代替了.一些变量都是对应实体类的名称固然也对应数据库字段(list, "home");"home"是x轴坐标第三种,home 分组,Time X轴坐标,num1 y轴坐标(list, "home", "Time", "num1", "Label=num1,ToolTip=num1");第三种,折线图绑定方式[0].(list, "home", "num1", "Label=num1,ToolTip=num1");第四种,折线图绑定方式代码(list, "home", "Time", "num1", "Label=num1,ToolTip=num1");list, "home", list, "num1");我所了解的就这么几种了,有朋友知道有更好的绑定方式不妨贴上代码来.下面介绍下MSChart下的柱形图常常利用的属性这篇博客都有介绍,在这里我就不罗嗦了..代码= true;hartType = ;sValueShownAsLabel = true;= 1;= false;= false;= 40;= 20;foreach (Series ser in{以在挪用这些属性时先用上文介绍的几种绑定方式绑定数据.有些属性可能在3D模式下失效或在2D模式下失效,这是正常现象,效果图:折线图:属性同上..有些属性会在折线图下失效,效果图:圆饼图:代码IList<ChartModel> list = ();abel = "#PERCENT{P}";["Series1"].(list, "home", "num1", "LegendText=home,YValues=num1,ToolTip=num1"); ["Series1"].ChartType =["Series1"].ToolTip = "#LEGENDTEXT: #VAL{C} million";["ChartArea1"]. = true;复制代码这个比较简单吧..主如果这里的["Series1"].(list, "home", "num1","LegendText=home,YValues=num1,ToolTip=num1");LegendText整了我半天.这个是显示右边说明的,开始老是显示不出来,而且还不统一.Legend其实就是右边显示的说明,可是做过的朋友会发此刻柱形图还有折线图若是页面指定了一个<Lengend></Lengend>标签的话,会多显示一个,所以需要在执行绑定的时候写上这么一段代码可不止可以制作这三种图形,我只是感觉这三种比较常常利用.想在圆饼图中归并几项成显示成其他,弄了半天没弄出来,愁闷,谁知道告知下。

MFC中MSChart的使用示例

MFC中MSChart的使用示例

MFC中MSChart的使用示例最近由于工作的原因,接触了一些MSChart的东西。

在查看的资料的时候发现,网上很多资料是关于在VB和C#中利用MSChart实现图表的绘制,但关于在MFC中利用MSChart 实现图表绘制的资料甚少,因此在做的过程中遇到了很多问题,下面对MFC中使用MSChart 进行简单的小结:1.添加MSChart点击VS中的“工具-选择工具箱-COM组件”,找到Microsoft Chart Control,version 6.0(OLEDB)并勾选(注:如果COM组件中不存在该项,便可自行安装,从网上下载MSChart.exe 和MSCHART20.OCX。

首先安装MSChart.exe,然后注册MSCHART20.OCX,如果是win7下要用管理方式运行注册,方可成功)。

如下所示:2.在对话框中添加MSChart控件这个比较简单,在此不再赘述,如下所示:3.属性设置MSChart控件的属性及说明如下,可根据需要自行设置。

ChartAreas:增加多个绘图区域,每个绘图区域包含独立的图表组、数据源,用于多个图表类型在一个绘图区不兼容时。

AlignmentOrientation:图表区对齐方向,定义两个绘图区域间的对齐方式。

AlignmentStyle:图表区对齐类型,定义图表间用以对其的元素。

AlignWithChartArea:参照对齐的绘图区名称。

InnerPlotPosition:图表在绘图区内的位置属性。

Auto:是否自动对齐。

Height:图表在绘图区内的高度(百分比,取值在0-100 )Width:图表在绘图区内的宽度(百分比,取值在0-100 )X,Y:图表在绘图区内左上角坐标Position:绘图区位置属性,同InnerPlotPosition。

Name:绘图区名称。

Axis:坐标轴集合Title:坐标轴标题TitleAlignment:坐标轴标题对齐方式Interval:轴刻度间隔大小IntervalOffset:轴刻度偏移量大小MinorGrid:次要辅助线MinorTickMark:次要刻度线MajorGrid:主要辅助线MajorTickMark:主要刻度线DataSourceID:MSChart的数据源。

Microsoft Visual Studio 2010中MSChart控件用于仿真曲线样例

Microsoft Visual Studio 2010中MSChart控件用于仿真曲线样例

MSchart控件在C++6.0和Microsoft visual studio 2005中使用都需要额外安装控件,但是Microsoft visual studio 2010中已经内含此控件,所以此教程用于Microsoft visual studio 2010版本使用。

1:新建MFC工程,此处可以选择对话框程序,如图1所示,其余设置可默认。

图12:MSChart控件位于工具箱下端的常规控件选项卡中,若是工具箱面板中未找到,可以右击工具箱→选择项→COM组件中选择Microsoft Chart Control,version5.0。

控件位置及图标如图2所示。

注:此处除Microsoft Chart Control,version5.0外,还有Microsoft Chart Control 6.0,所使用的是version5.0,但添加的类却是6.0,对于此处差别还不太清楚。

图23:添加Microsoft Chart Control控件到对话框程序中,如图3所示。

图34:点击Microsoft Chart Control控件,右端出现属性窗口,如图4所示,在此处可以对于此控件进行设置,下面对于各个控件属性含义进行具体讲解。

图4更改属性页内属性,属性页位于属性列表上端快捷键最后一位,属性页如图5所示。

图5属性列表主要包括以下几个方面的设置:Chart主要包括对于图表类型的选择,此例中主要使用的是Line(2D),选项Show legend 为显示图例,在此例中需要进行勾选。

设置如图6所示。

图6Axis主要是对于各个坐标轴的设置,其中Axis可以进行X Axis、Y Axis及Second Y Axis 三个轴的选择,其中Show scale选项可以选择对应轴是否显示,Automatic scaling可以对于坐标轴上最大值、最小值、标注标签间隔和每个间隔细分格数(对于X及Y轴是不同的,X轴若是100为一个格,50需要为一个小格,Y轴Major divisions对应的是大格格数,Minor divisions对应小格格数)。

VBmschart控件的使用

VBmschart控件的使用

一、先看个小例子Private Sub Form_Load()Dim MyData(20, 1) As Double'-----x轴坐标值-----Y轴坐标值----------MyData(0, 0) = 0: MyData(0, 1) = 180 '本句代表了:第一点数据的X 轴坐标为0,Y轴坐标为180MyData(1, 0) = 6: MyData(1, 1) = 60MyData(2, 0) = 8: MyData(2, 1) = 60MyData(3, 0) = 11: MyData(3, 1) = 0MyData(4, 0) = 16: MyData(4, 1) = 0MyData(5, 0) = 19: MyData(5, 1) = 60MyData(6, 0) = 25.8: MyData(6, 1) = 60MyData(7, 0) = 28.8: MyData(7, 1) = 0MyData(8, 0) = 31.8: MyData(8, 1) = 60MyData(9, 0) = 40.3: MyData(9, 1) = 60MyData(10, 0) = 43.3: MyData(10, 1) = 0MyData(11, 0) = 93.3: MyData(11, 1) = 0MyData(12, 0) = 96.3: MyData(12, 1) = 60MyData(13, 0) = 99.3: MyData(13, 1) = 0MyData(14, 0) = 105.3: MyData(14, 1) = 0MyData(15, 0) = 135.3: MyData(15, 1) = 0MyData(16, 0) = 144.3: MyData(16, 1) = 180MyData(17, 0) = 148.8: MyData(17, 1) = 270MyData(18, 0) = 405.03: MyData(18, 1) = 270MyData(19, 0) = 409.53: MyData(19, 1) = 180MyData(20, 0) = 564.17: MyData(20, 1) = 180'波形图外观设置With MSChart1.TitleText = "速度 m/min"' '设置图线的外观.Plot.SeriesCollection(1).Pen.Width = 30.Plot.SeriesCollection(1).Pen.Style = VtPenStyleSolid' '设置XY轴.Plot.Axis(VtChAxisIdX).ValueScale.Auto = False.Plot.Axis(VtChAxisIdY).ValueScale.Auto = False'// 设置最大值.Plot.Axis(VtChAxisIdX).ValueScale.Maximum = 600 '设置横轴标注最大值.Plot.Axis(VtChAxisIdY).ValueScale.Maximum = 300 '设置纵轴标注最大值'// 设置最小值.Plot.Axis(VtChAxisIdY).ValueScale.Minimum = 0.Plot.Axis(VtChAxisIdX).ValueScale.Minimum = 0'//.Plot.Axis(VtChAxisIdX).ValueScale.MajorDivision = 6 'X轴主要网格数量.Plot.Axis(VtChAxisIdY).ValueScale.MajorDivision = 6 'Y轴主要网格数量.Plot.Axis(VtChAxisIdX).ValueScale.MinorDivision = 0 'X轴次要网格数量.Plot.Axis(VtChAxisIdY).ValueScale.MinorDivision = 0 'Y轴次要网格数量s = FalseMSChart1.chartType = VtChChartType2dXY '设置图形为二维散点图MSChart1.ChartData = MyData '数据End WithEnd Sub二、mschart控件属性介绍1.RowCount属性设置作图数据的行数。

如何使用MsChart?

如何使用MsChart?

如何使用MsChart?MsChart是微软出品的一款功能强大的制作图表工具,用它可以很方便的建立各种图表。

下面我们举例来说明:submitinfo.asp' 发送数据程<HTML><HEAD><META NAME="GENERA TOR" Content="Microsoft Visual Studio 6.0"></HEAD><BODY><form method=post name="form1" action=mschart.asp><INPUT type="submit" value="发送" id=submit1 name=submit1><input type="hidden" value="宋英特的童年记录" name=chtitle><input type="hidden" value=3 name=rcount>' rcount 列数<input type="hidden" value=2 name=ccount>' ccount 行数<input type="hidden" value=1 name=rc_type><input type="hidden" value="1998" name=rname>' rname 列名数组<input type="hidden" value="1999" name=rname><input type="hidden" value="2000" name=rname><input type="hidden" value="身高" name=cname>' cname 行名数组<input type="hidden" value="体重" name=cname><input type="hidden" value=72 name=rc_data>' rc_data 数据<input type="hidden" value=75 name=rc_data><input type="hidden" value=78 name=rc_data><input type="hidden" value=81 name=rc_data><input type="hidden" value=84 name=rc_data><input type="hidden" value=89 name=rc_data></form></BODY></HTML>mschart.asp' 显示数据程序<%@ Language=VBScript %><HTML><HEAD><META NAME="GENERA TOR" Content="Microsoft Visual Studio 6.0"> <SCRIPT ID=clientEventHandlersJS LANGUAGE=javascript><!--function window_onload() {t=0;mschart1.TitleText = document.form1.chtitle.value;mschart1.ShowLegend =true;mschart1.ColumnCount =ount.value;mschart1.RowCount =document.form1.rcount.value;for (i=0;i<document.form1.rcount.value;i++){for (j=0;j<ount.value;j++){ mschart1.Row=i+1;mschart1.Column=j+1;if (ount.value>1)mschart1.ColumnLabel =ame(j).value;elsemschart1.ColumnLabel =ame.value;if ((document.form1.rcount.value*ount.value)>1) mschart1.Data=document.form1.rc_data(t).value;elsemschart1.Data=document.form1.rc_data.value;t++;}if (document.form1.rcount.value>1)mschart1.RowLabel =document.form1.rname(i).value ;elsemschart1.RowLabel =document.form1.rname.value ;}}function select1_onchange() {mschart1.chartType =select1.valuemschart1.Plot}//--></SCRIPT><TITLE>精彩春风之图表显示</TITLE></HEAD><BODY LANGUAGE=javascript onload="return window_onload()"><---此处插入mschart activex控件---><BR>MsChart显示方式<SELECT id=select1 name=select1 LANGUAGE=javascript onchange="return select1_onchange()"><OPTION value=1>二维直方图</OPTION><OPTION value=0>三维直方图</OPTION><OPTION value=3>二维折线图</OPTION><OPTION value=2>三维折线图</OPTION><OPTION value=5>二维面积图</OPTION><OPTION value=4>三维面积图</OPTION><OPTION value=14>饼图</OPTION></SELECT><form name=form1 id=form1><% for i=1 to Request.Form("rcount")%><input type="hidden" name=rname id=rname value=<%=Request.Form("rname")(i)%>> <%next%><% for i=1 to Request.Form("ccount")%><input type="hidden" name=cname id=cname value=<%=Request.Form("cname")(i)%>> <%next%><input type="hidden" name=rcount id=rcount value=<%=Request.Form("rcount")%>><input type="hidden" name=chtitle id=chtitle value=<%=Request.Form("chtitle")%>>' chtitle 标题<input type="hidden" name=ccount id=ccount value=<%=Request.Form("ccount")%>> <%if Request.Form("rc_type")=1 then%>' rc_type 排列方式(1 以行方式,2以列方式)<%for i=1 to Request.Form("rcount")*Request.Form("ccount")%><input type="hidden" name=rc_data id=rc_data value=<%=Request.Form("rc_data")(i)%>> <%next%><%else%><%for j=1 to Request.Form("rcount")%><%for i=1 to Request.Form("ccount")%><input type="hidden" name=rc_data id=rc_data value=<%=Request.Form("rc_data")((i-1)*Request.Form("rcount")+j)%>> <%next%> <%next%> <%end if%> </form></BODY> </HTML>。

微软图形控件(MSchart)

微软图形控件(MSchart)

三、数据绑定
(一)数据绑定方式 可以在图表的设计界面,在属性设置窗口中的Series 属性下的Points中添加需要的数据. 可以在图表的设计界面中,在属性中绑定一个数据源. 可以在后台代码中,动态添加数据. 可以在后台代码中设置一个或多个数据源,直接绑定 到图表中.
三、数据绑定(方法一)
<asp:Series Name="Series1" Legend="Legend1"> <Points> <asp:DataPoint XValue="1" YValues="700" /> <asp:DataPoint XValue="2" YValues="400" /> <asp:DataPoint XValue="3" YValues="200" /> <asp:DataPoint XValue="4" YValues="450" /> <asp:DataPoint XValue="5" YValues="300" /> </Points> </asp:Series>
五、CHARTAREAS(重要属性)
Area3DStyle:设置3D效果 Enable3D :是否开启3D效果 WallWidth:控制墙宽 IsRightAngleAxes:是否开启倾斜 Inclination :X轴倾斜度 Rotation :Y轴倾斜度 Y
三、数据绑定(方法四)
可绑定的数据源
根据官方文档的说法,只要是实现了IEnumerable接口的 数据类型,都可以绑定到图表控件中,例如:DataView, DataReader, DataSet, DataRow, DataColumn, Array, List, SqlCommand, OleDbCommand, SqlDataAdapter, 及 OleDbDataAdapter对象。 对于开发来说,最常用的还是DataView、DataReader、 DataSet、DataRow、Array、List这几种类型了。

MSCHART用法

MSCHART用法

Step 1 : Creating the ProjectStart Visual C++ en create a simple dialog based application labelled "Graph"Step 2 : Add the MSChart OCX to Your ProjectSelect "project menu" option and select "Components and contols" and then choose the MSChart component en click "add"Step 3 : Add the MSChart OCX to Your DialogSelect resources view tab en open the main dialog (It’s a simple dialog based application). Drop the ocx on your dialog.Now, label your Chart "IDC_MSCAHRT1"Now, choose menu option "Classwizard" to create a member variable of your chart labelled "m_Chart"Step 4: Add the CodeNow add a bouton labeled "Go" to your dialog. Double click it to edit the code and add the following code in the On_Go function:COleSafeArray saRet;DWORD numElements[] = {10, 10}; // 10x10// Create the safe-array...saRet.Create(VT_R8, 2, numElements);// Initialize it with values...long index[2];for(index[0]=0; index[0]<10; index[0]++) {for(index[1]=0; index[1]<10; index[1]++) {double val = index[0] + index[1]*10;saRet.PutElement(index, &val);}}// Return the safe-array encapsulated in a V ARIANT...m_Chart.SetChartData(saRet.Detach());m_Chart.Refresh;Step 5: Building and Running the ApplicationBuild and execute your app, then click the "Go" button. Here is the result:。

(完整word版)安装配置用户手册

(完整word版)安装配置用户手册

综合平台及物料平衡安装配置手册目录综合平台及物料平衡 (1)安装配置手册 (1)第一章前言 (4)第二章系统配置要求 (5)2.1 系统软件要求 (5)2.2 系统硬件要求 (6)2.3 安装之前的检查 (7)第三章安装环境 (9)3.1 IIS 安装 (9)3.2 dotnetfxchs安装 (11)3.3 数据库环境 (11)3.4 综合展示环境 (14)3.5 物料平衡运行环境 (21)第四章综合平台安装与配置............................................................. 错误!未定义书签。

4.1 综合平台安装..................................................................... 错误!未定义书签。

4.2 修改所有已安装软件的Web.config文件................... 错误!未定义书签。

4.3 配置综合平台..................................................................... 错误!未定义书签。

4.3 配置综合展示..................................................................... 错误!未定义书签。

4.4 配置自定义工作台............................................................. 错误!未定义书签。

4.5 配置XMES ......................................................................... 错误!未定义书签。

第五章物料平衡的部署 (26)第六章客户端浏览器配置 (29)7.1 系统安全站点设置 (29)7.2 系统安全设置设定 (30)第七章程序的卸载 (32)8.1. 卸载的准备 (32)8.2 .卸载程序 (32)第一章前言本手册主要内容为:服务器硬件配置要求、安装之前的检查,综合平台、工厂建模、自定义工作台、综合展示等组件的安装和卸载,以及物料平衡软件的部署。

MicrosoftVisualStudio2010中MSChart控件用于仿真曲线样例

MicrosoftVisualStudio2010中MSChart控件用于仿真曲线样例

MSchart控件在C++6.0和Microsoft visual studio 2005中使用都需要额外安装控件,但是Microsoft visual studio 2010中已经内含此控件,所以此教程用于Microsoft visual studio 2010版本使用。

1:新建MFC工程,此处可以选择对话框程序,如图1所示,其余设置可默认。

图12:MSChart控件位于工具箱下端的常规控件选项卡中,若是工具箱面板中未找到,可以右击工具箱→选择项→COM组件中选择Microsoft Chart Control,version5.0。

控件位置及图标如图2所示。

注:此处除Microsoft Chart Control,version5.0外,还有Microsoft Chart Control 6.0,所使用的是version5.0,但添加的类却是6.0,对于此处差别还不太清楚。

图23:添加Microsoft Chart Control控件到对话框程序中,如图3所示。

图34:点击Microsoft Chart Control控件,右端出现属性窗口,如图4所示,在此处可以对于此控件进行设置,下面对于各个控件属性含义进行具体讲解。

图4更改属性页内属性,属性页位于属性列表上端快捷键最后一位,属性页如图5所示。

图5属性列表主要包括以下几个方面的设置:Chart主要包括对于图表类型的选择,此例中主要使用的是Line(2D),选项Show legend 为显示图例,在此例中需要进行勾选。

设置如图6所示。

图6Axis主要是对于各个坐标轴的设置,其中Axis可以进行X Axis、Y Axis及Second Y Axis 三个轴的选择,其中Show scale选项可以选择对应轴是否显示,Automatic scaling可以对于坐标轴上最大值、最小值、标注标签间隔和每个间隔细分格数(对于X及Y轴是不同的,X轴若是100为一个格,50需要为一个小格,Y轴Major divisions对应的是大格格数,Minor divisions对应小格格数)。

VS2013 使用MsChart图表控件

VS2013 使用MsChart图表控件

VS2013 使用MsChart图表控件显示曲线波形图和数据波峰波谷标记MSChart.exe安装MSCHART注册.exeMSCHRT20.OCX也可以手动注册32位系统下:1. 将mschrt20.ocx放在windows/system32目录下。

(注意,这个文件名中的没有字母a,即没有写chart中的字母a)2.使用命令regsvr32 MSCHRT20.OCX来注册。

64位系统下:1. 确保win7管理员权限2. 把OCX控件,放到C:\Windows\SysWow64路径下面3. 进入cmd,管理员权限运行4. regsvr32 C:\Windows\SysWow64\MSCHRT20.OCX注册成功会提示的。

在VS2013的对话框中的应用如下:打开VS2013,新建一个MFC工程,点击VS中的“工具->选择工具箱->COM组件”,找到Microsoft Chart Control,version 6.0(OLEDB)并勾选上。

接下来,就可以在工具箱中看到该控件首先建立一个基于对话框的工程文件,在对话框界面单击右键->插入Activex控件->Microsoft Chart Control,version 6.0(OLEDB)即可。

新建MFC工程建立对话框应该程序点击完成,右击插入ActiveX控件列表中找到Microsoft Chart Control 6.0(SP4) (OLEDB)控件点确定按钮插入MsChart图表控件在控件上右击添加变量这时候并不能使用MsChart控件的所有功能,还需要添加控件的所有类,添加步骤如下,先打开类向导点“…”找到MSCHRT20.OCX文件注意OCX控件32位系统在C:\ windows/system32目录下64位系统在C:\Windows\SysWow64路径下面注意左侧会列出控件的所有类,可选择添加点击“>”逐个添加要用到的类,好像只能一个一个添加,最好全部添加添加完成按确定会自动加载.h和.cpp文件到工程中,这时才可以使用控件的所有功能下面是整理出来的一些主要功能void CMyPD3000Dlg::Init_Mschart(CMschart1& m_chartt1){m_chartt1.put_AllowSelections(FALSE); //是否可以选择图表对象m_chartt1.put_AllowSeriesSelection(FALSE);//单击单个的图表数据点时是否可选定整个系列。

MSChart图表控件的一些使用

MSChart图表控件的一些使用

MSChart图表控件的一些使用最近使用MSChart做了几张图表,微软提供的例子中对这个图表控件的使用已经说的比较详细了,我这里记录一些需要注意的。

1. Chart图表的元素要使用该图表首先要了解该图表的元素组成,就是下面这张图了,图表主要包含:Annotations (图形注解集合)ChartAreas(图表区域集合)Legends(图例集合)Series图表序列集合即图表数据对象集合)Title(图标的标题集合)其他大家可以参考Samples中的Char Features一节。

2. 如何在 MVC中使用Chart控件2.1.需要在"<system.web><pages><controls>"中添加如下:<add tagPrefix="asp" namespace="System.Web.UI.DataVisualization.Charting" assembly="System.Web.DataVisualization,Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>2.2.在"<httpHandlers>"中添加如下部分:<add path="ChartImg.axd" verb="GET,HEAD" type="System.Web.UI.DataVisualization.Charting.ChartHttpHan dler,System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>2.3. 有了上面的配置就可以测试了:2.3.1.View中添加:<asp:chart id="Chart1" runat="server" Height="296px"Width="412px" Palette="BrightPastel" imagetype="Png"BorderDashStyle="Solid" BackSecondaryColor="White" BackGradientStyle="TopBottom" BorderWidth="2" backcolor="#D3DFF0"BorderColor="26, 59, 105"><Titles><asp:Title Text="With datasource in code behind" /></Titles><legends><asp:Legend IsTextAutoFit="False" Name="Default" BackColor="Transparent" Font="Trebuchet MS, 8.25pt, style=Bold"></asp:Legend></legends><borderskin skinstyle="Emboss"></borderskin><series><asp:Series Name="Column" BorderColor="180, 26, 59, 105"> </asp:Series></series><chartareas><asp:ChartArea Name="ChartArea1" BorderColor="64, 64, 64, 64" BorderDashStyle="Solid" BackSecondaryColor="White"BackColor="64, 165, 191, 228" ShadowColor="Transparent" BackGradientStyle="TopBottom"><area3dstyle Rotation="10" perspective="10" Inclination="15" IsRightAngleAxes="False" wallwidth="0"IsClustered="False"></area3dstyle><axisy linecolor="64, 64, 64, 64"><labelstyle font="Trebuchet MS, 8.25pt, style=Bold" /><majorgrid linecolor="64, 64, 64, 64" /></axisy><axisx linecolor="64, 64, 64, 64"><labelstyle font="Trebuchet MS, 8.25pt, style=Bold" /><majorgrid linecolor="64, 64, 64, 64" /></axisx></asp:ChartArea></chartareas></asp:chart>2.3.2.index.aspx.cs中添加protected void Page_Load(object sender, System.EventArgs e) {foreach (int value in (List<int>)this.ViewData["Chart"]){this.Chart1.Series["Column"].Points.Add(value);}}2.3.3.Controller中:public ActionResult Index(){ViewData["Title"] = "Home Page";ViewData["Message"] = "Welcome to MVC!";List<int> chartList = new List<int>();chartList.Add(1);chartList.Add(2);chartList.Add(6);chartList.Add(5);chartList.Add(4);ViewData["Chart"] = chartList;return View();}2.3.4.添加System.Web.ui.DataVisualization引用3. Tooltip的使用ToolTip用于在各个关键点,如:标签、图形关键点、标题等当鼠标移动上去的时候,提示用户一些相关的详细或说明信息。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

mschart安装使用最近需要为程序显示一些柱状图、线图之类的,查了一下微软的mschart不错,功能强大。

可是自vc6.0之后mschart控件就从ms的IDE里去掉了,如果用只能自己下载安装。

安装mschart需要1 .net framewrok 3.5 sp1(注意是sp1),没有安装的话就去下载吧,完整包大概200多M2 安装MSChart.exe MSChart_VisualStudioAddOn.exe 下载mschrt20.ocx 到C:\WINDOWS\system32目录下。

命令行运行regsvr32 mschrt20.ocx注册控件3 在vs2005之后的平台上,你要么在class view下add class->MFC Class f rom ActiveX Control然后有两个,你可以选择registy然后选择ms mschart 6.0(o led),这样只能出现一个类CMSCHART,或者选择File然后浏览mschrt20.ocx,这里面生成了很多类,你全部添加进去,最后就可以用了。

第二、你可以在一个MFC dialog上insert axtivex control或者toolbox选择choose item->com选择组件让它出现在工具箱中,这样也可以有控件。

我们自己选择生成的很多类,跟网上有示例的类函数名称上有所不同,可能会给使用带来麻烦。

其实最简单的就是找到一个Demo把里面相关的CMSCHART和其它相关的十几个类都拷贝到我的工程文件夹里,再添加进来,就ok了。

网上很多例子可供参考,比如:/document/viewdoc/?id=9 59关于遇到的一些问题。

在设置图形类型的时候,m_chart.SetChartType(1|2);显示出2D曲线图,而我们用m_chart.SetChartType(16);的时候如果你只设置了m_chart. SetColumnCount(1); 就不会显示,因为16的散列图需要的是一对坐标点,你至少需要设置m_chart.SetColumnCount(2);为2。

MsChart实现无闪烁动态曲线(MFC)最近需要用MFC做一个界面动态显示曲线,自己画坐标轴画曲线太费时间,网上也有很多已实现的动态曲线接口,但是也不太灵活。

正好微软有个现成的MS Chart,功能比较全面,查了一些资料,总算实现了无闪烁的动态曲线。

关于MSCh art的安装可以参考上篇文章/wy-wangyan/archive/2011/0 5/06/2038981.html实现的效果截图:实现的原理:MSChart如果要实现动态的曲线就只能在设置的定时器中根据R owCount,到一定的列数后在最后一列插入新一列(m_Chart.GetDataGrid().InsertR ows),将最早出现的那一列删除(m_Chart.GetDataGrid().DeleteRows)。

对于无闪烁刷新的实现类似于一般MFC画图中创建双缓冲画图避免屏幕闪烁的方法,这里是用CStatic动态创建一个Picture Control图像控件,将它设定和要画的MSChart 一样大,然后把mschart的内容利用m_Chart.EditCopy()复制到剪贴板,然后再在picture control中显示出来。

下面是全部的实现的代码:MSChart需要在view的oncreate中创建出mschart:1int CRTDBView::OnCreate(LPCREATESTRUCT lpCreateStruct)2{3if(CView::OnCreate(lpCreateStruct) == -1)4return-1;56// TODO: Add your specialized creation code here7CRect rc;8GetClientRect(&rc);9VERIFY(m_Picture.Create(_T(""),SS_BITMAP|WS_CHILD|WS_EX_TRANSPARE NT| WS_VISIBLE,CRect(0,0,1200,600),this,IDC_PICTURE));10if(!m_Chart.Create(_T("RTDB"),WS_CHILD| WS_VISIBLE, CRect(0,0,1200,600), this, 10))11return-1;121314return0;15}在ONSIZE中设置mschart的位置:1void CRTDBView::OnSize(UINT nType, int cx, int cy)2{3CView::OnSize(nType, cx, cy);45// TODO: Add your message handler code here6if( m_Chart.GetSafeHwnd())7m_Chart.MoveWindow( 0, 0, cx, cy );8}下面是主要实现部分的代码了,InitChart函数实现了mschart的背景、标题、XY 坐标刻度以及颜色字体大小、曲线设定颜色以及数据点的显示等。

主要是chart的初始化。

1void CRTDBView::InitChart(void)2{3// 设置标题4m_Chart.SetTitleText(_T("RTDB"));56// 设置标题颜色7m_Chart.GetTitle().GetVtFont().GetVtColor().Set(0,255,0);89// 改变字体大小10m_Chart.GetTitle().GetVtFont().SetSize(14);1112// 改变背景色13m_Chart.GetBackdrop().GetFill().SetStyle(1);14m_Chart.GetBackdrop().GetFill().GetBrush().GetFillColor().Set(0,0,0);1516// 显示图例17m_Chart.SetShowLegend(TRUE);18m_Chart.SetColumn(1);19m_Chart.SetColumnLabel((LPCTSTR)_T("point num"));2021// 设置图例颜色22m_Chart.GetLegend().GetVtFont().GetVtColor() .Set(0,255,0);2324// 初始化设置row25m_Chart.SetRowCount(15);26m_Chart.SetRow(1);27m_Chart.SetRowLabel((LPCTSTR)_T(""));28for(UINT i=1;i<=m_Chart.GetRowCount();i++)29{30m_Chart.GetDataGrid().SetData(i,1,0,0);31}323334// 显示类型组合的方式0为3D 1为2D35m_Chart.SetChartType(1|2);36m_Chart.SetSeriesType(11);3738// 栈模式39m_Chart.SetStacking(FALSE);4041VARIANT var;4243// X、Y轴名称44m_Chart.GetPlot().GetAxis(0,var).GetAxisTitle().SetText(_T("时间(s)")); // X轴名称45m_Chart.GetPlot().GetAxis(1,var).GetAxisTitle().SetText(_T("点数")); // Y轴名称4647// X轴设置48m_Chart.GetPlot().GetAxis(0,var).GetCategoryScale().SetAuto(FALSE); // 不自动标注X轴刻度49m_Chart.GetPlot().GetAxis(0,var).GetCategoryScale().SetDivisionsPerLabel(1);// 每刻度一个标注50m_Chart.GetPlot().GetAxis(0,var).GetCategoryScale().SetDivisionsPerTick(1); // 每刻度一个刻度线5152// X轴每刻度竖线,0为不设置、1为设置53m_Chart.GetPlot().GetAxis(0,var).GetAxisGrid().GetMajorPen().SetStyle(0);5455// 曲线个数56m_Chart.SetColumnCount(1);5758// 曲线颜色59m_Chart.GetPlot().GetSeriesCollection().GetItem(1).GetPen().GetVtColor().Set(0,25 5,0);6061// 曲线宽度(对点线图有效)62m_Chart.GetPlot().GetSeriesCollection().GetItem(1).GetPen().SetWidth(30);6364// 数据点类型显示数据值的模式(对柱柱状图和点线图有效)65// 0: 不显示1: 显示在柱状图外66// 2: 显示在柱状图内上方3: 显示在柱状图内中间4: 显示在柱状图内下方67m_Chart.GetPlot().GetSeriesCollection().GetItem(1).GetDataPoints().GetItem(-1).Get DataPointLabel().SetLocationType(1);6869// 设置曲线上数据点颜色70m_Chart.GetPlot().GetSeriesCollection().GetItem(1).GetDataPoints().GetItem(-1).Get DataPointLabel().GetVtFont().GetVtColor().Set(0,255,0);7172// 曲线设置十字标记73m_Chart.GetPlot().GetSeriesCollection().GetItem(1).GetSeriesMarker().SetAuto(FA LSE); // MUST!!74m_Chart.GetPlot().GetSeriesCollection().GetItem(1).GetDataPoints().GetItem(-1) 75.GetMarker().SetVisible(TRUE);7677// 0横杠,1十字,2是叉,3是星,4是圆圈,5是方块,6菱形78// 7三角,8倒三角,9实心点,10实心方块,11实心菱形,12实心三角,13实心倒三角,14泛光的点79m_Chart.GetPlot().GetSeriesCollection().GetItem(1).GetDataPoints().GetItem(-1) 80.GetMarker().SetStyle(1);8182// 设置曲线上十字颜色83m_Chart.GetPlot().GetSeriesCollection().GetItem(1).GetDataPoints().GetItem(-1) 84.GetMarker().GetFillColor().Set(255,0,0);85m_Chart.GetPlot().GetSeriesCollection().GetItem(1).GetDataPoints().GetItem(-1) 86.GetMarker().GetPen().GetVtColor().Set(255,0,0);8788// 设定坐标轴颜色89m_Chart.GetPlot().GetAxis(0,var).GetPen().GetVtColor().Set(0,255,0);90m_Chart.GetPlot().GetAxis(1,var).GetPen().GetVtColor().Set(0,255,0);91m_Chart.GetPlot().GetAxis(2,var).GetPen().GetVtColor().Set(0,255,0);9293// 设置坐标轴轴刻度值颜色94m_Chart.GetPlot().GetAxis(1,var).GetLabels().GetItem(1).GetVtFont().GetVtColor(). Set(0,255,0);95m_Chart.GetPlot().GetAxis(0,var).GetLabels().GetItem(1).GetVtFont().GetVtColor(). Set(0,255,0);96m_Chart.GetPlot().GetAxis(2,var).GetLabels().GetItem(1).GetVtFont().GetVtColor(). Set(0,255,0);9798// 设定坐标轴宽度99m_Chart.GetPlot().GetAxis(0,var).GetPen().SetWidth(30);100m_Chart.GetPlot().GetAxis(1,var).GetPen().SetWidth(30);101102//设定X、Y轴标题颜色103m_Chart.GetPlot().GetAxis(1,var).GetAxisTitle().GetVtFont().GetVtColor().Set(0,2 55,0);104m_Chart.GetPlot().GetAxis(0,var).GetAxisTitle().GetVtFont().GetVtColor().Set(0,2 55,0);105106// 设置Y轴坐标横线颜色107m_Chart.GetPlot().GetAxis(1,var).GetAxisGrid().GetMajorPen().GetVtColor().Set (0,255,0);108109// 设置Y轴110m_Chart.GetPlot().GetAxis(1,var).GetValueScale().SetAuto(FALSE); // 不自动标注Y轴刻度111m_Chart.GetPlot().GetAxis(1,var).GetValueScale().SetMaximum(100); // Y轴最大刻度112m_Chart.GetPlot().GetAxis(1,var).GetValueScale().SetMinimum(-100); // Y轴最小刻度113m_Chart.GetPlot().GetAxis(1,var).GetValueScale().SetMajorDivision(10); // Y轴刻度5等分114m_Chart.GetPlot().GetAxis(1,var).GetValueScale().SetMinorDivision(1); // 每刻度一个刻度线115116// 设置Y轴名称大小、类型117m_Chart.GetPlot().GetAxis(1,var).GetAxisTitle().GetVtFont().SetStyle(0);118m_Chart.GetPlot().GetAxis(1,var).GetAxisTitle().GetVtFont().SetSize(12);119120// 隐藏第二Y轴121m_Chart.GetPlot().GetAxis(2,var).GetAxisScale().SetHide(FALSE);122123// 刷新124m_Chart.Refresh();125126}最后在OnTimer函数中是动态曲线的实现以及无闪烁的实现:1void CRTDBView::OnTimer(UINT_PTR nIDEvent)2{34//TODO: Add your message handler code here and/or call default5m_Picture.BringWindowToTop();6m_Picture.ShowWindow(SW_SHOW);7HANDLE hDib;8pDC = GetDlgItem(IDC_PICTURE)->GetDC();9int m_rowPos=m_Chart.GetRowCount()+1;1011// 插入新一列12m_Chart.GetDataGrid().InsertRows(m_rowPos,1);13m_Chart.SetRow(m_rowPos);14char buf[32];15for(int i=0;i<sizeof(buf);i++)16{17buf[i]=0;18}19sprintf(buf, "%d",m_iCount);2021// X轴坐标值22m_Chart.SetRowLabel((LPCTSTR)CString(buf));2324// 数据设置(随机)25m_Chart.GetDataGrid().SetData(m_rowPos,1,rand() * 100/ RAND_MAX,0); 2627// 大于15列就开始删除最后一列28if(m_Chart.GetRowCount()>15)29{30m_Chart.GetDataGrid().DeleteRows(m_rowPos-15,1);31}32m_iCount++;3334// 把更新复制到粘贴板,在picture中显示35m_Chart.EditCopy();36if(OpenClipboard())37{38hDib = GetClipboardData(CF_DIB);39CloseClipboard();40}41BITMAPINFO* pbi = (BITMAPINFO*)GlobalLock(hDib);42if(pbi != NULL)43{44BYTE* data = (BYTE*)(pbi->bmiColors);45if(pbi->bmiHeader.biBitCount <= 8)46{47int nColor = (pbi->bmiHeader.biClrUsed==0) ?481<<(pbi->bmiHeader.biBitCount) : pbi->bmiHeader.biClrUsed; // nColor颜色表中的颜色数49data += sizeof(RGBQUAD) *nColor;50}51StretchDIBits(pDC->GetSafeHdc(),1,1, pbi->bmiHeader.biWidth-1,52pbi->bmiHeader.biHeight-1,0, 0, pbi->bmiHeader.biWidth,53pbi->bmiHeader.biHeight, data, pbi, DIB_RGB_COLORS, SRCCOPY);// 显示,我为了保留外面的方框,前面宽度和高度都减了154GlobalUnlock(hDib);55}56m_Chart.Refresh();57CView::OnTimer(nIDEvent);58}。

相关文档
最新文档