Files
envi-code/SourceCode/Code2026/tg_shs/shs_kernal/TchInitSet1Dlg.cpp
T
2026-09-28 15:28:50 +08:00

690 lines
20 KiB
C++

// TchInitSet1Dlg.cpp : implementation file
//
#include "stdafx.h"
#include "resource.h"
#include "TchInitSet1Dlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CTchInitSet1Dlg dialog
extern TARCH_IMPEXP void SaveGlobalToReg();
extern TARCH_IMPEXP BOOL g_nLineDimArrow; // 0--粗斜线; 1--细斜线; 2--圆点
extern TARCH_IMPEXP BOOL g_nAngleDimArrow; // 0--标准箭头; 1--圆点
extern TARCH_IMPEXP double g_nCurtainWall3Scale;
extern TARCH_IMPEXP int g_nDimNumGripTip;
extern TARCH_IMPEXP int g_nSpeedMenu;
extern TARCH_IMPEXP int g_nRBtnMenuTime;
extern TARCH_IMPEXP int g_nWallBaseColor;
extern TARCH_IMPEXP BOOL g_bABCoord;
extern TARCH_IMPEXP BOOL g_bHideCaption;
extern TARCH_IMPEXP BOOL g_bDblClkEditObj;//add by whl
extern TARCH_IMPEXP BOOL g_bAutoOpenRecent;
extern BOOL IsScreenMenuVisible();
//extern "C" HINSTANCE _hdllInstance;
extern int ShowScreenMenu(BOOL bTrue);
// 2010年3月15日 wubo
// 移植Geo
// extern TARCH_IMPEXP void DocStatus();
extern TARCH_IMPEXP double g_nWalkDistStep;
extern TARCH_IMPEXP double g_nWalkAngleStep;
//extern TARCH_IMPEXP BOOL g_bBlaconyHalf;
extern GEOAPI BOOL g_bExplodeMesh;
static CTchInitSet1Dlg* g_pInitSet1Dlg=NULL;
CTchInitSet1Dlg::CTchInitSet1Dlg(CWnd* pParent /*=NULL*/)
: CAcUiTabChildDialog(pParent)
, m_dText2BaseRatio(0)
//, m_bSaveOldVersion(FALSE)
, m_iDITextStyle(2)
, m_bProWinSlabInsu(TRUE)
, m_strDwgIndexScale(_T(""))
, m_nSpaceAreaPrecision(0)
, m_strAngleSimbolHeight(_T(""))
, m_strLeaderDist(_T(""))
, m_strDoteSize(_T(""))
, m_strCrossSize(_T(""))
, m_nDrawUnitType(0)
, m_nDimUnitType(0)
{
//{{AFX_DATA_INIT(CTchInitSet1Dlg)
m_bAreaUnit = FALSE;
m_bDimAdjust = FALSE;
m_nDimAdjMode = -1;
m_bDimCheck = FALSE;
m_nWallApearance = -1;
m_csElevDiff = _T("");
m_csLHeight = _T("");
m_csMaxDimGrip = _T("");
m_nOsWallBase = -1;
m_csPScale = _T("");
m_nDrawMode = -1;
m_bSpaceArea = FALSE;
m_nCoordMode = -1;
m_bHideCaption=g_bHideCaption;
m_bDblClkEditObj=g_bDblClkEditObj;//add by whl
m_iStairSect=0;
m_bCapLabel=FALSE;
m_nSpaceAreaPrecision = 2;
TDbConfig *pConfig=GetDwgGlobal(AcDb::kForRead);
if (pConfig)
{
if (pConfig->IsSingleSect())
m_iStairSect=1;
m_bCapLabel=pConfig->IsCapLabel();
m_nSpaceAreaPrecision = pConfig->GetSpaceAreaPrecision();
pConfig->close();
}
int nSpCode=DocGetSpaceDispMode();
m_bAreaUnit = (nSpCode&SPF_UNIT)!=0;
m_bSpaceArea = (nSpCode&SPF_AREA)!=0;
m_bDimAdjust = (g_nDimAdjust!=0);
m_nDimAdjMode = g_nDimAdjust-1;
m_bDimCheck = DocGetCheckDim();
m_nWallApearance = DocGetShowBase();
m_csElevDiff = (const TCHAR *)Dist2Str(DocGetElevDiff());
m_csLHeight = (const TCHAR *)Dist2Str(DocGetLHeight());
m_csMaxDimGrip.Format(_T("%d"), g_nDimNumGripTip);
m_nOsWallBase = g_nOsnapType;
//m_csPScale = (const TCHAR *)Dist2Str(DocGetPScale());
m_csPScale.Format(_T("%g"), DocGetPScale());
m_nDrawMode = DocGetDrawMode()-1;
m_nCoordMode = g_bABCoord;
m_nWallBaseColor=g_nWallBaseColor;
m_bLevelLine = DocGetLevelLine();
//if (!DocGetMeterUnitDraw())
//{
// if (DocGetMeterUnitDim())
// m_nUnitType=1;
// else
// m_nUnitType=0;
//}
//else
// m_nUnitType=2;
m_nDimUnitType = DocGetMeterUnitDim() == TRUE ? 1 : 0;
m_nDrawUnitType = DocGetMeterUnitDraw() == TRUE ? 1 : 0;
m_dText2BaseRatio = DocGetText2BaseRatio();
// sg modify 110210,圆圈文字样式,由复选框改为单选按钮
//m_bSaveOldVersion = DocGetOldDrawingIndex();
m_iDITextStyle = DocGetDrawingIndexStyle();
if (m_iDITextStyle == 3)
{
m_iDITextStyle--;
}
// sg add 110210,增加“凸窗档板、门窗套保温设置”
m_bProWinSlabInsu = DocGetProWinSlabInsu();
m_strDwgIndexScale.Format(_T("%.2lg"),DocGetDITextRatio());
m_strAngleSimbolHeight.Format(_T("%.2lg"),DocGetEleTriangleSize());
m_strLeaderDist.Format(_T("%.2lg"),DocGetMultiLeaderDistRatio());
m_strDoteSize.Format(_T("%.2lg"),DocGetEleDoteSize()*2);
m_strCrossSize.Format(_T("%.2lg"),DocGetEleCrossSize());
// sg add 120615,增加“弧长新旧标准”切换设置
m_nArcLenDimType = 1-DocGetArcLenDimType();
// rmoved by lgh 20101104 这个数据不再需要
// m_bBlaconyHalf=g_bBlaconyHalf;
}
void CTchInitSet1Dlg::DoDataExchange(CDataExchange* pDX)
{
CAcUiTabChildDialog::DoDataExchange(pDX);
DDX_CBIndex(pDX,IDC_UNIT,m_nUnitType);//单位换算
DDX_CBIndex(pDX,IDC_DRAWUNIT,m_nDrawUnitType);//单位换算
DDX_CBIndex(pDX,IDC_DIMUNIT,m_nDimUnitType);//单位换算
DDX_Text(pDX, IDC_LHEIGHT, m_csLHeight);//当前层高
DDX_Text(pDX, IDC_PSCALE, m_csPScale);//当前比例
DDX_Radio(pDX, IDC_SHOW2D, m_nDrawMode);//显示模式
DDX_Radio(pDX, IDC_STAIR_DSECT, m_iStairSect);//楼梯
DDX_Check(pDX, IDC_CAP_LABEL, m_bCapLabel);//门窗是否大写
DDX_Text(pDX, IDC_TEXTQUOTIETY, m_dText2BaseRatio);
DDX_Text(pDX, IDC_DWGINDEXTEXTSCALE, m_strDwgIndexScale);
DDX_CBIndex(pDX, IDC_DOT, m_nSpaceAreaPrecision);
DDX_Text(pDX, IDC_ANGLESIMBOLHEIGHT, m_strAngleSimbolHeight);
DDX_Text(pDX, IDC_LEADERDIS, m_strLeaderDist);
DDX_Text(pDX, IDC_DOTSIZE, m_strDoteSize);
DDX_Text(pDX, IDC_CROSSSIZE, m_strCrossSize);
// rmoved by lgh 20101104 这个数据不再需要
// DDX_Check(pDX, IDC_CHECK_BLAHALF, m_bBlaconyHalf);
// sg modify 110210,圆圈文字样式,由复选框改为单选按钮
// DDX_Check(pDX, IDC_CAP_SAVEOLDVER, m_bSaveOldVersion);
DDX_Radio(pDX, IDC_RADIO_CT_NEWSTYLE, m_iDITextStyle);
// sg add 110210,增加“凸窗档板、门窗套保温设置”
DDX_Check(pDX, IDC_CHECK_PROWIN_SLABINSU, m_bProWinSlabInsu);
// sg add 120615,增加“弧长新旧标准”切换设置
DDX_Radio(pDX, IDC_STAIR_ARCLEN_DIMTYPE1, m_nArcLenDimType);
}
BEGIN_MESSAGE_MAP(CTchInitSet1Dlg, CAcUiTabChildDialog)
//{{AFX_MSG_MAP(CTchInitSet1Dlg)
//}}AFX_MSG_MAP
ON_CBN_SELCHANGE(IDC_UNIT, OnCbnSelchangeUnit)
ON_CBN_SELCHANGE(IDC_DRAWUNIT, OnCbnSelchangeDrawUnit)
ON_CBN_SELCHANGE(IDC_DIMUNIT, OnCbnSelchangeDimUnit)
ON_STN_CLICKED(IDC_STATIC31, CTchInitSet1Dlg::OnStnClickedStatic31)
ON_CBN_SELCHANGE(IDC_PSCALE, CTchInitSet1Dlg::OnCbnSelchangePscale)
ON_MESSAGE(TARCH_SETTING_MSG_UPDATA,OnReUpdataDlg)
ON_CBN_SELCHANGE(IDC_LHEIGHT, CTchInitSet1Dlg::OnCbnSelchangePscale)
ON_BN_CLICKED(IDC_SHOW2D, CTchInitSet1Dlg::OnBnClickedShow2d)
ON_BN_CLICKED(IDC_SHOW2D2, CTchInitSet1Dlg::OnBnClickedShow2d)
ON_BN_CLICKED(IDC_SHOW_AUTO, CTchInitSet1Dlg::OnBnClickedShow2d)
ON_BN_CLICKED(IDC_STAIR_DSECT, CTchInitSet1Dlg::OnBnClickedShow2d)
ON_BN_CLICKED(IDC_STAIR_SSECT, CTchInitSet1Dlg::OnBnClickedShow2d)
ON_BN_CLICKED(IDC_CAP_LABEL, CTchInitSet1Dlg::OnBnClickedShow2d)
ON_BN_CLICKED(IDC_DIM_ARCH_THIN, CTchInitSet1Dlg::OnBnClickedShow2d)
ON_BN_CLICKED(IDC_DIM_DOTE, CTchInitSet1Dlg::OnBnClickedShow2d)
ON_BN_CLICKED(IDC_DOTE, CTchInitSet1Dlg::OnBnClickedShow2d)
ON_BN_CLICKED(IDC_CHECK_BLAHALF, CTchInitSet1Dlg::OnBnClickedShow2d)
ON_CBN_SELCHANGE(IDC_DOT, CTchInitSet1Dlg::OnCbnSelchangePscale)
ON_EN_CHANGE(IDC_TEXTQUOTIETY, CTchInitSet1Dlg::OnEnChangeDwgindextextscale)
ON_EN_CHANGE(IDC_DWGINDEXTEXTSCALE, CTchInitSet1Dlg::OnEnChangeDwgindextextscale)
ON_EN_CHANGE(IDC_ANGLESIMBOLHEIGHT, CTchInitSet1Dlg::OnEnChangeDwgindextextscale)
ON_EN_CHANGE(IDC_LEADERDIS, CTchInitSet1Dlg::OnEnChangeDwgindextextscale)
ON_EN_CHANGE(IDC_DOTSIZE, CTchInitSet1Dlg::OnEnChangeDwgindextextscale)
ON_EN_CHANGE(IDC_CROSSSIZE, CTchInitSet1Dlg::OnEnChangeDwgindextextscale)
// sg modify 110210,圆圈文字样式,由复选框改为单选按钮
// ON_BN_CLICKED(IDC_CAP_SAVEOLDVER, CTchInitSet1Dlg::OnBnClickedSaveOldVer)
ON_BN_CLICKED(IDC_RADIO_CT_NEWSTYLE, CTchInitSet1Dlg::OnBnClickedDrawingIndexTextStyle)
ON_BN_CLICKED(IDC_RADIO_CT_OLDSTYLE, CTchInitSet1Dlg::OnBnClickedDrawingIndexTextStyle)
ON_BN_CLICKED(IDC_RADIO_CT_OUTCIRCLE, CTchInitSet1Dlg::OnBnClickedDrawingIndexTextStyle)
// sg add 110210,增加“凸窗档板、门窗套保温设置”
ON_BN_CLICKED(IDC_CHECK_PROWIN_SLABINSU, CTchInitSet1Dlg::OnBnClickedProWinSlabInsu)
// sg add 120615,增加“弧长新旧标准”切换设置
ON_BN_CLICKED(IDC_STAIR_ARCLEN_DIMTYPE1, CTchInitSet1Dlg::OnBnClickedShow2d)
ON_BN_CLICKED(IDC_STAIR_ARCLEN_DIMTYPE1, CTchInitSet1Dlg::OnBnClickedShow2d)
ON_WM_SIZE()
ON_WM_PAINT()
ON_WM_DESTROY()
ON_WM_CTLCOLOR()
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CTchInitSet1Dlg message handlers
void CTchInitSet1Dlg::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
if (nType==SIZE_MINIMIZED)
return;
}
LRESULT CTchInitSet1Dlg::OnReUpdataDlg(WPARAM w,LPARAM l)
{
RetDefault();
return 0;
}
void CTchInitSet1Dlg::UpdateGlobal()
{
UpdateData(TRUE);
BOOL bUpdSpace=FALSE, bUpdWallColu=FALSE, bUpdDim=FALSE, bUpdGlass=FALSE, bUpdTch=FALSE;
int nSpCode=DocGetSpaceDispMode();
if (((nSpCode&SPF_UNIT)!=0)!=m_bAreaUnit ||
((nSpCode&SPF_AREA)!=0)!=m_bSpaceArea)
bUpdSpace=TRUE;
if (m_bAreaUnit) nSpCode|=SPF_UNIT;
else nSpCode &= ~SPF_UNIT;
if (m_bSpaceArea) nSpCode|=SPF_AREA;
else nSpCode &= ~SPF_AREA;
DocSetSpaceDispMode(nSpCode);
//if (m_nUnitType==0)
//{
// DocSetMeterUnitDraw(FALSE);
// DocSetMeterUnitDim(FALSE);
//}
//else if (m_nUnitType==1)
//{
// DocSetMeterUnitDraw(FALSE);
// DocSetMeterUnitDim(TRUE);
//}
//else
//{
// DocSetMeterUnitDraw(TRUE);
// DocSetMeterUnitDim(TRUE);
//}
DocSetMeterUnitDraw(m_nDrawUnitType == 0 ? FALSE : TRUE);
DocSetMeterUnitDim(m_nDimUnitType == 0 ? FALSE : TRUE);
if (m_bDimAdjust)
g_nDimAdjust=m_nDimAdjMode+1;
else
g_nDimAdjust=0;
bUpdDim=(DocGetCheckDim()!=m_bDimCheck);
DocSetCheckDim(m_bDimCheck);
if (m_nWallApearance!=DocGetShowBase() && !bUpdWallColu)
bUpdWallColu=TRUE;
DocSetShowBase(m_nWallApearance);
if (_tstof(m_csElevDiff)>=0.0)
DocSetElevDiff(_tstof(m_csElevDiff));
if (_tstof(m_csLHeight)>_DIST_SNAP)
DocSetLHeight(_tstof(m_csLHeight));
if (_ttoi(m_csMaxDimGrip)>1 && _ttoi(m_csMaxDimGrip)<100)
g_nDimNumGripTip=_ttoi(m_csMaxDimGrip);
DocSetWallOsnapType(m_nOsWallBase);
//if (_tstof(m_csPScale)>0.1)
//{
// DocSetPScale(_tstof(m_csPScale));
// DocStatus();
//}
DocSetPScale(_tstof(m_csPScale));
DocStatus();
if (DocGetDrawMode()!=m_nDrawMode+1)
bUpdTch=FALSE;
DocSetDrawMode(m_nDrawMode+1);
g_bABCoord=m_nCoordMode;
if (g_nWallBaseColor!=m_nWallBaseColor && m_nWallApearance)
bUpdWallColu=TRUE;
g_nWallBaseColor=m_nWallBaseColor;
if (DocGetLevelLine()!=m_bLevelLine)
bUpdWallColu=TRUE;
DocSetLevelLine(m_bLevelLine);
if (g_bHideCaption!=m_bHideCaption)
{
g_bHideCaption=m_bHideCaption;
if (g_bHideCaption)
acedGetAcadFrame()->ModifyStyle(WS_CAPTION,0,SWP_FRAMECHANGED);
else
acedGetAcadFrame()->ModifyStyle(0,WS_CAPTION,SWP_FRAMECHANGED);
}
g_bDblClkEditObj=m_bDblClkEditObj;//add by whl
// rmoved by lgh 20101104 这个数据不再需要
// g_bBlaconyHalf=m_bBlaconyHalf;
TDbConfig *pConfig=GetDwgGlobal(AcDb::kForWrite);
if (pConfig) {
pConfig->SetSingleSect(m_iStairSect==1);
pConfig->SetCapLabel(m_bCapLabel);
pConfig->SetSpaceAreaPrecision(m_nSpaceAreaPrecision);
pConfig->close();
}
DocSetText2BaseRatio(m_dText2BaseRatio);
DocSetDITextRatio(_tstof(m_strDwgIndexScale));
DocSetArcLenDimType(1-m_nArcLenDimType); // sg add 120615,增加“弧长新旧标准”切换设置
// sg modify 110210,圆圈文字样式,由复选框改为单选按钮
// DocSetOldDrawingIndex(m_bSaveOldVersion);
if (m_iDITextStyle == 2)
{
m_iDITextStyle++;
}
DocSetDrawingIndexStyle(m_iDITextStyle);
// sg add 110210,增加“凸窗档板、门窗套保温设置”
DocSetProWinSlabInsu(m_bProWinSlabInsu);
DocSetEleTriangleSize(_tstof(m_strAngleSimbolHeight));
DocSetMultiLeaderDistRatio(_tstof(m_strLeaderDist));
DocSetEleDoteSize(_tstof(m_strDoteSize)/2);
DocSetEleCrossSize(_tstof(m_strCrossSize));
SaveGlobalToReg();
}
void CTchInitSet1Dlg::OnOK()
{
CAcUiTabChildDialog::OnOK();
UpdateGlobal();
}
void CTchInitSet1Dlg::PostNcDestroy()
{
// TODO: Add your specialized code here and/or call the base class
CAcUiTabChildDialog::PostNcDestroy();
delete g_pInitSet1Dlg;
g_pInitSet1Dlg = NULL;
}
BOOL CTchInitSet1Dlg::OnInitDialog()
{
CAcUiTabChildDialog::OnInitDialog();
int nItem=m_BaseColorBox.FindItemByColorIndex(g_nWallBaseColor);
if (nItem<0) {
m_BaseColorBox.AddColorToMRU(m_nWallBaseColor);
nItem=m_BaseColorBox.FindItemByColorIndex(m_nWallBaseColor);
}
if (nItem>=0) m_BaseColorBox.SetCurSel(nItem);
//add by xlc on 090723 旧圆圈文字样式时不显示圆圈字高系数
GetDlgItem(IDC_DWGINDEXTEXTSCALE)->EnableWindow(m_iDITextStyle!=1);
SetDirty();
m_wndToolTip.Create(this);
m_wndToolTip.Activate(true);
m_wndToolTip.SetMaxTipWidth(250);
m_wndToolTip.SetDelayTime(TTDT_AUTOPOP, 4*m_wndToolTip.GetDelayTime(TTDT_AUTOPOP));
//modify by lgy 20120411 上华选项提示变化
//AddTip(IDC_STATIC136, _T("包括坐标、标高、箭头、引出、文字在线上的坐标法标注以及索引符号的线上标注文字"));
AddTip(IDC_STATIC136, _T("包括坐标、标高、引出、文字在线上的做法标注、索引符号的线上标注文字以及剖切符号的剖面图号"));
SetPicture();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CTchInitSet1Dlg::OnMainDialogOK()
{
CAcUiTabChildDialog::OnMainDialogOK();
UpdateGlobal();
}
void CTchInitSet1Dlg::OnCbnSelchangeUnit()
{
int oldType=m_nUnitType;
UpdateData();
/*if (oldType!=m_nUnitType)
{
if (m_nUnitType==2&&m_csPScale==Dist2Str(100))
{
m_csPScale=Dist2Str(1);
UpdateData(FALSE);
}
else if (oldType==2&&m_csPScale==Dist2Str(1))
{
m_csPScale=Dist2Str(100);
UpdateData(FALSE);
}
UpdateData(TRUE);
}*/
//当从2变 1 或者 0的时候,*1000
//当1 或者 0b变2的时候,/1000
if ((oldType == 1 || oldType == 0) && m_nUnitType == 2)
{
double dPscale = _wtof(m_csPScale) / 1000.0;
//m_csPScale = Dist2Str(dPscale);
m_csPScale.Format(_T("%g"), dPscale);
UpdateData(FALSE);
}
else if (oldType == 2 && (m_nUnitType == 1 || m_nUnitType == 0))
{
double dPscale = _wtof(m_csPScale) * 1000.0;
//m_csPScale = Dist2Str(dPscale);
m_csPScale.Format(_T("%g"), dPscale);
UpdateData(FALSE);
}
GetParent()->SendMessage(TARCH_SETTING_MSG_BUTTONSTATION);
}
void CTchInitSet1Dlg::OnCbnSelchangeDrawUnit()
{
int oldType = m_nDrawUnitType;
UpdateData(TRUE);
if (oldType == 0 && m_nDrawUnitType == 1) // mm -> M /1000
{
double dPscale = _wtof(m_csPScale) / 1000.0;
m_csPScale.Format(_T("%g"), dPscale);
UpdateData(FALSE);
}
else if (oldType == 1 && m_nDrawUnitType == 0) // M -> mm *1000
{
double dPscale = _wtof(m_csPScale) * 1000.0;
m_csPScale.Format(_T("%g"), dPscale);
UpdateData(FALSE);
}
GetParent()->SendMessage(TARCH_SETTING_MSG_BUTTONSTATION);
}
void CTchInitSet1Dlg::OnCbnSelchangeDimUnit()
{
UpdateData(TRUE);
}
void CTchInitSet1Dlg::RetDefault()//恢复默认,等同于初始化时的设置
{
m_bAreaUnit = FALSE;
m_bDimAdjust = FALSE;
m_nDimAdjMode = -1;
m_bDimCheck = FALSE;
m_nWallApearance = -1;
m_csElevDiff = _T("");
m_csLHeight = _T("");
m_csMaxDimGrip = _T("");
m_nOsWallBase = -1;
m_csPScale = _T("");
m_nDrawMode = -1;
m_bSpaceArea = FALSE;
m_nCoordMode = -1;
m_bHideCaption=g_bHideCaption;
m_bDblClkEditObj=g_bDblClkEditObj;//add by whl
m_iStairSect=0;
m_bCapLabel=FALSE;
//}}AFX_DATA_INIT
TDbConfig *pConfig=GetDwgGlobal(AcDb::kForRead);
if (pConfig)
{
if (pConfig->IsSingleSect())
m_iStairSect=1;//楼梯
m_bCapLabel=pConfig->IsCapLabel();//门窗编号大写
m_nSpaceAreaPrecision = pConfig->GetSpaceAreaPrecision();
pConfig->close();
}
int nSpCode=DocGetSpaceDispMode();
m_bAreaUnit = (nSpCode&SPF_UNIT)!=0;
m_bSpaceArea = (nSpCode&SPF_AREA)!=0;
m_bDimAdjust = (g_nDimAdjust!=0);
m_nDimAdjMode = g_nDimAdjust-1;
m_bDimCheck = DocGetCheckDim();
m_nWallApearance = DocGetShowBase();
m_csElevDiff = (const TCHAR *)Dist2Str(DocGetElevDiff());
m_csLHeight = (const TCHAR *)Dist2Str(DocGetLHeight());//当前层高
m_csMaxDimGrip.Format(_T("%d"), g_nDimNumGripTip);
m_nOsWallBase = g_nOsnapType;
//m_csPScale = (const TCHAR *)Dist2Str(DocGetPScale());//当前比例
m_csPScale.Format(_T("%g"), DocGetPScale());//当前比例
m_nDrawMode = DocGetDrawMode()-1;//显示模式
m_nCoordMode = g_bABCoord;
m_nWallBaseColor=g_nWallBaseColor;
m_bLevelLine = DocGetLevelLine();
if (!DocGetMeterUnitDraw())//单位换算
{
if (DocGetMeterUnitDim())
m_nUnitType=1;
else
m_nUnitType=0;
}
else
m_nUnitType=2;
m_dText2BaseRatio = DocGetText2BaseRatio();
m_strDwgIndexScale.Format(_T("%.2lg"),DocGetDITextRatio());
// sg modify 110210,圆圈文字样式,由复选框改为单选按钮
//m_bSaveOldVersion = DocGetOldDrawingIndex();
m_iDITextStyle = DocGetDrawingIndexStyle();
if (m_iDITextStyle == 3)
{
m_iDITextStyle--;
}
this->GetDlgItem(IDC_DWGINDEXTEXTSCALE)->EnableWindow(m_iDITextStyle!=1);
// sg add 110210,增加“凸窗档板、门窗套保温设置”
m_bProWinSlabInsu = DocGetProWinSlabInsu();
m_strAngleSimbolHeight.Format(_T("%.2lg"),DocGetEleTriangleSize());
m_strLeaderDist.Format(_T("%.2lg"),DocGetMultiLeaderDistRatio());
m_strDoteSize.Format(_T("%.2lg"),DocGetEleDoteSize()*2);
m_strCrossSize.Format(_T("%.2lg"),DocGetEleCrossSize());
m_nArcLenDimType = 1-DocGetArcLenDimType(); // sg add 120615,增加“弧长新旧标准”切换设置
// removed by lgh. 20101104。这个数据不再需要
// m_bBlaconyHalf=g_bBlaconyHalf;
UpdateData(FALSE);
}
void CTchInitSet1Dlg::OnStnClickedStatic31()
{
GetParent()->SendMessage(TARCH_SETTING_MSG_BUTTONSTATION);
}
void CTchInitSet1Dlg::OnCbnSelchangePscale()
{
GetParent()->SendMessage(TARCH_SETTING_MSG_BUTTONSTATION);
}
// sg modify 110210,圆圈文字样式,由复选框改为单选按钮
/*
void CTchInitSet1Dlg::OnBnClickedSaveOldVer()
{
m_bSaveOldVersion=!m_bSaveOldVersion;
this->GetDlgItem(IDC_DWGINDEXTEXTSCALE)->EnableWindow(!m_bSaveOldVersion);
GetParent()->SendMessage(TARCH_SETTING_MSG_BUTTONSTATION);
}
*/
void CTchInitSet1Dlg::OnBnClickedDrawingIndexTextStyle()
{
UpdateData(TRUE);
GetDlgItem(IDC_DWGINDEXTEXTSCALE)->EnableWindow(m_iDITextStyle!=1);
SetPicture();
GetParent()->SendMessage(TARCH_SETTING_MSG_BUTTONSTATION);
}
// sg add 110210,增加“凸窗档板、门窗套保温设置”
void CTchInitSet1Dlg::OnBnClickedProWinSlabInsu()
{
m_bProWinSlabInsu = !m_bProWinSlabInsu;
GetParent()->SendMessage(TARCH_SETTING_MSG_BUTTONSTATION);
}
void CTchInitSet1Dlg::OnBnClickedShow2d()
{
GetParent()->SendMessage(TARCH_SETTING_MSG_BUTTONSTATION);
}
void CTchInitSet1Dlg::OnEnChangeDwgindextextscale()
{
GetParent()->SendMessage(TARCH_SETTING_MSG_BUTTONSTATION);
}
// 设置幻灯片显示
void CTchInitSet1Dlg::SetPicture()
{
XString sFilePath(256);
if (m_iDITextStyle == 0)
{
sFilePath << _T("TArch(INDEXMK02)");
}
else if (m_iDITextStyle == 1)
{
sFilePath << _T("TArch(INDEXMK01)");
}
else
{
sFilePath << _T("TArch(INDEXMK03)");
}
// 获得图片控件
CWnd* pWndBmp = GetDlgItem(IDC_STATIC_IMAGE);
// 获得图片区域
CDC *pDC = pWndBmp->GetDC();
CRect rect;
pWndBmp->GetClientRect(rect);
m_imgPreview.InitDC(pDC, rect, GetAcadBackColor());
m_imgPreview.PaintSlide(sFilePath);
m_imgPreview.SetDC(NULL);
pWndBmp->ReleaseDC(pDC);
}
// 窗口重绘消息
void CTchInitSet1Dlg::OnPaint()
{
CPaintDC dc(this);
CRect rcClip, rcImage;
dc.GetClipBox(&rcClip);
CWnd *pImageBox = GetDlgItem(IDC_STATIC_IMAGE);
if (pImageBox)
{
pImageBox->GetWindowRect(&rcImage);
ScreenToClient(&rcImage);
if (rcImage.IntersectRect(&rcImage, &rcClip))
{
CDC *pDC = pImageBox->GetDC();
m_imgPreview.SetDC(pDC);
m_imgPreview.Redraw();
m_imgPreview.SetDC(NULL);
pImageBox->ReleaseDC(pDC);
}
}
}
void CTchInitSet1Dlg::OnDestroy()
{
m_wndToolTip.DestroyWindow();
CAcUiTabChildDialog::OnDestroy();
}
BOOL CTchInitSet1Dlg::PreTranslateMessage(MSG* pMsg)
{
CToolInfo toolInfo;
if (pMsg->message >= WM_MOUSEFIRST &&
pMsg->message <= WM_MOUSELAST&&m_wndToolTip.GetToolInfo(toolInfo,FromHandle(pMsg->hwnd)))
{
MSG msg;
memcpy(&msg, pMsg, sizeof(MSG));
m_wndToolTip.RelayEvent(&msg);
}
return CAcUiTabChildDialog::PreTranslateMessage(pMsg);
}
BOOL CTchInitSet1Dlg::AddTip(UINT idControl,const TCHAR *str)
{
CWnd *pWnd = GetDlgItem(idControl);
if (!pWnd)
return FALSE;
if (str==NULL)
{
HINSTANCE hInstance=AfxGetInstanceHandle();
int nRet;
CString strTip;
if (!hInstance)
nRet=strTip.LoadString(idControl);
else
{
TCHAR szTemp[1024]=_T("");
nRet=::LoadString(hInstance, idControl, szTemp, 1024);
if (nRet)
strTip=szTemp;
}
if (nRet)
return m_wndToolTip.AddTool(pWnd,strTip)!=0;
}
return m_wndToolTip.AddTool(pWnd,str)!=0;
}
HBRUSH CTchInitSet1Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CAcUiTabChildDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if (pWnd->IsWindowEnabled())
{
CToolInfo toolInfo;
if (m_wndToolTip.GetToolInfo(toolInfo, pWnd))
pDC->SetTextColor(RGB(0,0,255));
}
return hbr;
}