Files
envi-code/SourceCode/Code2026/PipelineCmd/GXLJDlg.cpp
T
2026-09-28 15:28:50 +08:00

195 lines
3.9 KiB
C++

#include "stdafx.h"
#include "earthwormdef.h"
#include "GXLJDlg.h"
IMPLEMENT_DYNAMIC(CGXLJDlg, CDialog)
CGXLJDlg::CGXLJDlg(CWnd* pParent /*=NULL*/)
: CDialog(CGXLJDlg::IDD, pParent)
, m_nType(0)
, m_nWeldType(1)
, m_nOffsetDir(0)
, m_dOffset(1.5)
, m_dZSWeepAngle(135)
, m_dTopSpace(1.0)
{
m_dRRato = 2.0;
}
CGXLJDlg::~CGXLJDlg()
{
}
void CGXLJDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Radio(pDX, IDC_RADIO1, m_nType);
DDX_Radio(pDX, IDC_RADIOT1, m_nWeldType);
DDX_Radio(pDX, IDC_RADIO6, m_nOffsetDir);
DDX_Text(pDX, IDC_EDIT1, m_dOffset);
DDX_Text(pDX, IDC_EDIT3, m_dZSWeepAngle);
DDX_Text(pDX, IDC_EDIT4, m_dTopSpace);
DDX_Control(pDX, IDC_LIST1, m_wndListBox);
}
BEGIN_MESSAGE_MAP(CGXLJDlg, CDialog)
ON_BN_CLICKED(IDOK, &CGXLJDlg::OnBnClickedOk)
ON_WM_CTLCOLOR()
ON_BN_CLICKED(IDC_RADIO1, &CGXLJDlg::OnBnClickedRadio1)
ON_BN_CLICKED(IDC_RADIO2, &CGXLJDlg::OnBnClickedRadio2)
ON_BN_CLICKED(IDC_RADIO3, &CGXLJDlg::OnBnClickedRadio3)
ON_BN_CLICKED(IDC_RADIO4, &CGXLJDlg::OnBnClickedRadio4)
END_MESSAGE_MAP()
BOOL CGXLJDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_bmpCmd[0].LoadBitmap(IDB_BITMAP12);
((CButton*)GetDlgItem(IDC_RADIO1))->SetBitmap((HBITMAP)m_bmpCmd[0]);
m_bmpCmd[1].LoadBitmap(IDB_BITMAP11);
((CButton*)GetDlgItem(IDC_RADIO2))->SetBitmap((HBITMAP)m_bmpCmd[1]);
m_bmpCmd[2].LoadBitmap(IDB_BITMAP13);
((CButton*)GetDlgItem(IDC_RADIO3))->SetBitmap((HBITMAP)m_bmpCmd[2]);
m_bmpCmd[3].LoadBitmap(IDB_BITMAP14);
((CButton*)GetDlgItem(IDC_RADIO4))->SetBitmap((HBITMAP)m_bmpCmd[3]);
CString path = FilePath::GetSysDir() + Plumbing_DB;
if (!m_dbSQLite.InitADOServer(path))
{
AfxMessageBox(CString(_T("数据库初始化失败,请检查 sys")) + Plumbing_DB + _T("文件是否存在."));
return FALSE;
}
InitElbowCrt();
UpdateData(FALSE);
return TRUE;
}
void CGXLJDlg::InitElbowCrt()
{
CString sSQL;
sSQL = _T("select [曲率半径] from AecElbowradius order by [曲率半径]");
bool bSet = false;
CStringArray arVals;
m_dbSQLite.GetSelData(sSQL,arVals);
for (int i = 0;i < arVals.GetSize();i++)
{
m_wndListBox.AddString(arVals.GetAt(i));
if ( fabs( m_dRRato - _ttof(arVals.GetAt(i) ) ) < 1.e-2)
{
m_wndListBox.SetCurSel(i);
bSet = true;
}
}
if (!bSet)
m_wndListBox.SetCurSel(0);
}
void CGXLJDlg::OnBnClickedOk()
{
UpdateData();
if (m_dZSWeepAngle - 90.0 < 1.e-2)
{
AfxMessageBox(_T("中间斜弯弯头角度必须大于90度!"));
return;
}
if (m_dOffset < 0.1 || m_dTopSpace < 0.1)
{
AfxMessageBox(_T("偏移距离太小! 请重新输入偏移距离!"));
return;
}
int nCurSel = m_wndListBox.GetCurSel();
if (nCurSel < 0)
{
AfxMessageBox(_T("没有选择弯头曲率半径,请选择曲率半径!"));
return;
}
CString sRato;
m_wndListBox.GetText(nCurSel,sRato);
m_dRRato = _ttof(sRato);
OnOK();
}
HBRUSH CGXLJDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if (nCtlColor == CTLCOLOR_STATIC)
{
if (pWnd != NULL && pWnd->GetDlgCtrlID() == IDC_STATIC_1)
{
if (m_nType == 0)
{
COLORREF crColor = RGB(255, 0, 0);
pDC->SetTextColor(crColor);
}
}
if (pWnd != NULL && pWnd->GetDlgCtrlID() == IDC_STATIC_2)
{
if (m_nType == 1)
{
COLORREF crColor = RGB(255, 0, 0);
pDC->SetTextColor(crColor);
}
}
if (pWnd != NULL && pWnd->GetDlgCtrlID() == IDC_STATIC_3)
{
if (m_nType == 2)
{
COLORREF crColor = RGB(255, 0, 0);
pDC->SetTextColor(crColor);
}
}
if (pWnd != NULL && pWnd->GetDlgCtrlID() == IDC_STATIC_4)
{
if (m_nType == 3)
{
COLORREF crColor = RGB(255, 0, 0);
pDC->SetTextColor(crColor);
}
}
}
return hbr;
}
void CGXLJDlg::OnBnClickedRadio1()
{
UpdateData();
RedrawWindow();
}
void CGXLJDlg::OnBnClickedRadio2()
{
UpdateData();
RedrawWindow();
}
void CGXLJDlg::OnBnClickedRadio3()
{
UpdateData();
RedrawWindow();
}
void CGXLJDlg::OnBnClickedRadio4()
{
UpdateData();
RedrawWindow();
}