亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? drawdlgblanke.cpp

?? 一個用于無刷直流電動機的驅動與控制程序.里面所用的采集卡的型號為MC08.
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
	pDC->SelectObject(&Title_Font_X);

	CString str;
	CPoint pp;

	//畫坐標軸名稱
	pp.x=m_PlotRect.left+m_PlotRect.Width()/2-5;
	pp.y=m_LabelRect_X.bottom-m_LabelRect_X.Height()/2-2;
	str.Format("%s",Uint_X);
	pDC->TextOut(pp.x,pp.y,str);
	pDC->SelectObject(pOldfond);
}

//顯示Y坐標軸名稱和單位
void DrawDlgBlanke::DrawTitleY(CDC *pDC)
{
	pDC->FillRect(m_LabelRect_Y,&CBrush(m_LabelColor));
	//pDC->FillRect(m_LabelRect_Y,&CBrush(RGB(212,208,200)));
	
	//設置字體
	CFont *pOldfond=NULL;
	pDC->SetTextAlign(TA_LEFT);//左靠齊
	pDC->SetBkMode(TRANSPARENT);
	pOldfond=pDC->SelectObject(&Title_Font_Y);//選用橫向顯示字體
	CString str ;
	CPoint pp;
	
	//畫坐標軸名稱	
	pDC->SetTextAlign(TA_CENTER);
	pp.x=m_LabelRect_Y.left+5;
	pp.y=m_PlotRect.bottom-m_PlotRect.Height()/2;
	//顯示	
	str.Format("%s",Uint_Y);
	pDC->TextOut(pp.x,pp.y,str);
	pDC->SelectObject(pOldfond);
}

//畫x軸的示數
void DrawDlgBlanke::DrawLabelX(CDC *pDC, double Xmax_time, double Xmin_time)
{
	pDC->FillRect(m_LabelRect_X,&CBrush(m_LabelColor));
	//pDC->FillRect(m_LabelRect_X,&CBrush(RGB(212,208,200)));
	//設置字體
	CFont *pOldfond=NULL;
	pDC->SetTextAlign(TA_CENTER);//中間靠齊
	pDC->SetBkMode(TRANSPARENT);
	pOldfond=pDC->SelectObject(&Label_Font_X);
	CString str ;
	CPoint pp;
	double XStep=(Xmax_time-Xmin_time)/(m_GridX+1);	
	for (int i=0;i<m_GridX+2;i++)
	{		
		pp.x=m_PlotRect.left+i*m_PlotRect.Width()/(m_GridX+1);
		pp.y=m_LabelRect_X.top;		
		str.Format("%5.2f",Xmin_time+i*XStep);
		pDC->TextOut(pp.x,pp.y,str);
	}
	//顯示坐標軸名稱和單位	
	pDC->SelectObject(&Title_Font_X);
	pp.x=m_PlotRect.left+m_PlotRect.Width()/2-5;
	pp.y=m_LabelRect_X.bottom-m_LabelRect_X.Height()/2-2;
	str.Format("%s",Uint_X);
	pDC->TextOut(pp.x,pp.y,str);
	pDC->SelectObject(pOldfond);
}

//畫Y軸的示數
void DrawDlgBlanke::DrawLabelY(CDC *pDC, double Ymax_time, double Ymin_time)
{
	pDC->FillRect(m_LabelRect_Y,&CBrush(m_LabelColor));
	//pDC->FillRect(m_LabelRect_Y,&CBrush(RGB(212,208,200)));

	//設置字體
	CFont *pOldfond=NULL;
	pDC->SetTextAlign(TA_LEFT);//左靠齊
	pDC->SetBkMode(TRANSPARENT);
	pOldfond=pDC->SelectObject(&Label_Font_X);//選用橫向顯示字體
	CString str ;
	CPoint pp;
	double YStep=(Ymax_time-Ymin_time)/(m_GridY+1);		
	for (int i=0;i<m_GridY+2;i++)
	{		
		pp.y=m_PlotRect.bottom-i*m_PlotRect.Height()/(m_GridY+1)-6;
		pp.x=m_LabelRect_Y.left+m_LabelRect_Y.Width()/2-2;	
		str.Format("%5.2f",Ymin_time+i*YStep);	
		pDC->TextOut(pp.x,pp.y,str);
	}

	//畫坐標軸名稱
	pDC->SelectObject(Label_Font_Y);
	pDC->SetTextAlign(TA_CENTER);
	pp.x=m_LabelRect_Y.left+5;
	pp.y=m_PlotRect.bottom-m_PlotRect.Height()/2;
	//顯示	
	str.Format("%s",Uint_Y);
	pDC->TextOut(pp.x,pp.y,str);	
	pDC->SelectObject(pOldfond);
}

