⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xltdlg.cpp

📁 本项目是我工作时候应公司需求开发的 开发工具是EVC++4.0
💻 CPP
字号:
// XltDlg.cpp : implementation file
//

#include "stdafx.h"
#include "Wonder.h"
#include "XltDlg.h"
#include "DataStruct.h"
#include "XltFZDlg.h"
#include "math.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif


extern CYjbkData YjbkData[];
extern int YjbkNum ;
extern int YjbkTotal ;
extern BYTE Data232[];
extern fdlx FDLH;
extern zslx ZXLH;
extern int Yjb_Num;
extern float a;
extern float b;
extern float c;


/////////////////////////////////////////////////////////////////////////////
// CXltDlg dialog


CXltDlg::CXltDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CXltDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CXltDlg)
	m_sDLXX = _T("");
	m_sDYXX = _T("");
	m_fU1I1 = 0.0f;
	m_fU1U1 = 0.0f;
	m_fU1U2 = 0.0f;
	m_fU1U3 = 0.0f;
	m_fU2I2 = 0.0f;
	m_fU3I3 = 0.0f;
	m_fPL = 0.0f;
	//}}AFX_DATA_INIT
}


void CXltDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CXltDlg)
	DDX_Text(pDX, IDC_XLGDLG_EDT_DLXX, m_sDLXX);
	DDX_Text(pDX, IDC_XLGDLG_EDT_DYXX, m_sDYXX);
	DDX_Text(pDX, IDC_XLGDLG_EDT_U1I1, m_fU1I1);
	DDX_Text(pDX, IDC_XLGDLG_EDT_U1U1, m_fU1U1);
	DDX_Text(pDX, IDC_XLGDLG_EDT_U1U2, m_fU1U2);
	DDX_Text(pDX, IDC_XLGDLG_EDT_U1U3, m_fU1U3);
	DDX_Text(pDX, IDC_XLGDLG_EDT_U2I2, m_fU2I2);
	DDX_Text(pDX, IDC_XLGDLG_EDT_U3I3, m_fU3I3);
	DDX_Text(pDX, IDC_XLGDLG_EDT_PL, m_fPL);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CXltDlg, CDialog)
	//{{AFX_MSG_MAP(CXltDlg)
	ON_BN_CLICKED(IDC_YJBKDLG_BTN_EXIT, OnXltDlgBtnExit)
	ON_WM_PAINT()
	ON_BN_CLICKED(IDC_YJBKDLG_BTN_MORE, OnXltdlgBtnMore)
	ON_BN_CLICKED(IDC_XLTDLG_BTN_MORE, OnXltdlgBtnMore)
	ON_BN_CLICKED(IDC_XLTDLG_BTN_EXIT, OnXltdlgBtnExit)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CXltDlg message handlers

void CXltDlg::OnXltDlgBtnExit() 
{
	// TODO: Add your control notification handler code here
	CDialog::OnCancel();
}

void CXltDlg::OnPaint() 
{
	CPaintDC dc(this); // device context for painting
	// TODO: Add your message handler code here
	//画矩形
	///////////////////////////////////////////////////////
	pDC = new CClientDC(this);
	CBrush  brush(RGB(0,0,0));	
	CBrush * pOldBrush=(CBrush *) pDC->SelectObject (&brush);
	CRect rect(left,top,right,bottom);
	pDC->Rectangle (rect);
	brush.DeleteObject ();
	pDC->SelectObject (pOldBrush);	
	///////////////////////////////////////////////////////
	//画坐标轴
	///////////////////////////////////////////////////////
    CPen pen;
	pen.CreatePen(PS_SOLID,1,RGB(255,255,255));	
	pDC->SelectStockObject (NULL_BRUSH);	    
	CPen *pOldpen=pDC->SelectObject (&pen);
	//pDC->Ellipse (left+1,top+1,right-1,bottom-1);	
    pDC->MoveTo (left+1,centery);
	pDC->LineTo (right-1,centery);
	pDC->MoveTo (centerx,top+1);
	pDC->LineTo (centerx,bottom-1);
	//pDC->SelectObject (pOldpen);

	///////////////////////////////////////////////////////

	//画向量图	
	///strcpy(YjbkData[YjbkNum].jxfs ,"P33");
	float fuau1=0.0,fuau2=0.0,fuau3=0.0,fuai1=0.0,fuai2=0.0,fuai3=0.0;
    if(strcmp(YjbkData[YjbkNum].jxfs,"P33")==0|| 
		strcmp(YjbkData[YjbkNum].jxfs,"Q33")==0 )fuau1=120.0;
	else if(strcmp(YjbkData[YjbkNum].jxfs,"P34")==0||
		strcmp(YjbkData[YjbkNum].jxfs,"Q34")==0)fuau1=90.0;
	else if (strcmp(YjbkData[YjbkNum].jxfs,"Q90")==0||
		strcmp(YjbkData[YjbkNum].jxfs,"Q60")==0 )fuau1=0.0;
	else  strcpy(YjbkData[YjbkNum].jxfs ,"P33");
     DrawLine(fuau1,_T("U1"));

	 if(strcmp(YjbkData[YjbkNum].jxfs,"P33")!=0)
	 {
	fuau2=fuau1-YjbkData[YjbkNum].fu1u2;
	if(fuai2<0)fuai2+360;	
	 DrawLine(fuau2,_T("U2"));
  
	 fuai2=fuau1-YjbkData[YjbkNum].fu1i2;	
	if(fuai2<0)fuai2+360;	
	 DrawLine(fuai2,_T("I2"));

	 }
	fuau3=fuau1-YjbkData[YjbkNum].fu1u3;	
	if(fuai3<0)fuai3+360;	
	 DrawLine(fuau3,_T("U3"));

	fuai1=fuau1-YjbkData[YjbkNum].fu1i1_xlt;	
	if(fuai1<0)fuai1+360;
	 DrawLine(fuai1,_T("I1"));

	
	fuai3=fuau1-YjbkData[YjbkNum].fu1i3;	
	if(fuai3<0)fuai3+360;	
	 DrawLine(fuai3,_T("I3"));
   //}
	//////////////////////////////////////////////////////
	delete pDC;
	// Do not call CDialog::OnPaint() for painting messages
}

void CXltDlg::DrawLine(float jd, CString s)
{
	CPen Linepen;
	CFont font;
	int endx,endy;
	if(s==_T("U1"))
	{
		Linepen.CreatePen (PS_SOLID,1,RGB(255,255,0));	
		pDC->SetTextColor(RGB(255,255,0));   
		endx=centerx+Ru*cos(rad(jd));
		endy=centery-Ru*sin(rad(jd));
	}
	if(s==_T("U2"))
	{
		Linepen.CreatePen (PS_SOLID,1,RGB(0,255,0));	
		pDC->SetTextColor(RGB(0,255,0));   		
		endx=centerx+Ru*cos(rad(jd));
		endy=centery-Ru*sin(rad(jd));
	}
	if(s==_T("U3"))
	{
		Linepen.CreatePen (PS_SOLID,1,RGB(255,0,0));	
		pDC->SetTextColor(RGB(255,0,0));   		
		endx=centerx+Ru*cos(rad(jd));
		endy=centery-Ru*sin(rad(jd));
	}
	if(s==_T("I1"))
	{
		Linepen.CreatePen (PS_SOLID,1,RGB(255,255,0));	
		pDC->SetTextColor(RGB(255,255,0));   		
		endx=centerx+Ri*cos(rad(jd));
		endy=centery-Ri*sin(rad(jd));
	}
	if(s==_T("I2"))
	{
		Linepen.CreatePen (PS_SOLID,1,RGB(0,255,0));	
		pDC->SetTextColor(RGB(0,255,0));   		
		endx=centerx+Ri*cos(rad(jd));
		endy=centery-Ri*sin(rad(jd));
	}
	if(s==_T("I3"))
	{
		Linepen.CreatePen (PS_SOLID,1,RGB(255,0,0));	
		pDC->SetTextColor(RGB(255,0,0));   		
		endx=centerx+Ri*cos(rad(jd));
		endy=centery-Ri*sin(rad(jd));
	}


	font.CreateFont (10,5,5,0,FW_NORMAL,FALSE,FALSE,0,NULL,NULL,CLIP_DEFAULT_PRECIS,NULL,NULL,_T("Arial"));		
	pDC->SelectObject (&Linepen);
	pDC->SelectObject (&font);	
	pDC->MoveTo(centerx,centery);
	pDC->LineTo(endx,endy);
    pDC->MoveTo (endx,endy);
	pDC->LineTo (endx-5*sin(rad(60-jd)),endy+5*cos(rad(60-jd)));
	pDC->MoveTo (endx,endy);
	pDC->LineTo (endx-5*sin(rad(120-jd)),endy+5*cos(rad(120-jd)));
	pDC->SetBkColor (RGB(0,0,0));	 
	pDC->ExtTextOut(endx+2,endy+2,ETO_CLIPPED,NULL,s,NULL);
}

