#include "stdafx.h" #include "FMHDlg.h" #include "uitools.h" IMPLEMENT_DYNAMIC(CFMHDlg, CDialog) CFMHDlg::CFMHDlg(CWnd* pParent /*=NULL*/) : CDialog(CFMHDlg::IDD, pParent) , m_nType(0) , m_dW(1200) , m_dH(2100) , m_sSpec(_T("防火门 FM甲1221")) , m_sProvider(_T("九安防火门集团")) , m_dX(0) , m_bRemove(false) , m_nNo(0) { static int nNo = 1; m_nNo = nNo; nNo++; UIDataCache::Read(_T("%s%s%i%d%d%d") , _T("CFMHDlg") , &m_sSpec , &m_sProvider , &m_nType , &m_dW , &m_dH , &m_dX); } CFMHDlg::~CFMHDlg() { } void CFMHDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Radio(pDX, IDC_RADIO1, m_nType); DDX_Text(pDX, IDC_EDIT1, m_dW); DDX_Text(pDX, IDC_EDIT2, m_dH); DDX_Text(pDX, IDC_EDIT3, m_sSpec); DDX_Text(pDX, IDC_EDIT4, m_sProvider); DDX_Text(pDX, IDC_EDIT10, m_dX); DDX_Text(pDX, IDC_EDIT34, m_nNo); DDV_MinMaxInt(pDX, m_nNo, 1, 99); } BEGIN_MESSAGE_MAP(CFMHDlg, CDialog) ON_BN_CLICKED(IDOK, &CFMHDlg::OnBnClickedOk) ON_BN_CLICKED(IDC_RADIO2, &CFMHDlg::OnBnClickedRadio2) ON_BN_CLICKED(IDC_RADIO1, &CFMHDlg::OnBnClickedRadio1) ON_BN_CLICKED(IDC_RADIO3, &CFMHDlg::OnBnClickedRadio3) ON_BN_CLICKED(IDOK2, &CFMHDlg::OnBnClickedOk2) END_MESSAGE_MAP() BOOL CFMHDlg::OnInitDialog() { CDialog::OnInitDialog(); UpdateData(FALSE); return TRUE; } int CFMHDlg::GetScript(CString& sScrpt, int nRoomIndex,CString& sOffsets) { //FIREDOOR:房间|宽|高|位置|型号|厂家|偏移|编号 sScrpt.Format(_T("") , nRoomIndex , m_dW , m_dH , m_dX , m_sSpec , m_sProvider , sOffsets , m_nNo); return 0; } void CFMHDlg::OnBnClickedOk() { UpdateData(); if (m_dW < 600.0 || m_dH < 1200.0) { AfxMessageBox(_T("防火门的宽度和高度尺寸太小!请检查尺寸!")); return; } UIDataCache::Write(_T("%s%s%i%d%d%d") , _T("CFMHDlg") , &m_sSpec , &m_sProvider , &m_nType , &m_dW , &m_dH , &m_dX); CDialog::OnOK(); } void CFMHDlg::OnBnClickedRadio2() { UpdateData(); FormatSpec(); } void CFMHDlg::OnBnClickedRadio1() { UpdateData(); FormatSpec(); } void CFMHDlg::OnBnClickedRadio3() { UpdateData(); FormatSpec(); } void CFMHDlg::FormatSpec() { // m_sSpec(_T("防火门 FM甲1221") int nW = (int)(m_dW / 100.0 + 0.5); int nH = (int)(m_dH / 100.0 + 0.5); switch (m_nType) { case 0: { m_sSpec.Format(_T("防火门 FM甲%d%d"),nW,nH); break; } case 1: { m_sSpec.Format(_T("防火门 FM乙%d%d"), nW, nH); break; } case 2: { m_sSpec.Format(_T("防火门 FM丙%d%d"), nW, nH); break; } default: break; } UpdateData(FALSE); } void CFMHDlg::OnBnClickedOk2() { m_bRemove = true; OnBnClickedOk(); }