//畫顯示信息
void DrawDlgBlanke::DrawMessage(CDC *pDC)
{
	pDC->FillRect(m_TextOutRect,&CBrush(m_LabelColor));	
	//pDC->FillRect(m_TextOutRect,&CBrush(RGB(255,255,255)));	
	CString str1,str2,str3,str4;

	CFont *OldFont;
	OldFont=pDC->SelectObject(&Title_Font);
	pDC->SetBkMode(TRANSPARENT);//設置為透明
	pDC->SetTextAlign(TA_CENTER);//設置為字體居中
	//得到信息窗口的高度和寬度
	long xwidth=m_TextOutRect.Width();
	long yheigh=m_TextOutRect.Height();

	/*設定圖形信息顯示坐標*/
	pDC->SelectObject(&Title_Font);
	pDC->SetBkMode(TRANSPARENT);//設置為透明
	pDC->SetTextAlign(TA_CENTER);//設置為字體居中
	//標題
	int a_t=m_TextOutRect.left+xwidth/2-10;	
	int b_t=m_TextOutRect.bottom/5+10;
	pDC->TextOut(a_t,b_t,"圖形信息");

	pDC->SetTextAlign(TA_LEFT);

	//str3.Format("%s",Uint_X);
	str3= "點數";
	//str4.Format("%s",Uint_Y);
	str4= "峰值";

	pDC->SelectObject(&Message_Bottom);
	pDC->TextOut(m_TextOutRect.left+5,m_TextOutRect.top+95,"統計信息");
	pDC->SelectObject(&Label_Font_X);
	str1.Format("平均值:%5.2f",m_Average);
	str2.Format("均方值:%5.2f",m_ds);
	str3.Format("最大值:%5.4f",m_dMax_Y);
	str4.Format("最小值:%5.4f",m_dMin_Y);
	
	pDC->TextOut(m_TextOutRect.left+15,m_TextOutRect.top+113,str1);	
	pDC->TextOut(m_TextOutRect.left+15,m_TextOutRect.top+123,str2);
	pDC->TextOut(m_TextOutRect.left+15,m_TextOutRect.top+133,str3);	
	pDC->TextOut(m_TextOutRect.left+15,m_TextOutRect.top+143,str4);
	/*峰值信息*/
	pDC->SelectObject(&Message_Bottom);
	pDC->TextOut(m_TextOutRect.left+5,m_TextOutRect.top+165,"峰值信息");	
	pDC->SelectObject(&Label_Font_X);

	str3.Format("%s",Uint_X);	
	str4= "峰值";
	pDC->TextOut(m_TextOutRect.left+4,m_TextOutRect.top+180,"序號");
	pDC->TextOut(m_TextOutRect.left+32,m_TextOutRect.top+180,str4);
	pDC->TextOut(m_TextOutRect.left+65,m_TextOutRect.top+180,str3);

	double peak;
	long pos;
	int peakn;
	long startpos;
	
	if (m_bDataReady)//數據準備好
	{
		startpos=(long)m_dMin_X;

		GetPeakData();//得到峰值信息		
		
		if(m_Peak_Num>10)
			peakn=10;
		else
			peakn=m_Peak_Num;

		for(int i=0;i<peakn;i++)
		{
			peak=data_Peak[i];
			pos=data_Peak_pos[i];

			str1.Format("%d ",i+1);
			str2.Format("%5.3f",peak);		
			str3.Format("%d",pos+startpos);
			//MessageBox(str3);
		
			pDC->TextOut(m_TextOutRect.left+10,m_TextOutRect.top+195+i*15,str1);		
			pDC->TextOut(m_TextOutRect.left+30,m_TextOutRect.top+195+i*15,str2);		
			pDC->TextOut(m_TextOutRect.left+72,m_TextOutRect.top+195+i*15,str3);
		}
	}
	pDC->SelectObject(OldFont);
}