BOOL CXltDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	/* TODO: Add extra initialization here1321
	CString s;
	s.Format(_T("%f"),a);
	AfxMessageBox(s);*/
	float cfuau1=0.0,cfuau2=0.0,cfuau3=0.0,cfuai1=0.0,cfuai2=0.0,cfuai3=0.0;
    if(strcmp(YjbkData[YjbkNum].jxfs,"P33")==0|| 
		strcmp(YjbkData[YjbkNum].jxfs,"Q33")==0 )cfuau1=120.0;
	else if(strcmp(YjbkData[YjbkNum].jxfs,"P34")==0||
		strcmp(YjbkData[YjbkNum].jxfs,"Q34")==0)cfuau1=90.0;
	else if (strcmp(YjbkData[YjbkNum].jxfs,"Q90")==0||
		strcmp(YjbkData[YjbkNum].jxfs,"Q60")==0 )cfuau1=0.0;
	else  strcpy(YjbkData[YjbkNum].jxfs ,"P33");
   
	cfuau2=cfuau1-YjbkData[YjbkNum].fu1u2;
	cfuai2=cfuau1-YjbkData[YjbkNum].fu1i2;
	cfuau3=cfuau1-YjbkData[YjbkNum].fu1u3;
	cfuai3=cfuau1-YjbkData[YjbkNum].fu1i3;
	
	m_fU1I1=YjbkData[YjbkNum].fu1i1_xlt ;
	m_fU1U1=YjbkData[YjbkNum].fu1u1 ;
	m_fU1U2=YjbkData[YjbkNum].fu1u2;
	m_fU1U3=YjbkData[YjbkNum].fu1u3;
	m_fU2I2=(cfuau2-cfuai2)<0?(cfuau2-cfuai2+360):(cfuau2-cfuai2);//YjbkData[YjbkNum].fu2i2 ;
	m_fU3I3=(cfuau3-cfuai3)<0?(cfuau3-cfuai3+360):(cfuau3-cfuai3);//YjbkData[YjbkNum].fu3i3 ;
	m_fPL=YjbkData[YjbkNum].f;
	m_sDLXX=_T("正");
	m_sDYXX=_T("逆");
	UpdateData(FALSE);
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CXltDlg::OnXltdlgBtnMore() 
{
	// TODO: Add your control notification handler code here
	CXltFZDlg dlg;
	dlg.m_bFullScreen = FALSE;
	dlg.DoModal();
}

void CXltDlg::OnXltdlgBtnExit() 
{
	// TODO: Add your control notification handler code here
	CDialog::OnCancel();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -