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

📄 mytotalp.cpp

📁 关于移动通信工程常用的计算工具
💻 CPP
字号:
// MyTotalP.cpp : implementation file
//

#include "stdafx.h"
#include "computer.h"
#include "MyTotalP.h"
#include "math.h"


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

/////////////////////////////////////////////////////////////////////////////
// CMyTotalP dialog
#include "ComputerDlg.h"
extern CComputerDlg * computerdlg;

CMyTotalP::CMyTotalP(CWnd* pParent /*=NULL*/)
	: CDialog(CMyTotalP::IDD, pParent)
{
	//{{AFX_DATA_INIT(CMyTotalP)
	m_totalw = 0.0;
	m_start = 0.0;
	m_zaipin = 0.0;
	m_p3 = 0.0;
	m_startp3 = 0.0;
	m_zaipin3 = 0.0;
	//}}AFX_DATA_INIT
}


void CMyTotalP::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CMyTotalP)
	DDX_Control(pDX, IDC_EDIT13, m_startp33);
	DDX_Control(pDX, IDC_EDIT12, m_zaipin33);
	DDX_Control(pDX, IDC_EDIT11, m_p33);
	DDX_Control(pDX, IDC_COMBO2, m_start3);
	DDX_Control(pDX, IDC_COMBO1, m_start1);
	DDX_Control(pDX, IDC_EDIT2, m_edit2);
	DDX_Control(pDX, IDC_EDIT1, m_edit1);
	DDX_Control(pDX, IDOK, m_button);
	DDX_Text(pDX, IDC_EDIT3, m_totalw);
	DDX_Text(pDX, IDC_EDIT1, m_start);
	DDX_Text(pDX, IDC_EDIT2, m_zaipin);
	DDX_Text(pDX, IDC_EDIT11, m_p3);
	DDX_Text(pDX, IDC_EDIT12, m_startp3);
	DDX_Text(pDX, IDC_EDIT13, m_zaipin3);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CMyTotalP, CDialog)
	//{{AFX_MSG_MAP(CMyTotalP)
	ON_WM_DESTROY()
	ON_WM_MOUSEMOVE()
	ON_CBN_SELCHANGE(IDC_COMBO1, OnSelchangeCombo1)
	ON_CBN_SELCHANGE(IDC_COMBO2, OnSelchangeCombo2)
	ON_BN_CLICKED(IDC_BUTTON3, OnButton3)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMyTotalP message handlers

void CMyTotalP::OnOK() 
{
	// TODO: Add extra validation here
	UpdateData(true);
	/*
int i=m_start1.GetCurSel();
CString temp="";
temp.Format("%d",i);
MessageBox(temp);
*/
	if(m_zaipin>0)
{
	m_totalw=m_start+10*log10(m_zaipin);
	CString str;
str.Format("%0.5f",m_totalw);
m_totalw=atof(str);
/*
	char show[10];
_gcvt(m_totalw,10,show);	//双精度转化为字符串
*/

computerdlg->m_show.Format("%lf",m_totalw);


if(m_start1.GetCurSel()==0)
{
	computerdlg->m_radio1=1;
	computerdlg->m_wdd=2;
}
else
{ computerdlg->m_radio1=0;
  computerdlg->m_wdd=1;
}
computerdlg->UpdateData(false);
	UpdateData(false);
}
	else MessageBox("载频数必须大于0","华泰提示:");

	//CDialog::OnOK();
}

void CMyTotalP::OnDestroy() 
{
	CDialog::OnDestroy();
	
	// TODO: Add your message handler code here
   computerdlg->MyTotalP=NULL;
   computerdlg->Invalidate(false);
	delete this;
}

BOOL CMyTotalP::PreTranslateMessage(MSG* pMsg) 
{
	// TODO: Add your specialized code here and/or call the base class
			if(m_tip[0].m_hWnd!=NULL)
       m_tip[0].RelayEvent(pMsg);
	if(m_tip[1].m_hWnd!=NULL)
       m_tip[1].RelayEvent(pMsg);
		if(m_tip[2].m_hWnd!=NULL)
       m_tip[2].RelayEvent(pMsg);

			if(m_tip[3].m_hWnd!=NULL)
       m_tip[3].RelayEvent(pMsg);
	if(m_tip[4].m_hWnd!=NULL)
       m_tip[4].RelayEvent(pMsg);
		if(m_tip[5].m_hWnd!=NULL)
       m_tip[5].RelayEvent(pMsg);


	return CDialog::PreTranslateMessage(pMsg);
}

