#include "stdafx.h" #include "LMQTDlg.h" #include "EarThwormDef.h" IMPLEMENT_DYNAMIC(CLMQTDlg, CDialog) DLLIMPEXP CString IDCreate(); extern int g_nWallNo; CLMQTDlg::CLMQTDlg(CWnd *pParent /*=NULL*/) : CDialog(CLMQTDlg::IDD, pParent) , m_dThick(400.0) , m_dH(3000.0) , m_dBomEl(0.0) , m_sMaterial(_T("钢筋混凝土")) , m_nAlign(0) , m_sNo(_T("")) , m_bNOSetDefault(TRUE) , m_sHatch(HATCH_DEFAULT) , m_bAddHatch(TRUE) { m_bPMLQ = FALSE; g_nWallNo++; m_sNo.Format(_T("W-%d"),g_nWallNo); if (m_bNOSetDefault) m_sNo = IDCreate(); GET_CACHE(CLMQTDlg , %f%f%f%s%s%d%d%s , &m_dThick , &m_dH , &m_dBomEl , &m_sMaterial , &m_sNo , &m_nAlign , &m_bPMLQ ,&m_sHatch); } CLMQTDlg::~CLMQTDlg() { } void CLMQTDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Text(pDX, IDC_EDIT1, m_dThick); DDX_Text(pDX, IDC_EDIT12, m_dH); DDX_Text(pDX, IDC_EDIT2, m_dBomEl); DDX_Text(pDX, IDC_EDIT3, m_sMaterial); DDX_Radio(pDX, IDC_RADIO1, m_nAlign); DDX_Text(pDX, IDC_EDIT6, m_sNo); DDX_Check(pDX, IDC_CHECK6, m_bNOSetDefault); DDX_Control(pDX, IDC_BTN_FILL, m_wndBtHatch); DDX_Check(pDX, IDC_CHECK_HATCH, m_bAddHatch); DDX_Text(pDX, IDC_BTN_FILL, m_sHatch); } BEGIN_MESSAGE_MAP(CLMQTDlg, CDialog) ON_BN_CLICKED(IDOK, &CLMQTDlg::OnBnClickedOk) ON_BN_CLICKED(IDC_CHECK6, &CLMQTDlg::OnBnClickedCheck6) ON_BN_CLICKED(IDC_BTN_FILL, &CLMQTDlg::OnBnClickedBtnFill) ON_BN_CLICKED(IDC_CHECK_HATCH, &CLMQTDlg::OnBnClickedCheckHatch) END_MESSAGE_MAP() BOOL CLMQTDlg::OnInitDialog() { CDialog::OnInitDialog(); if (m_bPMLQ) { SetWindowText(_T("平面拉墙")); GetDlgItem(IDC_EDIT1)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT12)->EnableWindow(TRUE); ((CEdit*)GetDlgItem(IDC_EDIT12))->SetReadOnly(FALSE); GetDlgItem(IDC_EDIT2)->EnableWindow(TRUE); ((CEdit *)GetDlgItem(IDC_EDIT2))->SetReadOnly(FALSE); } else { SetWindowText(_T("立面拉墙")); } if (m_bNOSetDefault) GetDlgItem(IDC_EDIT6)->EnableWindow(FALSE); m_wndBtHatch.EnableWindow(m_bAddHatch); UpdateData(FALSE); return TRUE; } void CLMQTDlg::OnBnClickedOk() { UpdateData(TRUE); SET_CACHE(CLMQTDlg , %f%f%f%s%s%d%d%s , m_dThick , m_dH , m_dBomEl , m_sMaterial , m_sNo , m_nAlign , m_bPMLQ , m_sHatch); OnOK(); } void CLMQTDlg::OnBnClickedCheck6() { UpdateData(); if (m_bNOSetDefault) { GetDlgItem(IDC_EDIT6)->EnableWindow(FALSE); } else { GetDlgItem(IDC_EDIT6)->EnableWindow(TRUE); } } extern bool __cdecl acedHatchPalletteDialog(wchar_t const* , bool , wchar_t *&); void CLMQTDlg::OnBnClickedBtnFill() { UpdateData(); TCHAR *psz = new TCHAR[1024]; ::memset(psz, 0, sizeof(TCHAR) * 1024); CString sHatch(m_sMaterial); if (!m_sHatch.IsEmpty()) sHatch = m_sHatch; if (acedHatchPalletteDialog(sHatch, false, psz)) { m_sHatch = psz; m_wndBtHatch.SetWindowText(m_sHatch); } delete[] psz; } void CLMQTDlg::OnBnClickedCheckHatch() { UpdateData(); m_wndBtHatch.EnableWindow(m_bAddHatch); if (!m_bAddHatch) m_sHatch = HATCH_NO_NEED; else m_sHatch = HATCH_DEFAULT; UpdateData(FALSE); }