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

📄 formbeamsecdlg.cpp

📁 采用Vc++开发
💻 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 + -