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

📄 dlgsheet1.cpp

📁 VC&Matlab混合编程实现无线电导航指示器
💻 CPP
字号:
// DlgSheet1.cpp : implementation file
//

#include "stdafx.h"
#include "RADIO.h"
#include "DlgSheet1.h"
#include "ommonStatic.h"
#include "APPStatic.h"

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

/////////////////////////////////////////////////////////////////////////////
// CDlgSheet1 dialog


CDlgSheet1::CDlgSheet1(CWnd* pParent /*=NULL*/)
	: CDialog(CDlgSheet1::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDlgSheet1)
	m_strAlt = _T("");
	m_strSpeed = _T("");
	m_strRoll = _T("");
	m_strPitch = _T("");
	m_strYaw = _T("");
	m_strMagVar=_T("");
	m_strBeacon = _T("");
	m_strMagNorth = _T("");
	m_strBeaconType = _T("");
	m_strAzMeasure = _T("");
	m_strDisMeasure = _T("");
	m_strBeaconLa = _T("");
	m_strBeaconPhi = _T("");
	m_strBeaconH = _T("");
	//}}AFX_DATA_INIT
	
}


void CDlgSheet1::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
    if(pDX->m_bSaveAndValidate==FALSE){//Write to Screen,要向Screen写,用我自己的方法写
	DDX_Control(pDX, ID_BEACONH, m_staticBeaconH);
	DDX_Control(pDX, ID_BEACONPHI, m_staticBeaconPhi);
	DDX_Control(pDX, ID_BEACONLA, m_staticBeaconLa);
	DDX_Control(pDX, ID_DISMEASURE, m_staticDisMeasure);
	DDX_Control(pDX, ID_AZMEASURE, m_staticAzMeasure);
	DDX_Control(pDX, ID_BEACONTYPE, m_staticBeaconType);
	DDX_Control(pDX, IDTEXT_MAGNORTH, m_staticMagNorth);
	DDX_Control(pDX, IDTEXT_REALNORTH, m_staticRealNorth);
	DDX_Control(pDX, IDTEXT_BEACON, m_staticBeacon);
	DDX_Control(pDX, IDTEXT_MAGVAR, m_staticMagVar);
    DDX_Control(pDX, IDTITLE_CH9, m_titleCh9);
	DDX_Control(pDX, IDTITLE_CH8, m_titleCh8);
	DDX_Control(pDX, IDTITLE_CH7, m_titleCh7);
	DDX_Control(pDX, IDTITLE_CH6, m_titleCh6);
	DDX_Control(pDX, IDTITLE_CH5, m_titleCh5);
	DDX_Control(pDX, IDTITLE_CH4, m_titleCh4);
	DDX_Control(pDX, IDTITLE_CH3, m_titileCh3);
	DDX_Control(pDX, IDTITLE_CH2, m_titleCh2);
	DDX_Control(pDX, IDTITLE_CH11, m_titleCh11);
	DDX_Control(pDX, IDTITLE_CH10, m_titleCh10);
 	DDX_Control(pDX, IDTITLE_CH1, m_titleCh1);
	DDX_Control(pDX, IDTITLE_RMI, m_titleRMI);
	DDX_Control(pDX, IDTEXT_YAW, m_staticYaw);
	DDX_Control(pDX, IDTEXT_PITCH, m_staticPitch);
	DDX_Control(pDX, IDTEXT_ROLL, m_staticRoll);
	DDX_Control(pDX, IDTEXT_SPEED, m_staticSpeed);
	DDX_Control(pDX, IDTITLE2_ATTI, m_titile2Atti);
	DDX_Control(pDX, IDTITLE2_SPEED, m_title2Speed);
	DDX_Control(pDX, IDTITLE1_SPEED, m_title1Speed);
	DDX_Control(pDX, IDTITLE_YAW, m_titleYaw);
	DDX_Control(pDX, IDTITLE1_ATTI, m_title1Atti);
	DDX_Control(pDX, IDTITLE_ROLL, m_titleRoll);
	DDX_Control(pDX, IDTITLE_PITCH, m_titlePictch);
	DDX_Control(pDX, IDTITLE2_ALT, m_title2Alt);
	DDX_Control(pDX, IDTITLE1_ALT, m_title1Alt);
	DDX_Control(pDX, IDTEXT_AlT, m_staticAlt);	
	DrawControl();
	return;
	}
	//要取数据,用你原来的DDX系统
	//{{AFX_DATA_MAP(CDlgSheet1)	
	DDX_Control(pDX, ID_BEACONH, m_staticBeaconH);
	DDX_Control(pDX, ID_BEACONPHI, m_staticBeaconPhi);
	DDX_Control(pDX, ID_BEACONLA, m_staticBeaconLa);
	DDX_Control(pDX, ID_DISMEASURE, m_staticDisMeasure);
	DDX_Control(pDX, ID_AZMEASURE, m_staticAzMeasure);
	DDX_Control(pDX, ID_BEACONTYPE, m_staticBeaconType);
	DDX_Control(pDX, IDTEXT_MAGNORTH, m_staticMagNorth);
	DDX_Control(pDX, IDTEXT_REALNORTH, m_staticRealNorth);
	DDX_Control(pDX, IDTEXT_BEACON, m_staticBeacon);
	DDX_Control(pDX, IDTEXT_MAGVAR, m_staticMagVar);
	DDX_Control(pDX, IDTITLE_CH9, m_titleCh9);
	DDX_Control(pDX, IDTITLE_CH8, m_titleCh8);
	DDX_Control(pDX, IDTITLE_CH7, m_titleCh7);
	DDX_Control(pDX, IDTITLE_CH6, m_titleCh6);
	DDX_Control(pDX, IDTITLE_CH5, m_titleCh5);
	DDX_Control(pDX, IDTITLE_CH4, m_titleCh4);
	DDX_Control(pDX, IDTITLE_CH3, m_titileCh3);
	DDX_Control(pDX, IDTITLE_CH2, m_titleCh2);
	DDX_Control(pDX, IDTITLE_CH11, m_titleCh11);
	DDX_Control(pDX, IDTITLE_CH10, m_titleCh10);
 	DDX_Control(pDX, IDTITLE_CH1, m_titleCh1);
	DDX_Control(pDX, IDTITLE_RMI, m_titleRMI);
	DDX_Control(pDX, IDTEXT_YAW, m_staticYaw);
	DDX_Control(pDX, IDTEXT_PITCH, m_staticPitch);
	DDX_Control(pDX, IDTEXT_ROLL, m_staticRoll);
	DDX_Control(pDX, IDTEXT_SPEED, m_staticSpeed);
	DDX_Control(pDX, IDTITLE2_ATTI, m_titile2Atti);
	DDX_Control(pDX, IDTITLE2_SPEED, m_title2Speed);
	DDX_Control(pDX, IDTITLE1_SPEED, m_title1Speed);
	DDX_Control(pDX, IDTITLE_YAW, m_titleYaw);
	DDX_Control(pDX, IDTITLE1_ATTI, m_title1Atti);
	DDX_Control(pDX, IDTITLE_ROLL, m_titleRoll);
	DDX_Control(pDX, IDTITLE_PITCH, m_titlePictch);
	DDX_Control(pDX, IDTITLE2_ALT, m_title2Alt);
	DDX_Control(pDX, IDTITLE1_ALT, m_title1Alt);
	DDX_Control(pDX, IDTEXT_AlT, m_staticAlt);	
	DDX_Text(pDX, IDTEXT_AlT, m_strAlt);
	DDX_Text(pDX, IDTEXT_SPEED, m_strSpeed);
	DDX_Text(pDX, IDTEXT_ROLL, m_strRoll);
	DDX_Text(pDX, IDTEXT_PITCH, m_strPitch);
	DDX_Text(pDX, IDTEXT_YAW, m_strYaw);
	DDX_Text(pDX, IDTEXT_MAGVAR, m_strMagVar);
	DDX_Text(pDX, IDTEXT_BEACON, m_strBeacon);
	DDX_Text(pDX, IDTEXT_MAGNORTH, m_strMagNorth);
	DDX_Text(pDX, ID_BEACONTYPE, m_strBeaconType);
	DDX_Text(pDX, ID_AZMEASURE, m_strAzMeasure);
	DDX_Text(pDX, ID_DISMEASURE, m_strDisMeasure);
	DDX_Text(pDX, ID_BEACONLA, m_strBeaconLa);
	DDX_Text(pDX, ID_BEACONPHI, m_strBeaconPhi);
	DDX_Text(pDX, ID_BEACONH, m_strBeaconH);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDlgSheet1, CDialog)
	//{{AFX_MSG_MAP(CDlgSheet1)
	ON_WM_PAINT()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDlgSheet1 message handlers