//得到峰值信息
void DrawDlgBlanke::GetPeakData()
{
	double *temp=new double [m_Y_Long];
	long *temp_pos=new long [m_Y_Long];
	
	//調用求峰值函數	
	m_Peak_Num=calculate_blanke.FindPeak(dataShow_Y,temp,temp_pos,m_Y_Long);
	//從大到小排序
	calculate_blanke.Bub(temp,temp_pos,m_Peak_Num);
	//取前10個
	for(int i=0;i<10;i++)
	{
		if(m_Peak_Num>10)
		{
			data_Peak[i]=temp[i];
			data_Peak_pos[i]=temp_pos[i];
		}
		else
		{
			if(i<m_Peak_Num)
			{
				data_Peak[i]=temp[i];
				data_Peak_pos[i]=temp_pos[i];
			}
			else
			{
				data_Peak[i]=0;
				data_Peak_pos[i]=0;
			}
		}

	}
	delete [] temp_pos;
	delete [] temp;
}

//獲取采集窗口的數據
void DrawDlgBlanke::GetData(double *y,double *x,long x_Long,long y_Long)
{
	//銷毀以前的數據	
	if(dataShow_Y)  {   delete [] dataShow_Y; dataShow_Y=NULL;}
	if(dataShow_X)  {	delete [] dataShow_X;dataShow_X=NULL;}
	//傳遞大小
	m_X_Long=x_Long;
	m_Y_Long=y_Long;
	//動態創建2個數組	
	dataShow_Y=new double [m_Y_Long];	
	dataShow_X=new double [m_X_Long];
	int i;
	//傳遞x向數據
	for(i=0;i<m_X_Long;i++)
	{	
		dataShow_X[i]=x[i];
	}
	//傳遞y向數據
	for(i=0;i<m_Y_Long;i++)
	{
		dataShow_Y[i]=y[i];
	}
	//數據準備好
	m_bDataReady=TRUE;
	//Invalidate(false);
}
//點擊空程回差試驗主控窗口開始按鈕消息響應函數
void DrawDlgBlanke::OnMotBlanstarthit(WPARAM wParam, LPARAM lParam)
{
	//繪圖區標題設定	
	Uint_X="點數";		//X坐標軸名稱
	Uint_Y="空程回差值(度)";			//Y坐標軸名稱	
	Title="空程回差試驗       誤差曲線"; //標題名稱

	//繪圖類型設置
	m_nDrawType =2;

	//開始試驗
	m_bStartOn=TRUE;

	//觸發畫圖
	Invalidate(FALSE);

}
//右鍵點擊菜單
void DrawDlgBlanke::OnContextMenu(CWnd* pWnd, CPoint point) 
{
	// TODO: Add your message handler code here
	CMenu menu;
	menu.LoadMenu(IDR_BLANKDRAW_RBDMENU);
	menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point.x,point.y,this);
}

//保存位圖
void DrawDlgBlanke::OnMenuSavebitmap() 
{
	// TODO: Add your command handler code here

	m_bSaveBitmap=TRUE;	//保存位圖(保存試驗實時曲線)標志
	Invalidate(FALSE);  //觸發畫圖
	
	if (m_bBitmapReady)//位圖創建成功
	{
		CFileDialog dlg(false,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
			"位圖文件(*.bmp)|*.bmp|",NULL);
		if(dlg.DoModal()== IDOK) 
		{
		CString filename = dlg.GetFileName() + ".bmp";
		 BITMAPFILEHEADER bmfh;
		ZeroMemory(&bmfh,sizeof(BITMAPFILEHEADER));
		*((char *)&bmfh.bfType) = 'B';
		*(((char *)&bmfh.bfType) + 1) = 'M';
		bmfh.bfOffBits = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER);
		
		bmfh.bfSize = bmfh.bfOffBits + (iWidth * iHeight) * iPixel / 8;
		//文件頭的這個變量表示的是文件的大小
		
		TCHAR szBMPFileName[128];
		//文件名
		int iBMPBytes = iWidth * iHeight * iPixel / 8;
		//位圖總像素大小
		strcpy(szBMPFileName,filename);
		//獲得文件名
		CFile file;
		
		if(file.Open(szBMPFileName,CFile::modeWrite | CFile::modeCreate))
		{
			file.Write(&bmfh,sizeof(BITMAPFILEHEADER));//先寫入文件頭信息到文件中

			file.Write(&(lpbmih->bmiHeader),sizeof(BITMAPINFOHEADER));//寫入文件信息結構

			file.Write(pBits,iBMPBytes);//寫入位圖像素數據信息
			
			file.Close();
		}
		}
	}
	else //位圖創建未成功
		MessageBox("請先進行設備自檢和開始試驗操作試驗!");
}

//創建位圖
void DrawDlgBlanke::CreatBitmap()
{
	//得到矩形大小
	CRect rect;
	GetClientRect(&rect);
	iWidth =rect.Width();
	iHeight =rect.Height();
    iPixel = 32;
	pBits =  new byte[iWidth * iHeight * iPixel / 8];
	 
	//初始圖形格式參數
    //設置位圖信息的bmiHeader分量信息,即位圖的BITMAPINFOHEADER信息 
	lpbmih = new BITMAPINFO;  
	lpbmih->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
	lpbmih->bmiHeader.biWidth = iWidth;
	lpbmih->bmiHeader.biHeight = iHeight;
	lpbmih->bmiHeader.biPlanes = 1;
	lpbmih->bmiHeader.biBitCount = iPixel;
	lpbmih->bmiHeader.biCompression = BI_RGB;
	lpbmih->bmiHeader.biSizeImage = 0;
	lpbmih->bmiHeader.biXPelsPerMeter = 0;
	lpbmih->bmiHeader.biYPelsPerMeter = 0;
	lpbmih->bmiHeader.biClrUsed = 0;
	lpbmih->bmiHeader.biClrImportant = 0;
	//////////////////////////////////////////////////////////////////////////
	hBitMap = CreateDIBSection(m_pMemory,lpbmih,DIB_PAL_COLORS,(void **)&pBits,NULL,0);
	//上條語句聯系lpbmih信息以及pBits信息
	pBitMap = new CBitmap;
	pBitMap->Attach(hBitMap);//綁定
	m_pMemory.SelectObject(pBitMap);
	//m_pMemory.FillRect(m_ClientRect,&CBrush(m_BkColor));	
}

//打開數據響應函數
void DrawDlgBlanke::OnOpendata(WPARAM wParam, LPARAM lParam)
{
	//MessageBox("2");
	/*--相當于點擊主控窗口中的開始按鈕-開始--*/
	m_bStartOn = TRUE;	//開始試驗標志為真
	Uint_X="點數";		//X坐標軸名稱
	Uint_Y="空程回差值(度)";			//Y坐標軸名稱	
	Title="空程回差試驗       誤差曲線"; //標題名稱
	m_nDrawType = 2;	
	Invalidate(FALSE);
	/*--相當于點擊主控窗口中的開始按鈕-結束--*/

	CTestFormApp *pApp=(CTestFormApp *)AfxGetApp();		
	//繪制實時曲線
	m_nDrawType =3;

	long number;
		
	number = pApp->pCTestFormDoc->nPowerNumber; //數據個數	
	m_X_Long=number;		//x向數組大小
	m_Y_Long=number;		//y向數組大小

	//定義各個數據數組
	double *CoderDataSort=new double [number];//存放處理后的數據	
	double *pPosition=new double [number];//存放點數即X軸坐標,為保持獲取數據函數的
												//完整性,固將其定義為雙精度	
	for (int j=0;j<number;j++)
	{
		CoderDataSort[j] = pApp->pCTestFormDoc->Berrordata[j];
	}
		
	/*定義需要顯示數組的最大最小值*/
	//定義最大值
	double max_ErrorData;
	//定義最小值
	double min_ErrorData;

	//獲取最大,最小值
	max_ErrorData=calculate_blanke.FindMax(CoderDataSort,number);
	min_ErrorData=calculate_blanke.FindMin(CoderDataSort,number);
	m_Average=calculate_blanke.GetAverage(CoderDataSort,number);
	m_ds=calculate_blanke.GetRoot(CoderDataSort,number);

	//獲取時間坐標刻度
	for (int i=0;i<number;i++)
	{			
		pPosition[i]=i;
	}

	m_dMax_Y = max_ErrorData;
	m_dMin_Y = min_ErrorData;
	m_dMax_X = pPosition[number-1];
	m_dMin_X = pPosition[0];
	GetData(CoderDataSort,pPosition,number,number);
	
	//繪制實時曲線
	Invalidate(FALSE);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久九九久久九九| 日韩精品一卡二卡三卡四卡无卡| 国产高清在线观看免费不卡| 91女神在线视频| 亚洲欧美国产77777| 99在线精品免费| 亚洲男人天堂av网| 欧美日韩综合在线免费观看| 五月天网站亚洲| 日韩午夜激情免费电影| 免费在线看成人av| 久久综合久久99| 国产a区久久久| 1000精品久久久久久久久| 99久久精品久久久久久清纯| 亚洲精品成人在线| 91精品国产综合久久久久久久| 亚洲一区在线视频| 在线视频一区二区免费| 亚洲一级不卡视频| 欧美一二区视频| 国产91色综合久久免费分享| 亚洲天堂av老司机| 91精品国产综合久久小美女| 麻豆久久久久久| 中文字幕在线一区| 欧美手机在线视频| 狠狠色伊人亚洲综合成人| 久久精品日产第一区二区三区高清版 | 日韩视频一区二区在线观看| 精品一区二区久久久| 国产精品久久毛片av大全日韩| 天涯成人国产亚洲精品一区av| 国产精品一区二区久久精品爱涩 | 99国内精品久久| 亚洲午夜久久久久中文字幕久| 国产精品一区二区无线| 最新欧美精品一区二区三区| 在线中文字幕一区| 精品亚洲porn| 夜夜精品视频一区二区 | 福利电影一区二区三区| 一区二区三区在线观看网站| 欧美mv和日韩mv的网站| 色综合久久久久网| 奇米综合一区二区三区精品视频| 欧美二区在线观看| 国产成人免费视频网站 | 成人激情图片网| 视频一区中文字幕| 中文字幕在线观看不卡视频| 日韩欧美电影在线| 欧美日韩在线一区二区| 国产美女一区二区| 麻豆精品视频在线观看免费| 国产精品理伦片| 精品成人免费观看| 制服丝袜激情欧洲亚洲| 色哟哟在线观看一区二区三区| 亚洲色图在线播放| 久久久五月婷婷| 欧美日韩在线三级| av日韩在线网站| 国产老肥熟一区二区三区| 视频在线观看一区二区三区| 亚洲精品乱码久久久久久黑人| 在线亚洲免费视频| 91香蕉视频在线| a级精品国产片在线观看| 蜜桃精品在线观看| 亚洲福利一区二区| 一区二区三区欧美视频| 中文字幕中文乱码欧美一区二区 | 日本大胆欧美人术艺术动态| 自拍偷拍国产亚洲| 中文字幕一区日韩精品欧美| 久久久久久9999| 亚洲精品一线二线三线无人区| 粉嫩aⅴ一区二区三区四区五区| 国产精品理论片| 国产精品剧情在线亚洲| 国产精品美女久久久久久久久久久 | 日韩一区二区三| 日韩欧美高清dvd碟片| 日韩一区二区三区电影在线观看| 国产精品一二三区在线| 久久99热国产| 国内成+人亚洲+欧美+综合在线| 国产精品色哟哟| 国产精品久线在线观看| 中文字幕一区二区三区在线不卡| 欧美影视一区在线| 色狠狠色噜噜噜综合网| 欧美在线观看18| 7777女厕盗摄久久久| 日韩三级电影网址| 久久午夜电影网| 国产精品视频在线看| 最新中文字幕一区二区三区| 亚洲美女视频一区| 亚洲观看高清完整版在线观看| 久久免费的精品国产v∧| 久久亚区不卡日本| 国产精品毛片大码女人| 最新成人av在线| 午夜精品久久一牛影视| 久久成人av少妇免费| 福利视频网站一区二区三区| 一道本成人在线| 欧美一级片免费看| 国产日本亚洲高清| 亚洲靠逼com| 日本不卡123| jlzzjlzz亚洲日本少妇| 欧美在线不卡一区| 欧美成人精品1314www| 亚洲国产成人午夜在线一区| 亚洲人午夜精品天堂一二香蕉| 国产亚洲精品超碰| 亚洲一区二区三区视频在线播放| 欧美精品一区二区久久久 | 欧美在线观看视频一区二区| 欧美美女直播网站| 精品久久久久久久久久久久包黑料 | 久久久久久免费| 亚洲欧美日韩一区二区 | 欧美高清一级片在线观看| 亚洲色图在线播放| 国产最新精品免费| 欧美午夜精品免费| 国产精品视频观看| 美腿丝袜亚洲综合| 色天天综合色天天久久| 337p粉嫩大胆噜噜噜噜噜91av| 欧美va亚洲va| 国产精品久久久久影院亚瑟| 亚洲国产欧美一区二区三区丁香婷| 亚洲精品老司机| 精品无人码麻豆乱码1区2区 | 亚洲蜜桃精久久久久久久| 美腿丝袜一区二区三区| 日本韩国欧美在线| 国产欧美日韩另类一区| 日韩电影免费在线观看网站| 高清国产午夜精品久久久久久| 精品一二线国产| 欧美日韩精品欧美日韩精品| 国产精品女人毛片| 国产伦精一区二区三区| 日韩三级在线免费观看| 亚洲一区二区在线播放相泽| 99精品视频一区| 欧美国产日本韩| 久草热8精品视频在线观看| 欧美午夜精品久久久久久孕妇| 欧美日韩一区二区三区高清| 中文字幕欧美三区| 国产精品99久久久久久宅男| 日韩一区二区在线观看视频| 亚洲高清视频中文字幕| 97aⅴ精品视频一二三区| 国产日韩影视精品| 久草精品在线观看| 日韩三级高清在线| 免费成人av资源网| 日韩欧美在线网站| 免费一级片91| 欧美精品自拍偷拍| 亚州成人在线电影| 欧美日韩国产精品成人| 夜夜精品视频一区二区| 在线观看国产一区二区| 一区二区三区欧美在线观看| 91精品办公室少妇高潮对白| 日韩美女久久久| 91麻豆成人久久精品二区三区| 欧美一区二区网站| 日本成人在线看| 91精品婷婷国产综合久久竹菊| 精品国产a毛片| 国产乱码精品一区二区三区av | 蜜臀久久久久久久| 欧美一级欧美三级| 日本欧洲一区二区| 精品欧美一区二区在线观看| 九色|91porny| 国产欧美一区二区三区沐欲| 成人午夜av电影| 亚洲欧美电影一区二区| 欧美三级三级三级爽爽爽| 日韩精品五月天| 久久嫩草精品久久久精品一| 高清国产一区二区| 亚洲欧洲综合另类| 欧美日韩国产综合久久| 久草这里只有精品视频| 国产精品理伦片| 欧美日韩和欧美的一区二区| 美腿丝袜亚洲色图| 亚洲欧洲韩国日本视频|