// SheetTitlePage.cpp : implementation file // #include "stdafx.h" #include "resource.h" #include "SheetTitlePage.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif extern const TCHAR *g_szLineWidths[]; extern int g_nLineWidthNum; //extern XString GetSymbolName(AcDbObjectId idSymbolRec); ///////////////////////////////////////////////////////////////////////////// // CSheetTitlePage dialog IMPLEMENT_DYNAMIC(CSheetTitlePage, CGridStylePage) CSheetTitlePage::CSheetTitlePage() : CGridStylePage(CSheetTitlePage::IDD) { //{{AFX_DATA_INIT(CSheetTitlePage) m_bNoDivider = FALSE; m_divLineWidth = _T(""); m_csTitleHeight = _T(""); m_bTitleInVisible = FALSE; m_csText = _T(""); m_nLTItem=-1; //}}AFX_DATA_INIT m_nLineColor=0; for(int i=0; iGetTitle(); const TGridStyle &gridStyle=title.GetGridStyle(); CGridStylePage::Obj2Dlg(gridStyle); const TDividerStyle &style=title.GetDividerStyle(); // 是否包含边框 m_bNoDivider=(style.GetDividerFlag()==TDividerStyle::kNone); // 线宽 m_divLineWidth.Format(_T("%.2f"), style.GetLineWidth()); for(int i=0; iGetTitle(); pSheet->assertWriteEnabled(); TGridStyle &gridStyle=title.GetGridStyle(); gridStyle.SetOverrideAll(TRUE); CGridStylePage::Dlg2Obj(gridStyle); TDividerStyle &style=title.GetDividerStyle(); if(m_bNoDivider) style.SetDividerFlag(TDividerStyle::kNone); else style.SetDividerFlag(TDividerStyle::kLocal); if(_tstof(m_divLineWidth)>-1.0E-3) style.SetLineWidth(_tstof(m_divLineWidth)); style.SetColor(m_nLineColor); // LINETYPE if(m_nLTItem>=0) { style.SetLineTypeId(GetLinetypeIdFromString(m_lstLinetypes[m_nLTItem])); } // 标题可见性 title.SetVisible(!m_bTitleInVisible); title.SetText(m_csText); if(_tstof(m_csTitleHeight)>1.0E-3) title.SetHeight(_tstof(m_csTitleHeight)); } void CSheetTitlePage::DoDataExchange(CDataExchange* pDX) { CGridStylePage::DoDataExchange(pDX); //{{AFX_DATA_MAP(CSheetTitlePage) DDX_Control(pDX, IDC_DIVIDER_LINEWIDTH, m_lineWidthBox); DDX_Control(pDX, IDC_DIVIDER_LINETYPE, m_divLinetypeBox); DDX_Control(pDX, IDC_DIVIDER_COLOR, m_divColorBox); DDX_Check(pDX, IDC_NODIVIDER, m_bNoDivider); DDX_CBString(pDX, IDC_DIVIDER_LINEWIDTH, m_divLineWidth); DDX_Text(pDX, IDC_TITLE_HEIGHT, m_csTitleHeight); DDX_Check(pDX, IDC_TITLE_INVISIBLE, m_bTitleInVisible); DDX_Text(pDX, IDC_TEXT, m_csText); DDX_CBIndex(pDX, IDC_DIVIDER_LINETYPE, m_nLTItem); //}}AFX_DATA_MAP if(pDX->m_bSaveAndValidate) { // Check value // ... int nIndex=m_divColorBox.GetCurrentItemColorIndex(); if(nIndex>=0) m_nLineColor=nIndex; if(_tstof(m_csTitleHeight)<1.0E-3 || _tstof(m_divLineWidth)<-1.0E-3) pDX->Fail(); } } BEGIN_MESSAGE_MAP(CSheetTitlePage, CGridStylePage) //{{AFX_MSG_MAP(CSheetTitlePage) ON_WM_CLOSE() //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CSheetTitlePage message handlers BOOL CSheetTitlePage::OnInitDialog() { CGridStylePage::OnInitDialog(); // TODO: Add extra initialization here int nItem=m_divColorBox.FindItemByColorIndex(m_nLineColor); if(nItem<0) { m_divColorBox.AddColorToMRU(m_nLineColor); nItem=m_divColorBox.FindItemByColorIndex(m_nLineColor); } if(nItem>=0) m_divColorBox.SetCurSel(nItem); InitComBox(m_lineWidthBox, m_lstLineWidths); InitComBox(m_divLinetypeBox, m_lstLinetypes); UpdateData(FALSE); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CSheetTitlePage::OnClose() { CGridStylePage::OnClose(); }