void CDlgSheet1::DrawControl()
{
	if (m_staticAlt.IsReadyToPaint())
	{	m_staticAlt.SetPaintInfo(m_strAlt);
		m_staticAlt.Paint();
	}
	if (m_staticPitch.IsReadyToPaint())
	{	m_staticPitch.SetPaintInfo(m_strPitch);
		m_staticPitch.Paint();
	}	
	if (m_staticRoll.IsReadyToPaint())
	{	m_staticRoll.SetPaintInfo(m_strRoll);
		m_staticRoll.Paint();
	}
	if (m_staticYaw.IsReadyToPaint())
	{	m_staticYaw.SetPaintInfo(m_strYaw);
		m_staticYaw.Paint();
	}
	if (m_staticSpeed.IsReadyToPaint())
	{	m_staticSpeed.SetPaintInfo(m_strSpeed);
		m_staticSpeed.Paint();
	}
	if (m_staticMagVar.IsReadyToPaint())
	{	
		TCHAR buffer[20];
		_stprintf(buffer,_T("%6.3lf"),APPStatic::app_dMagneticErrorAngle);
		m_strMagVar=CString(buffer);
		m_staticMagVar.SetPaintInfo(m_strMagVar);
		m_staticMagVar.Paint();
	}
	if (m_staticBeacon.IsReadyToPaint())
	{	
		if(APPStatic::GetMainView()->GetBeaconManage()->m_bIsBeaconAvailable){
			m_strBeacon=_T("可用");
		}else{
            m_strBeacon=_T("不可用");
		}
		m_staticBeacon.SetPaintInfo(m_strBeacon);
		m_staticBeacon.Paint();
	}
	if (m_staticRealNorth.IsReadyToPaint())
	{
		m_staticRealNorth.SetPaintInfo(m_strYaw);
 	    m_staticRealNorth.Paint();
	}
	if (m_staticRealNorth.IsReadyToPaint())
	{
		m_staticMagNorth.SetPaintInfo(m_strMagNorth);
		m_staticMagNorth.Paint();
	}
    if(m_staticBeaconType.IsReadyToPaint()){
		if(APPStatic::GetMainView()->GetBeaconManage()->m_bIsBeaconAvailable){
			if(APPStatic::GetMainView()->GetBeaconManage()->GetBeaconList()->GetAt(APPStatic::GetMainView()->GetBeaconManage()->m_iAvailableBCIndex).type==AIR){
				m_strBeaconType="空中";
			}else{
                m_strBeaconType="地面";
			}
		}else{
           m_strBeaconType="无";
		}
		m_staticBeaconType.SetPaintInfo(m_strBeaconType);
		m_staticBeaconType.Paint();		
	}
	if (m_staticAzMeasure.IsReadyToPaint())
	{   
        m_strAzMeasure.Format("%6.3lf",APPStatic::GetMainView()->m_pBeaconSimu->m_dAzMeasure);
		m_staticAzMeasure.SetPaintInfo(m_strAzMeasure);
		m_staticAzMeasure.Paint();
	}
	if (m_staticDisMeasure.IsReadyToPaint())
	{   
        m_strDisMeasure.Format("%6.3lf",APPStatic::GetMainView()->m_pBeaconSimu->m_dDisMeasure);
		m_staticDisMeasure.SetPaintInfo(m_strDisMeasure);
		m_staticDisMeasure.Paint();
	}

	if (m_staticBeaconLa.IsReadyToPaint())
	{   
        if(APPStatic::GetMainView()->GetBeaconManage()->m_bIsBeaconAvailable){			
		    m_strBeaconLa.Format("%6.3lf",APPStatic::GetMainView()->GetBeaconManage()->GetBeaconList()->GetAt(APPStatic::GetMainView()->GetBeaconManage()->m_iAvailableBCIndex).pos.x);
		}else{
           //m_strBeaconLa.Format("%6.3lf",0);
		}
		m_staticBeaconLa.SetPaintInfo(m_strBeaconLa);
		m_staticBeaconLa.Paint();
	}

	if (m_staticBeaconLa.IsReadyToPaint())
	{   
        if(APPStatic::GetMainView()->GetBeaconManage()->m_bIsBeaconAvailable){			
		    m_strBeaconPhi.Format("%6.3lf",APPStatic::GetMainView()->GetBeaconManage()->GetBeaconList()->GetAt(APPStatic::GetMainView()->GetBeaconManage()->m_iAvailableBCIndex).pos.y);
		}else{
          // m_strBeaconPhi.Format("%6.3lf",0);
		}
		m_staticBeaconPhi.SetPaintInfo(m_strBeaconPhi);
		m_staticBeaconPhi.Paint();
	}

	if (m_staticBeaconLa.IsReadyToPaint())
	{   
        if(APPStatic::GetMainView()->GetBeaconManage()->m_bIsBeaconAvailable){			
		    m_strBeaconH.Format("%6.3lf",APPStatic::GetMainView()->GetBeaconManage()->GetBeaconList()->GetAt(APPStatic::GetMainView()->GetBeaconManage()->m_iAvailableBCIndex).pos.z);
		}else{
           m_strBeaconH.Format("%6.3lf",0);
		}
		m_staticBeaconH.SetPaintInfo(m_strBeaconH);
		m_staticBeaconH.Paint();
	}
}


BOOL CDlgSheet1::OnInitDialog() 
{
	CDialog::OnInitDialog();


	//这里对话框和其子控件都创建好了,且UpdateData(FALSE)被自动调用过了,也就是控件对象有效了。
	m_title1Alt.SetPaintInfo("title");
    m_title1Alt.SetPaintProc(CommonStatic::PaintProcStatic);

	m_title2Alt.SetPaintInfo("engTitle");
    m_title2Alt.SetPaintProc(CommonStatic::PaintProcStatic);

	m_title1Atti.SetPaintInfo("title");
    m_title1Atti.SetPaintProc(CommonStatic::PaintProcStatic);

	m_titlePictch.SetPaintInfo("engTitle");
    m_titlePictch.SetPaintProc(CommonStatic::PaintProcStatic);

	m_titleRoll.SetPaintInfo("engTitle");
    m_titleRoll.SetPaintProc(CommonStatic::PaintProcStatic);

	m_titleYaw.SetPaintInfo("engTitle");
    m_titleYaw.SetPaintProc(CommonStatic::PaintProcStatic);

	m_title1Speed.SetPaintInfo("title");
    m_title1Speed.SetPaintProc(CommonStatic::PaintProcStatic);

	m_title2Speed.SetPaintInfo("engTitle");
    m_title2Speed.SetPaintProc(CommonStatic::PaintProcStatic);

	m_titile2Atti.SetPaintInfo("engTitle");
    m_titile2Atti.SetPaintProc(CommonStatic::PaintProcStatic);

    m_staticAlt.SetPaintInfo(m_strAlt);
	m_staticAlt.SetPaintProc(CommonStatic::PaintProcStatic);

	m_staticPitch.SetPaintInfo(m_strPitch);
	m_staticPitch.SetPaintProc(CommonStatic::PaintProcStatic);

	m_staticRoll.SetPaintInfo(m_strRoll);
	m_staticRoll.SetPaintProc(CommonStatic::PaintProcStatic);

	m_staticYaw.SetPaintInfo(m_strPitch);
	m_staticYaw.SetPaintProc(CommonStatic::PaintProcStatic);
	
	m_staticSpeed.SetPaintInfo(m_strSpeed);
	m_staticSpeed.SetPaintProc(CommonStatic::PaintProcStatic);

	m_titleRMI.SetPaintInfo("engTitle");
	m_titleRMI.SetPaintProc(CommonStatic::PaintProcStatic);

	m_titleCh1.SetPaintInfo("title");
 	m_titleCh1.SetPaintProc(CommonStatic::PaintProcStatic);

	m_titleCh2.SetPaintInfo("title");
 	m_titleCh2.SetPaintProc(CommonStatic::PaintProcStatic);

	m_titileCh3.SetPaintInfo("title");
 	m_titileCh3.SetPaintProc(CommonStatic::PaintProcStatic);

	m_titleCh4.SetPaintInfo("title");
 	m_titleCh4.SetPaintProc(CommonStatic::PaintProcStatic);

	m_titleCh5.SetPaintInfo("title");
	m_titleCh5.SetPaintProc(CommonStatic::PaintProcStatic);
	
	m_titleCh6.SetPaintInfo("title");
	m_titleCh6.SetPaintProc(CommonStatic::PaintProcStatic);
	
	m_titleCh7.SetPaintInfo("title");
	m_titleCh7.SetPaintProc(CommonStatic::PaintProcStatic);
	
	m_titleCh8.SetPaintInfo("title");
	m_titleCh8.SetPaintProc(CommonStatic::PaintProcStatic);
	
	m_titleCh9.SetPaintInfo("title");
	m_titleCh9.SetPaintProc(CommonStatic::PaintProcStatic);
	
	m_titleCh10.SetPaintInfo("title");
	m_titleCh10.SetPaintProc(CommonStatic::PaintProcStatic);
	
	m_titleCh11.SetPaintInfo("title");
	m_titleCh11.SetPaintProc(CommonStatic::PaintProcStatic);	
	
	m_staticMagVar.SetPaintInfo(m_strMagVar);
 	m_staticMagVar.SetPaintProc(CommonStatic::PaintProcStatic);

	m_staticBeacon.SetPaintInfo(m_strBeacon);
 	m_staticBeacon.SetPaintProc(CommonStatic::PaintProcStatic2);

	m_staticRealNorth.SetPaintInfo(m_strYaw);
 	m_staticRealNorth.SetPaintProc(CommonStatic::PaintProcStatic);

	m_staticMagNorth.SetPaintInfo(m_strMagNorth);
 	m_staticMagNorth.SetPaintProc(CommonStatic::PaintProcStatic);

	m_staticBeaconType.SetPaintInfo(m_strBeaconType);
    m_staticBeaconType.SetPaintProc(CommonStatic::PaintProcStatic2);

	m_staticAzMeasure.SetPaintInfo(m_strAzMeasure);
    m_staticAzMeasure.SetPaintProc(CommonStatic::PaintProcStatic3);

	m_staticDisMeasure.SetPaintInfo(m_strDisMeasure);
    m_staticDisMeasure.SetPaintProc(CommonStatic::PaintProcStatic3);

	m_staticBeaconLa.SetPaintInfo(m_strBeaconLa);
    m_staticBeaconLa.SetPaintProc(CommonStatic::PaintProcStatic3);

	m_staticBeaconPhi.SetPaintInfo(m_strBeaconPhi);
    m_staticBeaconPhi.SetPaintProc(CommonStatic::PaintProcStatic3);

	m_staticBeaconH.SetPaintInfo(m_strBeaconH);
    m_staticBeaconH.SetPaintProc(CommonStatic::PaintProcStatic3);
	return TRUE;  // return TRUE unless you set the focus to a control
	// EXCEPTION: OCX Property Pages should return FALSE
}



void CDlgSheet1::OnPaint() 
{
	CPaintDC dc(this); // device context for painting
	
	CRect rect;
	GetClientRect(rect);
	dc.FillSolidRect(rect,APPStatic::colorDlg);  //设置背景色
	
	// TODO: Add your message handler code here
	
	// Do not call CDialog::OnPaint() for painting messages
}

⌨️ 快捷键说明

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