📄 formbeamsecdlg.cpp
字号:
/********************************************************************
filename: d:\spatools\formbeamsecdlg.cpp
Copyright (c) 2003 Chao Zuo. All rights reserved.
Email: suncho@vip.sina.com
Notice: If this code works, it was written by Chao Zuo.
Else, I don't know who wrote it.
I Wrote this code for all software developers in civil engineering,
and hope it help you.
Have any question, please email me.
*********************************************************************/
#include "stdafx.h"
#include "SpaTools.h"
#include "FormBeamSecDlg.h"
#include "MainFrm.h"
//#include "GjMsgs.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern float GetGjKanglaFy(CString &cs);
extern float GetGjKanglaFyc(CString &cs);
CFormBeamSecDlg::CFormBeamSecDlg(CWnd* pParent /*=NULL*/)
: CDialog(CFormBeamSecDlg::IDD, pParent)
{
m_pParent=NULL;
//{{AFX_DATA_INIT(CFormBeamSecDlg)
m_Alf = 45.0f;
m_Asa = 0.0f;
m_Asb = 0.0f;
m_B = 250.0f;
m_Bfd = 250.0f;
m_Bfu = 250.0f;
m_H = 600.0f;
m_Hfd = 0.0f;
m_Hfu = 0.0f;
m_Rmd = 1.0f;
m_Span = 6000.0f;
m_S = 100.0f;
m_T = 0.0f;
m_bLa = FALSE;
m_bEq = FALSE;
m_bNiu = FALSE;
m_bXjm = TRUE;
m_bWan = TRUE;
m_M = 300.0f;
m_N = 100.0f;
m_asu = 35.0f;
m_asd = 35.0f;
m_V = 200.0f;
m_Pmin = 0.2f;
m_bJLoad = FALSE;
m_bDChen = FALSE;
m_bJYun = FALSE;
m_E0 = 0.0f;
//}}AFX_DATA_INIT
}
CFormBeamSecDlg::~CFormBeamSecDlg()
{
}
void CFormBeamSecDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CFormBeamSecDlg)
DDX_Control(pDX, IDC_COMBO_JMLX, m_ComboJmLx);
DDX_Control(pDX, IDC_COMBO_RO, m_ComboRo);
DDX_Control(pDX, IDC_COMBO_FYC, m_ComboFyc);
DDX_Control(pDX, IDC_COMBO_LLX, m_ComboLLx);
DDX_Control(pDX, IDC_COMBO_KZDJ, m_ComboKzdj);
DDX_Control(pDX, IDC_COMBO_FYV, m_ComboFyv);
DDX_Control(pDX, IDC_COMBO_FY, m_ComboFy);
DDX_Control(pDX, IDC_COMBO_FCUK, m_ComboFcuk);
DDX_Text(pDX, IDC_ALF, m_Alf);
DDX_Text(pDX, IDC_ASA, m_Asa);
DDX_Text(pDX, IDC_ASB, m_Asb);
DDX_Text(pDX, IDC_B, m_B);
DDX_Text(pDX, IDC_BFD, m_Bfd);
DDX_Text(pDX, IDC_BFU, m_Bfu);
DDX_Text(pDX, IDC_H, m_H);
DDX_Text(pDX, IDC_HFD, m_Hfd);
DDX_Text(pDX, IDC_HFU, m_Hfu);
DDX_Text(pDX, IDC_LEMD, m_Rmd);
DDX_Text(pDX, IDC_LO, m_Span);
DDX_Text(pDX, IDC_S, m_S);
DDX_Text(pDX, IDC_T, m_T);
DDX_Check(pDX, IDC_CHECK_LA, m_bLa);
DDX_Check(pDX, IDC_CHECK_DI, m_bEq);
DDX_Check(pDX, IDC_CHECK_NIU, m_bNiu);
DDX_Check(pDX, IDC_CHECK_XIE, m_bXjm);
DDX_Check(pDX, IDC_CHECK_ZHENG, m_bWan);
DDX_Text(pDX, IDC_M, m_M);
DDX_Text(pDX, IDC_N, m_N);
DDX_Text(pDX, IDC_BHCS, m_asu);
DDX_Text(pDX, IDC_BHCX, m_asd);
DDX_Text(pDX, IDC_V, m_V);
DDX_Text(pDX, IDC_PMIN, m_Pmin);
DDX_Check(pDX, IDC_CHECK_JZHLOAD, m_bJLoad);
DDX_Check(pDX, IDC_CHECK_DUICHEN, m_bDChen);
DDX_Check(pDX, IDC_CHECK_JUNYUN, m_bJYun);
DDX_Text(pDX, IDC_E0, m_E0);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CFormBeamSecDlg, CDialog)
//{{AFX_MSG_MAP(CFormBeamSecDlg)
ON_BN_CLICKED(IDC_BUTTON_CAL, OnButtonCal)
ON_BN_CLICKED(IDC_CHECK_LA, OnCheckLa)
ON_BN_CLICKED(IDC_CHECK_ZHENG, OnCheckZheng)
ON_BN_CLICKED(IDC_CHECK_XIE, OnCheckXie)
ON_BN_CLICKED(IDC_CHECK_NIU, OnCheckNiu)
ON_BN_CLICKED(IDC_CHECK_DI, OnCheckDi)
ON_CBN_SELCHANGE(IDC_COMBO_JMLX, OnSelchangeComboJmlx)
ON_BN_CLICKED(IDC_CHECK_JZHLOAD, OnCheckJzhload)
ON_BN_CLICKED(IDC_CHECK_DUICHEN, OnCheckDuichen)
ON_BN_CLICKED(IDC_CHECK_JUNYUN, OnCheckJunyun)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CFormBeamSecDlg message handlers
BOOL CFormBeamSecDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
// m_ComboKzdj.
int nCount = m_ComboLLx.GetCount();
if (nCount > 0)
m_ComboLLx.SetCurSel(0);
nCount = m_ComboRo.GetCount();
if (nCount > 0)
m_ComboRo.SetCurSel(1);
nCount = m_ComboFy.GetCount();
if (nCount > 0)
m_ComboFy.SetCurSel(1);
nCount = m_ComboFyv.GetCount();
if (nCount > 0)
m_ComboFyv.SetCurSel(0);
nCount = m_ComboFyc.GetCount();
if (nCount > 0)
m_ComboFyc.SetCurSel(1);
nCount = m_ComboFcuk.GetCount();
if (nCount > 0)
m_ComboFcuk.SetCurSel(2);
nCount = m_ComboKzdj.GetCount();
if (nCount > 0)
m_ComboKzdj.SetCurSel(0);
nCount = m_ComboJmLx.GetCount();
if (nCount > 0)
m_ComboJmLx.SetCurSel(0);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
extern float B, H, Bfu, Hfu, Bfd, Hfd, Asu, Asd, Span, Fy, Fyc, Fyv, M, N, V, T, e0;
extern BOOL bWan, bXjm, bEq, bNiu, bLa, bJLoad, bDuiCh, bJunY;
extern int kFcuk,Klxl, Kzdj,KJmLx;
extern float Rmd, Arf, S, Asa, Asb ,Ro, pmin;
extern CString csTringFy,csTringFyc,csTringFyv;
void CFormBeamSecDlg::OnButtonCal()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
CString rString;
int iCurSel=m_ComboFy.GetCurSel();
m_ComboFy.GetLBText( iCurSel, rString );
csTringFy=rString;
iCurSel=m_ComboFyc.GetCurSel();
m_ComboFyc.GetLBText( iCurSel, rString );
csTringFyc=rString;
iCurSel=m_ComboFyv.GetCurSel();
m_ComboFyv.GetLBText( iCurSel, rString );
csTringFyv=rString;
iCurSel=m_ComboFcuk.GetCurSel();
m_ComboFcuk.GetLBText( iCurSel, rString );
rString.Delete(0);
kFcuk=atol(rString);
iCurSel=m_ComboLLx.GetCurSel();
Klxl=iCurSel;
iCurSel=m_ComboKzdj.GetCurSel();
Kzdj=iCurSel;
iCurSel=m_ComboRo.GetCurSel();
if(iCurSel==0) Ro=0.1;
else if(iCurSel==1) Ro=1;
else if(iCurSel==2) Ro=1.1;
KJmLx=m_ComboJmLx.GetCurSel();
B=m_B;
H=m_H;
Bfu=m_Bfu;
Hfu=m_Hfu;
Bfd=m_Bfd;
Hfd=m_Hfd;
Asu=m_asu;
Asd=m_asd;
Span=m_Span;
e0=m_E0;
Asa=m_Asa;
Asb=m_Asb;
pmin=m_Pmin;
bWan=m_bWan;
bXjm=m_bXjm;
bEq=m_bEq;
bNiu=m_bNiu;
bLa=m_bLa;
bJLoad=m_bJLoad;
bDuiCh=m_bDChen;
bJunY=m_bJYun;
M=m_M;
N=m_N;
Rmd=m_Rmd;
Arf=m_Alf;
S=m_S;
V=m_V;
T=m_T;
// typedef void (WINAPI * TESTDLL)(float &b,float &h,float &Bfu,float &Hfu,float &Bfd,float &Hfd,
// float &asu,float &asd,float &Span,int &Fcuk,CString &csTringFy,CString &csTringFyc,
// float &Asc,float &pmin0,BOOL &bWan,BOOL &bLa,BOOL &bNiu,BOOL &bXjm,BOOL &bEq,int &Kzdj,
// int &Klxl,float &Ro,float &M,float &N,float &V,float &T);
// HINSTANCE hmod;
// hmod = ::LoadLibrary ("SpaBeamDesign.dll");
// if(hmod==NULL)
// {
// AfxMessageBox("Load dll Fail");
// }
// TESTDLL lpproc;
// lpproc = (TESTDLL)GetProcAddress (hmod,"Beam_Moment_WanJu");
// if(lpproc!=(TESTDLL)NULL)
// (*lpproc)(B,H,Bfu,Hfu,Bfd,Hfd,Asu,Asd,Span,kFcuk
// ,csTringFy,csTringFyc,Asa,pmin,bWan,bLa,bNiu,bXjm,bEq,Kzdj,Klxl,
// Ro,M,N,V,T);
//
// FreeLibrary(hmod);
((CMainFrame*)m_pParent)->OutBeamsec();
}
void CFormBeamSecDlg::OnCheckZheng()
{
// TODO: Add your control notification handler code here
CButton* pWnd0=(CButton*)GetDlgItem(IDC_CHECK_ZHENG);
int iCheck=pWnd0->GetCheck();
CWnd* pWnd=GetDlgItem(IDC_M);
pWnd->EnableWindow(iCheck);
}
void CFormBeamSecDlg::OnCheckXie()
{
// TODO: Add your control notification handler code here
CButton* pWnd0=(CButton*)GetDlgItem(IDC_CHECK_XIE);
int iCheck=pWnd0->GetCheck();
CWnd* pWnd=GetDlgItem(IDC_S);
pWnd->EnableWindow(iCheck);
pWnd=GetDlgItem(IDC_ALF);
pWnd->EnableWindow(iCheck);
pWnd=GetDlgItem(IDC_ASB);
pWnd->EnableWindow(iCheck);
pWnd=GetDlgItem(IDC_V);
pWnd->EnableWindow(iCheck);
}
void CFormBeamSecDlg::OnCheckLa()
{
// TODO: Add your control notification handler code here
AfxMessageBox("对不起,待做...");
CButton* pWnd0=(CButton*)GetDlgItem(IDC_CHECK_LA);
pWnd0->SetCheck(0);
/* CButton* pWnd0=(CButton*)GetDlgItem(IDC_CHECK_LA);
int iCheck=pWnd0->GetCheck();
CWnd* pWnd=GetDlgItem(IDC_N);
pWnd->EnableWindow(iCheck);
pWnd=GetDlgItem(IDC_CHECK_DUICHEN);
pWnd->EnableWindow(iCheck);
pWnd=GetDlgItem(IDC_CHECK_JUNYUN);
pWnd->EnableWindow(iCheck);
pWnd=GetDlgItem(IDC_E0);
pWnd->EnableWindow(iCheck);
*/
}
void CFormBeamSecDlg::OnCheckNiu()
{
// TODO: Add your control notification handler code here
AfxMessageBox("对不起,待做...");
CButton* pWnd0=(CButton*)GetDlgItem(IDC_CHECK_NIU);
pWnd0->SetCheck(0);
/*
CButton* pWnd0=(CButton*)GetDlgItem(IDC_CHECK_NIU);
int iCheck=pWnd0->GetCheck();
CWnd* pWnd=GetDlgItem(IDC_T);
pWnd->EnableWindow(iCheck);
*/
}
void CFormBeamSecDlg::OnCheckDi()
{
// TODO: Add your control notification handler code here
CButton* pWnd0=(CButton*)GetDlgItem(IDC_CHECK_DI);
int iCheck=pWnd0->GetCheck();
CWnd* pWnd=GetDlgItem(IDC_COMBO_KZDJ);
pWnd->EnableWindow(iCheck);
}
void CFormBeamSecDlg::OnSelchangeComboJmlx()
{
// TODO: Add your control notification handler code here
CComboBox* pWnd0=(CComboBox*)GetDlgItem(IDC_COMBO_JMLX);
int iCheck=pWnd0->GetCurSel();
CWnd* pWnd;
if(iCheck==0)//矩形
{
pWnd=GetDlgItem(IDC_BFU);
pWnd->EnableWindow(FALSE);
pWnd=GetDlgItem(IDC_BFD);
pWnd->EnableWindow(FALSE);
pWnd=GetDlgItem(IDC_HFU);
pWnd->EnableWindow(FALSE);
pWnd=GetDlgItem(IDC_HFD);
pWnd->EnableWindow(FALSE);
}
else if(iCheck==1)//倒T形
{
pWnd=GetDlgItem(IDC_BFU);
pWnd->EnableWindow(FALSE);
pWnd=GetDlgItem(IDC_BFD);
pWnd->EnableWindow(TRUE);
pWnd=GetDlgItem(IDC_HFU);
pWnd->EnableWindow(FALSE);
pWnd=GetDlgItem(IDC_HFD);
pWnd->EnableWindow(TRUE);
}
else if(iCheck==2|| iCheck==3)//T形,倒L形
{
pWnd=GetDlgItem(IDC_BFU);
pWnd->EnableWindow(TRUE);
pWnd=GetDlgItem(IDC_BFD);
pWnd->EnableWindow(FALSE);
pWnd=GetDlgItem(IDC_HFU);
pWnd->EnableWindow(TRUE);
pWnd=GetDlgItem(IDC_HFD);
pWnd->EnableWindow(FALSE);
}
else if(iCheck==4)//倒T形
{
pWnd=GetDlgItem(IDC_BFU);
pWnd->EnableWindow(TRUE);
pWnd=GetDlgItem(IDC_BFD);
pWnd->EnableWindow(TRUE);
pWnd=GetDlgItem(IDC_HFU);
pWnd->EnableWindow(TRUE);
pWnd=GetDlgItem(IDC_HFD);
pWnd->EnableWindow(TRUE);
}
}
void CFormBeamSecDlg::OnCheckJzhload()
{
// TODO: Add your control notification handler code here
CButton* pWnd0=(CButton*)GetDlgItem(IDC_CHECK_JZHLOAD);
int iCheck=pWnd0->GetCheck();
CWnd* pWnd=GetDlgItem(IDC_LEMD);
pWnd->EnableWindow(iCheck);
}
void CFormBeamSecDlg::OnCheckDuichen()
{
// TODO: Add your control notification handler code here
CButton* pWnd0=(CButton*)GetDlgItem(IDC_CHECK_DUICHEN);
int iCheck=pWnd0->GetCheck();
CWnd* pWnd=GetDlgItem(IDC_CHECK_JUNYUN);
pWnd->EnableWindow(!iCheck);
}
void CFormBeamSecDlg::OnCheckJunyun()
{
// TODO: Add your control notification handler code here
CButton* pWnd0=(CButton*)GetDlgItem(IDC_CHECK_JUNYUN);
int iCheck=pWnd0->GetCheck();
CWnd* pWnd=GetDlgItem(IDC_CHECK_DUICHEN);
pWnd->EnableWindow(!iCheck);
}
BOOL CFormBeamSecDlg::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo)
{
// TODO: Add your specialized code here and/or call the base class
if(nID==1||nID==2) return FALSE;
return CDialog::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -