497 lines
16 KiB
C++
497 lines
16 KiB
C++
#include "stdafx.h"
|
|
#include "CroodGridSetDlg.h"
|
|
#include "GlwGlobalVariable.h"
|
|
#include "CoordGrid.h"
|
|
#include "resource.h"
|
|
|
|
namespace
|
|
{
|
|
#if ADS <= 18
|
|
double _ttof(LPCTSTR psz)
|
|
{
|
|
if (!psz) return .0;
|
|
USES_CONVERSION;
|
|
return atof(W2A(psz));
|
|
}
|
|
#endif
|
|
|
|
}
|
|
|
|
int CcoordGridSetDlg::s_nMode = 0;
|
|
IMPLEMENT_DYNAMIC(CcoordGridSetDlg, CModelessDialog)
|
|
|
|
CcoordGridSetDlg::CcoordGridSetDlg(CWnd* pParent /*=NULL*/)
|
|
: CModelessDialog(CcoordGridSetDlg::IDD, pParent)
|
|
, m_bCheckEquationForm(FALSE)
|
|
, m_strTextStyle(_T(""))
|
|
, m_strTextHeight(_T(""))
|
|
{
|
|
}
|
|
|
|
CcoordGridSetDlg::~CcoordGridSetDlg()
|
|
{
|
|
}
|
|
|
|
void CcoordGridSetDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CModelessDialog::DoDataExchange(pDX);
|
|
DDX_Check(pDX, IDC_CHECK_EQUATION_FORM, m_bCheckEquationForm);
|
|
DDX_Control(pDX, IDC_COMBO_TEXT_STYLE, m_wndCmbTextStyle);
|
|
if (!pDX->m_bSaveAndValidate)
|
|
{
|
|
m_toolbar.CheckButton(IDC_BTN_POLYLINE, s_nMode==0);
|
|
m_toolbar.CheckButton(IDC_BTN_DIAGONAL_PT, s_nMode==1);
|
|
}
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CcoordGridSetDlg, CModelessDialog)
|
|
ON_BN_CLICKED(IDC_BTN_POLYLINE, &CcoordGridSetDlg::OnBnClickedBtnPolyline)
|
|
ON_BN_CLICKED(IDC_BTN_DIAGONAL_PT, &CcoordGridSetDlg::OnBnClickedBtnDiagonalPt)
|
|
ON_BN_CLICKED(IDC_BTN_TEXT_HEIGHT, &CcoordGridSetDlg::OnBnClickedBtnTextHeight)
|
|
ON_BN_CLICKED(IDC_CHECK_EQUATION_FORM, &CcoordGridSetDlg::OnBnClickedCheckEquationForm)
|
|
ON_BN_CLICKED(IDC_RADIO_CROSS_GRID, &CcoordGridSetDlg::OnBnClickedRadioCrossGrid)
|
|
ON_BN_CLICKED(IDC_RADIO_LINE_GRID, &CcoordGridSetDlg::OnBnClickedRadioLineGrid)
|
|
ON_CBN_SELCHANGE(IDC_COMBO_TEXT_HEIGHT, &CcoordGridSetDlg::OnCbnSelchangeComboTextHeight)
|
|
ON_CBN_EDITCHANGE(IDC_COMBO_TEXT_HEIGHT, &CcoordGridSetDlg::OnEditchangeComboTextHeight)
|
|
ON_CBN_SELCHANGE(IDC_COMBO_GRID_SPACING, &CcoordGridSetDlg::OnCbnSelchangeComboGridSpacing)
|
|
ON_CBN_SELCHANGE(IDC_COMBO_TEXT_STYLE, &CcoordGridSetDlg::OnCbnSelchangeComboTextStyle)
|
|
ON_WM_CLOSE()
|
|
ON_CBN_EDITCHANGE(IDC_COMBO_GRID_SPACING, &CcoordGridSetDlg::OnCbnEditchangeComboGridSpacing)
|
|
ON_CBN_KILLFOCUS(IDC_COMBO_GRID_SPACING, &CcoordGridSetDlg::OnCbnKillfocusComboGridSpacing)
|
|
ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTW, 0, 0xFFFF, OnToolTipText)
|
|
ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTA, 0, 0xFFFF, OnToolTipText)
|
|
|
|
ON_WM_CTLCOLOR()
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
BOOL CcoordGridSetDlg::LoadTextStyle()
|
|
{
|
|
XSymbolList lstStyle(_T("STYLE"));//控件初始化
|
|
m_wndCmbTextStyle.ResetContent();
|
|
for (int m = 0; m < lstStyle.Length(); m++)
|
|
{
|
|
CString strTemp = lstStyle[m];
|
|
m_wndCmbTextStyle.AddString(lstStyle[m]);
|
|
}
|
|
|
|
int nRet = m_wndCmbTextStyle.FindStringExact(0, m_strTextStyle);
|
|
if (nRet < 0) //当前图纸没有此文字样式
|
|
{
|
|
if(!GET_GLOBAL_VARIABLE(CCoordGridDataManage))
|
|
SET_GLOBAL_VARIABLE(CCoordGridDataManage, new CCoordGridDataManage);
|
|
CCoordGridDataManage *pDataManage = GET_GLOBAL_VARIABLE(CCoordGridDataManage);
|
|
pDataManage->SetDefalutTextStyleAndTextHight();
|
|
nRet = m_wndCmbTextStyle.FindStringExact(0, m_strTextStyle);
|
|
if (nRet < 0)
|
|
nRet = 0;
|
|
}
|
|
m_wndCmbTextStyle.SetCurSel(nRet);
|
|
return TRUE;
|
|
}
|
|
|
|
void CcoordGridSetDlg::LoadTextHeightSize(int iID)
|
|
{
|
|
((CComboBox*)GetDlgItem(iID))->InsertString(0, _T("1.0")); //0
|
|
((CComboBox*)GetDlgItem(iID))->InsertString(1, _T("1.5")); //1
|
|
((CComboBox*)GetDlgItem(iID))->InsertString(2, _T("2.0")); //2
|
|
((CComboBox*)GetDlgItem(iID))->InsertString(3, _T("2.5")); //3
|
|
((CComboBox*)GetDlgItem(iID))->InsertString(4, _T("3.0")); //4
|
|
((CComboBox*)GetDlgItem(iID))->InsertString(5, _T("3.5")); //5
|
|
((CComboBox*)GetDlgItem(iID))->InsertString(6, _T("5.0")); //6
|
|
((CComboBox*)GetDlgItem(iID))->InsertString(7, _T("7.0")); //7
|
|
((CComboBox*)GetDlgItem(iID))->InsertString(8, _T("10.0")); //8
|
|
((CComboBox*)GetDlgItem(iID))->InsertString(9, _T("14.0")); //9
|
|
((CComboBox*)GetDlgItem(iID))->InsertString(10, _T("20.0")); //10
|
|
}
|
|
|
|
void CcoordGridSetDlg::LoadGridSpacingSize(int iID)
|
|
{
|
|
((CComboBox*)GetDlgItem(iID))->InsertString(0, _T("20")); //0
|
|
((CComboBox*)GetDlgItem(iID))->InsertString(1, _T("25")); //1
|
|
((CComboBox*)GetDlgItem(iID))->InsertString(2, _T("50")); //2
|
|
((CComboBox*)GetDlgItem(iID))->InsertString(3, _T("100")); //3
|
|
((CComboBox*)GetDlgItem(iID))->InsertString(4, _T("200")); //4
|
|
}
|
|
|
|
BOOL CcoordGridSetDlg::OnInitDialog()
|
|
{
|
|
//文字样式
|
|
CModelessDialog::OnInitDialog();
|
|
|
|
CAcModuleResourceOverride vTmp;
|
|
m_toolbar.Create( WS_VISIBLE | WS_CHILD |CCS_BOTTOM| TBSTYLE_TOOLTIPS
|
|
| CCS_ADJUSTABLE ,CRect(0,0,0,0), this, IDB_BTM_BTNS);
|
|
|
|
TBBUTTON *pIndex,
|
|
*pRTF_Button = new TBBUTTON[2];
|
|
pIndex = pRTF_Button;
|
|
memset(&pRTF_Button[0] ,NULL, sizeof(TBBUTTON));
|
|
pRTF_Button[0].iBitmap = 0;
|
|
pRTF_Button[0].idCommand = IDC_BTN_POLYLINE;
|
|
pRTF_Button[0].fsStyle = TBSTYLE_CHECKGROUP;
|
|
pRTF_Button[0].fsState = TBSTATE_ENABLED;
|
|
|
|
memset(&pRTF_Button[1] ,NULL, sizeof(TBBUTTON));
|
|
pRTF_Button[1].iBitmap = 1;
|
|
pRTF_Button[1].idCommand = IDC_BTN_DIAGONAL_PT;
|
|
pRTF_Button[1].fsStyle = TBSTYLE_CHECKGROUP;
|
|
pRTF_Button[1].fsState = TBSTATE_ENABLED;
|
|
|
|
CSize size(16, 15);
|
|
m_toolbar.SetButtonSize(size);
|
|
m_toolbar.AddButtons(2, pRTF_Button);
|
|
delete[] pRTF_Button;
|
|
m_toolbar.AddBitmap(2, IDB_BTM_BTNS);
|
|
m_toolbar.AutoSize();
|
|
|
|
if(!GET_GLOBAL_VARIABLE(CCoordGridDataManage))
|
|
SET_GLOBAL_VARIABLE(CCoordGridDataManage, new CCoordGridDataManage);
|
|
CCoordGridDataManage *pDataManage = GET_GLOBAL_VARIABLE(CCoordGridDataManage);
|
|
m_strTextStyle = pDataManage->GetTextStyle();
|
|
|
|
LoadTextStyle();//设置文字样式下拉框
|
|
LoadTextHeightSize(IDC_COMBO_TEXT_HEIGHT);
|
|
LoadGridSpacingSize(IDC_COMBO_GRID_SPACING);
|
|
|
|
if (kCrossGrid == pDataManage->GetGirdType())
|
|
{
|
|
OnBnClickedRadioCrossGrid();
|
|
}
|
|
else
|
|
{
|
|
OnBnClickedRadioLineGrid();
|
|
}
|
|
|
|
//等式形式
|
|
m_bCheckEquationForm = pDataManage->GetEquationForm();
|
|
|
|
//网格间距
|
|
int iGridSpacing = 0;
|
|
if (DocGetMeterUnitDraw())
|
|
iGridSpacing = pDataManage->GetGridSpacing();
|
|
else
|
|
iGridSpacing = pDataManage->GetGridSpacing() / 1000;
|
|
|
|
CString strGridSpading(_T(""));
|
|
strGridSpading.Format(_T("%d"), iGridSpacing);
|
|
m_strGridSpacing = strGridSpading;
|
|
int nRet = ((CComboBox*)GetDlgItem(IDC_COMBO_GRID_SPACING))->FindStringExact(0, strGridSpading);
|
|
if (nRet < 0) // 当前图纸没有此网格间距
|
|
{
|
|
((CComboBox*)GetDlgItem(IDC_COMBO_GRID_SPACING))->InsertString(0, strGridSpading);
|
|
((CComboBox*)GetDlgItem(IDC_COMBO_GRID_SPACING))->SetCurSel(0);
|
|
UpdateData(FALSE);
|
|
}
|
|
else
|
|
((CComboBox*)GetDlgItem(IDC_COMBO_GRID_SPACING))->SetCurSel(nRet);
|
|
|
|
//字高
|
|
m_strTextHeight.Format(_T("%0.1f"), pDataManage->GetTextHeight());
|
|
nRet = ((CComboBox*)GetDlgItem(IDC_COMBO_TEXT_HEIGHT))->FindStringExact(0, m_strTextHeight);
|
|
if (nRet < 0) // 当前图纸没有此文字高度
|
|
{
|
|
((CComboBox*)GetDlgItem(IDC_COMBO_TEXT_HEIGHT))->InsertString(0, m_strTextHeight);
|
|
((CComboBox*)GetDlgItem(IDC_COMBO_TEXT_HEIGHT))->SetCurSel(0);
|
|
UpdateData(FALSE);
|
|
}
|
|
else
|
|
((CComboBox*)GetDlgItem(IDC_COMBO_TEXT_HEIGHT))->SetCurSel(nRet);
|
|
|
|
//绘制模式,等待
|
|
if (kSelectPolyLine == pDataManage->GetDrawType())
|
|
s_nMode = 0;
|
|
else
|
|
s_nMode = 1;
|
|
|
|
EnableToolTips(TRUE);
|
|
m_wndToolTip.Create(this, TTS_ALWAYSTIP);
|
|
m_wndToolTip.Activate(TRUE); //设置是否启用提示
|
|
m_wndToolTip.AddTool(GetDlgItem(IDC_STATIC_LINE), _T("按当前坐标系确定坐标值及网格文字显示方向"));
|
|
m_wndToolTip.AddTool(GetDlgItem(IDC_STATIC_CROSS), _T("按世界坐标系确定坐标值及网格文字显示方向"));
|
|
//更新界面控件
|
|
UpdateData(FALSE);
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
void CcoordGridSetDlg::OnClose()
|
|
{
|
|
m_bUseEsc = true;
|
|
if (m_bModeless)
|
|
{
|
|
acedPostCommand(_T("\33\33"));
|
|
}
|
|
else
|
|
{
|
|
CModelessDialog::OnClose();
|
|
}
|
|
}
|
|
|
|
void CcoordGridSetDlg::OnDestroy()
|
|
{
|
|
CModelessDialog::OnDestroy();
|
|
}
|
|
|
|
//绘制方式,取多段线
|
|
void CcoordGridSetDlg::OnBnClickedBtnPolyline()
|
|
{
|
|
s_nMode = 0;
|
|
if(!GET_GLOBAL_VARIABLE(CCoordGridDataManage))
|
|
SET_GLOBAL_VARIABLE(CCoordGridDataManage, new CCoordGridDataManage);
|
|
CCoordGridDataManage *pDataManage = GET_GLOBAL_VARIABLE(CCoordGridDataManage);
|
|
pDataManage->SetDrawType(kSelectPolyLine);
|
|
m_bUseEsc = false;
|
|
acedPostCommand(_T("\33"));
|
|
}
|
|
|
|
//绘制方式,取对角点
|
|
void CcoordGridSetDlg::OnBnClickedBtnDiagonalPt()
|
|
{
|
|
s_nMode = 1;
|
|
if(!GET_GLOBAL_VARIABLE(CCoordGridDataManage))
|
|
SET_GLOBAL_VARIABLE(CCoordGridDataManage, new CCoordGridDataManage);
|
|
CCoordGridDataManage *pDataManage = GET_GLOBAL_VARIABLE(CCoordGridDataManage);
|
|
pDataManage->SetDrawType(kSelectDiagonalPt);
|
|
m_bUseEsc = false;
|
|
acedPostCommand(_T("\33"));
|
|
}
|
|
|
|
//网格类型,十字交叉
|
|
void CcoordGridSetDlg::OnBnClickedRadioCrossGrid()
|
|
{
|
|
if(!GET_GLOBAL_VARIABLE(CCoordGridDataManage))
|
|
SET_GLOBAL_VARIABLE(CCoordGridDataManage, new CCoordGridDataManage);
|
|
CCoordGridDataManage *pDataManage = GET_GLOBAL_VARIABLE(CCoordGridDataManage);
|
|
pDataManage->SetGirdType(kCrossGrid);
|
|
((CButton *)GetDlgItem(IDC_RADIO_CROSS_GRID))->SetCheck(TRUE);
|
|
((CButton *)GetDlgItem(IDC_RADIO_LINE_GRID))->SetCheck(FALSE);
|
|
GetDlgItem(IDC_STATIC_X)->SetWindowTextW(_T("X"));
|
|
GetDlgItem(IDC_STATIC_Y)->SetWindowTextW(_T("Y"));
|
|
}
|
|
|
|
//网格类型,网格通线
|
|
void CcoordGridSetDlg::OnBnClickedRadioLineGrid()
|
|
{
|
|
if(!GET_GLOBAL_VARIABLE(CCoordGridDataManage))
|
|
SET_GLOBAL_VARIABLE(CCoordGridDataManage, new CCoordGridDataManage);
|
|
CCoordGridDataManage *pDataManage = GET_GLOBAL_VARIABLE(CCoordGridDataManage);
|
|
pDataManage->SetGirdType(kLineGrid);
|
|
((CButton *)GetDlgItem(IDC_RADIO_CROSS_GRID))->SetCheck(FALSE);
|
|
((CButton *)GetDlgItem(IDC_RADIO_LINE_GRID))->SetCheck(TRUE);
|
|
GetDlgItem(IDC_STATIC_X)->SetWindowTextW(_T("A"));
|
|
GetDlgItem(IDC_STATIC_Y)->SetWindowTextW(_T("B"));
|
|
}
|
|
|
|
//拾取字高
|
|
void CcoordGridSetDlg::OnBnClickedBtnTextHeight()
|
|
{
|
|
double dHeight = _tstof(m_strTextHeight)*DocGetPScale();
|
|
BeginEditorCommand();
|
|
if (GetDist(_T("\n字高"), dHeight, RSG_NOZERO | RSG_NONEG) == RTNORM) {
|
|
dHeight /= DocGetPScale();
|
|
m_strTextHeight.Format(_T("%.1f"), dHeight);
|
|
}
|
|
CompleteEditorCommand();
|
|
|
|
int nRet = ((CComboBox*)GetDlgItem(IDC_COMBO_TEXT_HEIGHT))->FindStringExact(0, m_strTextHeight);
|
|
if (nRet < 0) // 当前没有此文字高度
|
|
{
|
|
((CComboBox*)GetDlgItem(IDC_COMBO_TEXT_HEIGHT))->InsertString(0, m_strTextHeight);
|
|
((CComboBox*)GetDlgItem(IDC_COMBO_TEXT_HEIGHT))->SetCurSel(0);
|
|
UpdateData(FALSE);
|
|
}
|
|
else
|
|
((CComboBox*)GetDlgItem(IDC_COMBO_TEXT_HEIGHT))->SetCurSel(nRet);
|
|
OnCbnSelchangeComboTextHeight();
|
|
acedGetAcadDwgView()->SetFocus();
|
|
}
|
|
|
|
|
|
void CcoordGridSetDlg::OnEditchangeComboTextHeight()
|
|
{
|
|
UpdateData(TRUE);
|
|
CString strTextHeight(_T(""));
|
|
((CComboBox*)GetDlgItem(IDC_COMBO_TEXT_HEIGHT))->GetWindowText(strTextHeight);
|
|
((CComboBox*)GetDlgItem(IDC_COMBO_TEXT_HEIGHT))->AddString(strTextHeight);
|
|
double dGridSpacing = _ttof(strTextHeight);
|
|
if(!GET_GLOBAL_VARIABLE(CCoordGridDataManage))
|
|
SET_GLOBAL_VARIABLE(CCoordGridDataManage, new CCoordGridDataManage);
|
|
CCoordGridDataManage *pDataManage = GET_GLOBAL_VARIABLE(CCoordGridDataManage);
|
|
pDataManage->SetTextHeight(dGridSpacing);
|
|
}
|
|
|
|
//字高
|
|
void CcoordGridSetDlg::OnCbnSelchangeComboTextHeight()
|
|
{
|
|
if(!GET_GLOBAL_VARIABLE(CCoordGridDataManage))
|
|
SET_GLOBAL_VARIABLE(CCoordGridDataManage, new CCoordGridDataManage);
|
|
CCoordGridDataManage *pDataManage = GET_GLOBAL_VARIABLE(CCoordGridDataManage);
|
|
int iCurSel = ((CComboBox*)GetDlgItem(IDC_COMBO_TEXT_HEIGHT))->GetCurSel();
|
|
CString strTextHeight(_T(""));
|
|
((CComboBox*)GetDlgItem(IDC_COMBO_TEXT_HEIGHT))->GetLBText(iCurSel, strTextHeight);
|
|
double dGridSpacing = _ttof(strTextHeight);
|
|
pDataManage->SetTextHeight(dGridSpacing);
|
|
}
|
|
|
|
//等式形式
|
|
void CcoordGridSetDlg::OnBnClickedCheckEquationForm()
|
|
{
|
|
UpdateData(TRUE);
|
|
if(!GET_GLOBAL_VARIABLE(CCoordGridDataManage))
|
|
SET_GLOBAL_VARIABLE(CCoordGridDataManage, new CCoordGridDataManage);
|
|
CCoordGridDataManage *pDataManage = GET_GLOBAL_VARIABLE(CCoordGridDataManage);
|
|
if (m_bCheckEquationForm)
|
|
pDataManage->SetEuqationForm(true);
|
|
else
|
|
pDataManage->SetEuqationForm(false);
|
|
}
|
|
|
|
//网格间距
|
|
void CcoordGridSetDlg::OnCbnSelchangeComboGridSpacing()
|
|
{
|
|
if(!GET_GLOBAL_VARIABLE(CCoordGridDataManage))
|
|
SET_GLOBAL_VARIABLE(CCoordGridDataManage, new CCoordGridDataManage);
|
|
CCoordGridDataManage *pDataManage = GET_GLOBAL_VARIABLE(CCoordGridDataManage);
|
|
|
|
int iCurSel = ((CComboBox*)GetDlgItem(IDC_COMBO_GRID_SPACING))->GetCurSel();
|
|
CString strGrid(_T(""));
|
|
((CComboBox*)GetDlgItem(IDC_COMBO_GRID_SPACING))->GetLBText(iCurSel, strGrid);
|
|
int iGridSpacing = _ttoi(strGrid);
|
|
m_strGridSpacing = strGrid;
|
|
pDataManage->SetGridSpacing(iGridSpacing);
|
|
}
|
|
|
|
//文字样式
|
|
void CcoordGridSetDlg::OnCbnSelchangeComboTextStyle()
|
|
{
|
|
if(!GET_GLOBAL_VARIABLE(CCoordGridDataManage))
|
|
SET_GLOBAL_VARIABLE(CCoordGridDataManage, new CCoordGridDataManage);
|
|
CCoordGridDataManage *pDataManage = GET_GLOBAL_VARIABLE(CCoordGridDataManage);
|
|
|
|
int iCurSel = ((CComboBox*)GetDlgItem(IDC_COMBO_TEXT_STYLE))->GetCurSel();
|
|
((CComboBox*)GetDlgItem(IDC_COMBO_TEXT_STYLE))->GetLBText(iCurSel, m_strTextStyle);
|
|
pDataManage->SetTextStyle(m_strTextStyle);
|
|
}
|
|
|
|
void CcoordGridSetDlg::OnCbnEditchangeComboGridSpacing()
|
|
{
|
|
//网格间距允许输入大于0的数值,
|
|
//当输入小于等于0的数值、非数值或此项为空时,
|
|
//弹出错误对话框提示“请输入大于0的数值!”,同时间距值恢复到修改前数值;
|
|
CString strGrid(_T(""));
|
|
((CComboBox*)GetDlgItem(IDC_COMBO_GRID_SPACING))->GetWindowTextW(strGrid);
|
|
if (!strGrid.IsEmpty())
|
|
{
|
|
CString sTem;
|
|
sTem.Format(_T("%d"),_ttoi(strGrid));
|
|
if (sTem != strGrid || sTem == _T("0"))
|
|
{
|
|
AfxMessageBox(_T("请输入大于0的数值!"));
|
|
}
|
|
else
|
|
{
|
|
m_strGridSpacing = strGrid;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
AfxMessageBox(_T("请输入大于0的数值!"));
|
|
}
|
|
}
|
|
|
|
|
|
void CcoordGridSetDlg::OnCbnKillfocusComboGridSpacing()
|
|
{
|
|
int nRet = ((CComboBox*)GetDlgItem(IDC_COMBO_GRID_SPACING))->FindStringExact(0, m_strGridSpacing);
|
|
if (nRet < 0) // 当前图纸没有此网格间距
|
|
{
|
|
((CComboBox*)GetDlgItem(IDC_COMBO_GRID_SPACING))->InsertString(0, m_strGridSpacing);
|
|
((CComboBox*)GetDlgItem(IDC_COMBO_GRID_SPACING))->SetCurSel(0);
|
|
}
|
|
else
|
|
((CComboBox*)GetDlgItem(IDC_COMBO_GRID_SPACING))->SetCurSel(nRet);
|
|
|
|
if(!GET_GLOBAL_VARIABLE(CCoordGridDataManage))
|
|
SET_GLOBAL_VARIABLE(CCoordGridDataManage, new CCoordGridDataManage);
|
|
CCoordGridDataManage *pDataManage = GET_GLOBAL_VARIABLE(CCoordGridDataManage);
|
|
int iGridSpacing = _ttoi(m_strGridSpacing);
|
|
pDataManage->SetGridSpacing(iGridSpacing);
|
|
}
|
|
|
|
// add by xly on 11o120 设置控件的显示与灰显
|
|
void CcoordGridSetDlg::SetItemEnable(BOOL bEnable)
|
|
{
|
|
GetDlgItem(IDC_BTN_POLYLINE)->EnableWindow(bEnable);
|
|
GetDlgItem(IDC_BTN_DIAGONAL_PT)->EnableWindow(bEnable);
|
|
}
|
|
|
|
|
|
HBRUSH CcoordGridSetDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
|
|
{
|
|
HBRUSH hbr = CModelessDialog::OnCtlColor(pDC, pWnd, nCtlColor);
|
|
if (pWnd-> GetDlgCtrlID() == IDC_STATIC_CROSS || pWnd-> GetDlgCtrlID() == IDC_STATIC_LINE)
|
|
{
|
|
pDC-> SetTextColor(RGB(0,0,255)); //字体颜色
|
|
}
|
|
return hbr;
|
|
}
|
|
|
|
BOOL CcoordGridSetDlg::PreTranslateMessage(MSG* pMsg)
|
|
{
|
|
m_wndToolTip.RelayEvent(pMsg);
|
|
return CModelessDialog::PreTranslateMessage(pMsg);
|
|
}
|
|
|
|
// 工具栏提示
|
|
BOOL CcoordGridSetDlg::OnToolTipText( UINT, NMHDR * pNMHDR, LRESULT * pResult )
|
|
{
|
|
ASSERT(pNMHDR->code == TTN_NEEDTEXTA || pNMHDR->code == TTN_NEEDTEXTW);
|
|
if (GetRoutingFrame() != NULL)
|
|
return FALSE;
|
|
|
|
TOOLTIPTEXTA* pTTTA = (TOOLTIPTEXTA*)pNMHDR;
|
|
TOOLTIPTEXTW* pTTTW = (TOOLTIPTEXTW*)pNMHDR;
|
|
CString strTipText;
|
|
UINT nID = (UINT)pNMHDR->idFrom;
|
|
|
|
if (pNMHDR->code == TTN_NEEDTEXTA && (pTTTA->uFlags & TTF_IDISHWND) ||
|
|
pNMHDR->code == TTN_NEEDTEXTW && (pTTTW->uFlags & TTF_IDISHWND))
|
|
{
|
|
return FALSE;
|
|
}
|
|
if (nID != 0)
|
|
{
|
|
{
|
|
CAcModuleResourceOverride vTmp;
|
|
strTipText.LoadString(nID);
|
|
}
|
|
|
|
#ifndef _UNICODE
|
|
if (pNMHDR->code == TTN_NEEDTEXTA)
|
|
{
|
|
lstrcpyn(pTTTA->szText, strTipText, sizeof(pTTTA->szText));
|
|
}
|
|
else
|
|
{
|
|
_mbstowcsz(pTTTW->szText, strTipText, sizeof(pTTTW->szText));
|
|
}
|
|
#else
|
|
if (pNMHDR->code == TTN_NEEDTEXTA)
|
|
{
|
|
_wcstombsz(pTTTA->szText, strTipText,sizeof(pTTTA->szText));
|
|
}
|
|
else
|
|
{
|
|
lstrcpyn(pTTTW->szText, strTipText, sizeof(pTTTW->szText));
|
|
}
|
|
#endif
|
|
|
|
*pResult = 0;
|
|
::SetWindowPos(pNMHDR->hwndFrom, HWND_TOP, 0, 0, 0, 0,SWP_NOACTIVATE|
|
|
SWP_NOSIZE|SWP_NOMOVE|SWP_NOOWNERZORDER); return TRUE;
|
|
}
|
|
return TRUE;
|
|
}
|