⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 meterconfigdlg1.cpp

📁 组态王图库开发包
💻 CPP
字号:
// MeterConfigDlg1.cpp : implementation file
//

#include "stdafx.h"
#include <float.h>
#include "wizard.h"
#include "DrawSample.h"
#include "Sample.h"
#include "MeterConfigDlg1.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CMeterConfigDlg1 dialog


CMeterConfigDlg1::CMeterConfigDlg1(CWnd* pParent /*=NULL*/)
	: CDialog(CMeterConfigDlg1::IDD, pParent)
{
	//{{AFX_DATA_INIT(CMeterConfigDlg1)
	m_strFaceLabel = _T("");
	m_strValName = _T("");
	m_dwFaceFillColor = 0;
	m_dwFaceTextColor = 0;
	m_nLabelDecimalLen = 0;
	m_dwLabelTextColor = 0;
	m_nLabelMainDiff = 0;
	m_nPrimeScale = 0;
	m_nSlaveScale = 0;
	m_fltMaxScale = 0.0f;
	m_fltMinScale = 0.0f;
	//}}AFX_DATA_INIT
}


void CMeterConfigDlg1::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CMeterConfigDlg1)
	DDX_Text(pDX, IDC_EDIT_FACELABEL, m_strFaceLabel);
	DDX_Text(pDX, IDC_EDIT_VALNAME, m_strValName);
	DDX_Text(pDX, IDC_EDIT_LABELDECIMALLEN, m_nLabelDecimalLen);
	DDX_Text(pDX, IDC_EDIT_LABELMAINDIFF, m_nLabelMainDiff);
	DDX_Text(pDX, IDC_EDIT_PRIMESCALE, m_nPrimeScale);
	DDX_Text(pDX, IDC_EDIT_SLAVESCALE, m_nSlaveScale);
	DDX_Text(pDX, IDC_EDIT_MAXSCALE, m_fltMaxScale);
	DDX_Text(pDX, IDC_EDIT_MINSCALE, m_fltMinScale);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CMeterConfigDlg1, CDialog)
	//{{AFX_MSG_MAP(CMeterConfigDlg1)
	ON_BN_CLICKED(IDC_BUTTON_VALNAMELIST, OnButtonValnamelist)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMeterConfigDlg1 message handlers

void CMeterConfigDlg1::OnButtonValnamelist() 
{
	CString strOldValName, strNewValName;
	CWnd * pWnd = GetDlgItem( IDC_EDIT_VALNAME );
	pWnd->GetWindowText( strOldValName );
    strNewValName = GetTag( m_hWnd, strOldValName, SHOW_TYPE );
    pWnd->SetWindowText( strNewValName );
	m_strValName = strNewValName;	
}

void CMeterConfigDlg1::OnOK() 
{
	UpdateData( TRUE ) ;
	if ( CheckValid() )
	{
		m_dwFaceFillColor = m_btnFaceColor.m_color ;
		m_dwFaceTextColor = m_btnFaceTextColor.m_color ;
		m_dwLabelTextColor = m_btnScaleTextColor.m_color ;
		CDialog::OnOK();
	}
	
}