BOOL CMyTotalP::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	pSub[0] = GetDlgItem(IDC_EDIT1);
	pSub[1] = GetDlgItem(IDC_EDIT2);
	pSub[2]=GetDlgItem(IDC_EDIT3);

	pSub[3] = GetDlgItem(IDC_EDIT11);
	pSub[4] = GetDlgItem(IDC_EDIT13);
	pSub[5]=GetDlgItem(IDC_EDIT12);



	m_tip[0].Create(pSub[0],TTS_ALWAYSTIP);
	m_tip[0].AddTool(pSub[0]);
	m_tip[1].Create(pSub[1],TTS_ALWAYSTIP);
	m_tip[1].AddTool(pSub[1]);
	m_tip[2].Create(pSub[2],TTS_ALWAYSTIP);
	m_tip[2].AddTool(pSub[2]);

	m_tip[3].Create(pSub[3],TTS_ALWAYSTIP);
	m_tip[3].AddTool(pSub[3]);
	m_tip[4].Create(pSub[4],TTS_ALWAYSTIP);
	m_tip[4].AddTool(pSub[4]);
	m_tip[5].Create(pSub[5],TTS_ALWAYSTIP);
	m_tip[5].AddTool(pSub[5]);


m_start1.AddString("W");

m_start1.AddString("dBm");

m_total1.AddString("W");
m_total1.AddString("dBm");

m_start1.SetCurSel(0);

m_total1.SetCurSel(0);


m_start3.AddString("W");
m_start3.AddString("dBm");
m_start3.SetCurSel(0);
GetDlgItem(IDC_STATICtotalP2)->SetWindowText("dBm");
GetDlgItem(IDC_STATICtotalP3)->SetWindowText("dBm");
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CMyTotalP::OnMouseMove(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	m_tip[0].UpdateTipText("每载频功率",pSub[0]);
	m_tip[1].UpdateTipText("载频数",pSub[1]);
	m_tip[2].UpdateTipText("总功率",pSub[2]);
	
	m_tip[3].UpdateTipText("总功率",pSub[3]);
	m_tip[5].UpdateTipText("每载频功率",pSub[5]);
	m_tip[4].UpdateTipText("载频数",pSub[4]);

	CDialog::OnMouseMove(nFlags, point);
}

void CMyTotalP::OnSelchangeCombo1() 
{
	// TODO: Add your control notification handler code here
	if(m_start1.GetCurSel()==0)
GetDlgItem(IDC_STATICtotalP2)->SetWindowText("dBm");
	else 
GetDlgItem(IDC_STATICtotalP2)->SetWindowText("W");
}









void CMyTotalP::OnSelchangeCombo2() 
{
	// TODO: Add your control notification handler code here
	if(m_start3.GetCurSel()==0)
GetDlgItem(IDC_STATICtotalP3)->SetWindowText("dBm");
	else 
GetDlgItem(IDC_STATICtotalP3)->SetWindowText("W");
}



void CMyTotalP::OnCancel() 
{
	// TODO: Add extra cleanup here
	CDialog::OnCancel();
}



void CMyTotalP::OnButton3() 
{
	// TODO: Add your control notification handler code here
		UpdateData(true);
	if(m_zaipin3>0)
{
	m_startp3=m_p3-10*log10(m_zaipin3);
	CString str;
str.Format("%0.5f",m_startp3);
m_startp3=atof(str);
computerdlg->m_show.Format("%lf",m_startp3);
if(m_start3.GetCurSel()==0)
{
	computerdlg->m_radio1=1;
	computerdlg->m_wdd=2;
}
else
{ computerdlg->m_radio1=0;
  computerdlg->m_wdd=1;
}
computerdlg->UpdateData(false);
	UpdateData(false);
}
	else MessageBox("载频数必须大于0","华泰提示:");
}

⌨️ 快捷键说明

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