Files
gjm 164968b62e chore
把非utf8-bom编码的cpp/h文件改为 utf8 bom 编码, msvc识别utf8编码时,如果不是bom格式的,会使用当前cp_oem来解码.
2026-10-04 00:04:20 +08:00

148 lines
3.3 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// CanalCalcDlg.cpp : implementation file
//
#include "stdafx.h"
#include "CanalCalcDlg.h"
#include "TAPI.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CCanalCalcDlg dialog
CCanalCalcDlg::CCanalCalcDlg(CWnd* pParent /*=NULL*/)
: CDialog(CCanalCalcDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CCanalCalcDlg)
m_csB = _T("4");
m_csH = _T("4");
m_csM = _T("0");
m_csI = _T("6");
m_iMode = 0;
m_csRet = _T("");
m_csQ = _T("");
m_csV = _T("");
//}}AFX_DATA_INIT
}
void CCanalCalcDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CCanalCalcDlg)
DDX_Text(pDX, IDC_EDIT_B, m_csB);
DDX_Text(pDX, IDC_EDIT_H, m_csH);
DDX_Text(pDX, IDC_EDIT_M, m_csM);
DDX_CBString(pDX, IDC_COMBO_I, m_csI);
DDX_Radio(pDX, IDC_RADIO_MODE1, m_iMode);
DDX_Text(pDX, IDC_EDIT_RET, m_csRet);
DDX_Text(pDX, IDC_EDIT_Q, m_csQ);
DDX_Text(pDX, IDC_EDIT_V, m_csV);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CCanalCalcDlg, CDialog)
//{{AFX_MSG_MAP(CCanalCalcDlg)
ON_WM_PAINT()
ON_BN_CLICKED(IDC_RADIO_MODE1, OnRadioMode1)
ON_BN_CLICKED(IDC_RADIO4, OnRadio3)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CCanalCalcDlg message handlers
BOOL CCanalCalcDlg::OnInitDialog()
{
CDialog::OnInitDialog();
ResetMode();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CCanalCalcDlg::OnPaint()
{
CPaintDC dc(this); // device context for painting
DisplayStatic();
}
void CCanalCalcDlg::DisplayStatic()
{
CWnd* pWnd = GetDlgItem(IDC_PREVIEW);
DrawSlide(_T("TWT(FANGGOU)"), pWnd);
}
void CCanalCalcDlg::OnOK()
{
UpdateData(TRUE);
double m = _tstof(m_csM);
double h = _tstof(m_csH);
double b = _tstof(m_csB);
double i = _tstof(m_csI) / 1000;
double q = _tstof(m_csQ);
double n = 0.013;
double nRet(0);
double nV(0);
if(m_iMode == 0){
double nTmp(0);
nTmp = (b+m*h)*h;
nTmp = pow(nTmp, 5.0/3.0);
double nTmp2 = pow(i, 0.5);
nTmp = nTmp * nTmp2;
nTmp2 = sqrt(1+ m*m) * 2 *h + b;
nTmp2 = pow(nTmp2, 2.0/3.0) * n;
nRet = nTmp / nTmp2;
nV = nRet / (b + m*h)/h;
}
else {
double nTmp(0);
nTmp = sqrt(m*m + 1)*2*h+b;
nTmp = pow(nTmp, 4.0/3.0) * n *n*q*q;
double nTmp2 = (b + m*h)*h;
nTmp2 = pow(nTmp2, 10.0/3.0);
nRet = nTmp / nTmp2 * 1000;
nV = q / (b + m*h)/h;
}
m_csRet.Format(_T("%.2f"), nRet);
m_csV.Format(_T("%.2f"), nV);
UpdateData(FALSE);
}
void CCanalCalcDlg::OnRadioMode1()
{
ResetMode();
}
void CCanalCalcDlg::OnRadio3()
{
ResetMode();
}
void CCanalCalcDlg::ResetMode()
{
UpdateData(TRUE);
CWnd *pWnd1 = GetDlgItem(IDC_STATIC_RET);
CWnd *pWnd2 = GetDlgItem(IDC_EDIT_Q);
CWnd *pWnd3 = GetDlgItem(IDC_COMBO_I);
if(m_iMode == 0){
pWnd1->SetWindowText(_T("流量Q(立方米/s):"));
pWnd2->EnableWindow(FALSE);
pWnd3->EnableWindow(TRUE);
}
else{
pWnd3->EnableWindow(FALSE);
pWnd2->EnableWindow(TRUE);
pWnd1->SetWindowText(_T("坡度(千分之):"));
}
UpdateData(FALSE);
}