BOOL CMeterConfigDlg1::CheckValid()
{
	CString strMsg, strCheckValidTitle ;
	strCheckValidTitle.LoadString( IDS_CHECK_VALID_TITLE ) ;

	CString strDefaultValName ;
	strDefaultValName.LoadString( IDS_NO_SET_LINK_VARNAME ) ;
	if ( m_strValName.IsEmpty() || m_strValName == strDefaultValName )
	{
		GetDlgItem( IDC_EDIT_VALNAME )->SetFocus() ;
		strMsg.LoadString( IDS_PLEASE_INPUT_VARNAME ) ;
		MessageBox( strMsg, strCheckValidTitle ) ;
		return FALSE ;
	}

	if ( m_strValName.GetLength() >= LINK_VARNAME_LEN )
	{
		GetDlgItem( IDC_EDIT_VALNAME )->SetFocus() ;
		strMsg.Format( IDS_VARNAME_LEN_MUST_LESS, LINK_VARNAME_LEN ) ;
		MessageBox( strMsg, strCheckValidTitle  ) ;
		return FALSE ;	
	}

	if ( !CheckTagType( m_hWnd, m_strValName, CHECK_TYPE ) )
		return FALSE ;

	if ( m_strFaceLabel.GetLength() >= FACE_LABEL_LEN )
	{
		GetDlgItem( IDC_EDIT_FACELABEL )->SetFocus() ;
		strMsg.Format( IDS_LABEL_LEN_MUST_LESS, FACE_LABEL_LEN ) ;
		MessageBox( strMsg, strCheckValidTitle  ) ;
		return FALSE ;	
	}

	if ( m_nPrimeScale < PRIME_SCALE_MIN_COUNT || m_nPrimeScale > PRIME_SCALE_MAX_COUNT )
	{
		GetDlgItem( IDC_EDIT_PRIMESCALE )->SetFocus() ;
		strMsg.Format( IDS_PRIME_SCALE_MUST_BETWEEN , PRIME_SCALE_MIN_COUNT, PRIME_SCALE_MAX_COUNT ) ;
		MessageBox( strMsg, strCheckValidTitle  ) ;
		return FALSE ;
	}

	if ( m_nSlaveScale < SLAVE_SCALE_MIN_COUNT || m_nSlaveScale > SLAVE_SCALE_MAX_COUNT )
	{
		GetDlgItem( IDC_EDIT_SLAVESCALE )->SetFocus() ;
		strMsg.Format( IDS_SLAVE_SCALE_MUST_BETWEEN, SLAVE_SCALE_MIN_COUNT, SLAVE_SCALE_MAX_COUNT ) ;
		MessageBox( strMsg, strCheckValidTitle ) ;
		return FALSE ;
	}

	if ( m_nLabelMainDiff < MIN_SCALE_LABEL_MAIN_DIFF )
	{
		GetDlgItem( IDC_EDIT_LABELMAINDIFF )->SetFocus() ;
		strMsg.Format( IDS_SCALE_LABEL_CAN_NOT_LESS, MIN_SCALE_LABEL_MAIN_DIFF ) ;
		MessageBox( strMsg, strCheckValidTitle ) ;
		return FALSE ;
	}

	if ( m_fltMinScale >= m_fltMaxScale )
	{
		GetDlgItem( IDC_EDIT_MINSCALE )->SetFocus() ;
		strMsg.LoadString( IDS_MIN_SCALE_MUST_LESS_MAX_SCALE ) ;
		MessageBox( strMsg, strCheckValidTitle  ) ;
		return FALSE ;
	}
	
	if ( m_fltMinScale < -FLT_MAX || m_fltMinScale > FLT_MAX )
	{
		GetDlgItem( IDC_EDIT_MINSCALE )->SetFocus() ;
		strMsg.Format( IDS_MIN_SCALE_BETWEEN, -FLT_MAX, FLT_MAX ) ;
		MessageBox( strMsg, strCheckValidTitle  ) ;
		return FALSE ;
	}

	if ( m_fltMaxScale < -FLT_MAX || m_fltMaxScale > FLT_MAX )
	{
		GetDlgItem( IDC_EDIT_MAXSCALE )->SetFocus() ;
		strMsg.Format( IDS_MAX_SCALE_BETWEEN, -FLT_MAX, FLT_MAX ) ;
		MessageBox( strMsg, strCheckValidTitle  ) ;
		return FALSE ;
	}

	if ( m_nLabelDecimalLen < SCALE_LABEL_DECIMAL_MIN_LEN || m_nLabelDecimalLen > SCALE_LABEL_DECIMAL_MAX_LEN )
	{
		GetDlgItem( IDC_EDIT_LABELDECIMALLEN )->SetFocus() ;
		strMsg.Format( IDS_SCALE_LABEL_DECIMAL_LEN_BETWEEN, SCALE_LABEL_DECIMAL_MIN_LEN, SCALE_LABEL_DECIMAL_MAX_LEN ) ;
		MessageBox( strMsg, strCheckValidTitle  ) ;
		return FALSE ;
	}
	
	return TRUE ;	
}

BOOL CMeterConfigDlg1::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	m_editMinScale.SubclassDlgItem( IDC_EDIT_MINSCALE , this ) ;
	m_editMaxScale.SubclassDlgItem( IDC_EDIT_MAXSCALE , this ) ;

	m_btnFaceColor.m_color = m_dwFaceFillColor ;
	m_btnFaceTextColor.m_color = m_dwFaceTextColor ;
	m_btnScaleTextColor.m_color = m_dwLabelTextColor ;
	m_btnFaceColor.SubclassDlgItem( IDC_BUTTON_FACE_COLOR, this ) ;
	m_btnFaceTextColor.SubclassDlgItem( IDC_BUTTON_FACE_TEXT_COLOR, this ) ;
	m_btnScaleTextColor.SubclassDlgItem( IDC_BUTTON_SCALE_TEXT_COLOR, this ) ;

	CString strVarName, strDefaultVarName ;
	GetDlgItemText( IDC_EDIT_VALNAME, strVarName ) ;
	strDefaultVarName.LoadString( IDS_DEFAULT_VARNAME ) ;
	if ( strVarName == strDefaultVarName )
	{
		CString strDefault;
		//strDefault.LoadString( IDS_NO_SET_LINK_VARNAME ) ;
		strDefault.Empty() ;
		SetDlgItemText( IDC_EDIT_VALNAME, strDefault ) ;
	}

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -