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

📄 watermarksettingdlg.cpp

📁 EmfMerger幻灯片打印辅助工具,能将几张幻灯片合并后打印. 可以任意调节各幻灯片的间距
💻 CPP
字号:
// WaterMarkSettingDlg.cpp : implementation file
//

#include "stdafx.h"
#include "EmfMerger.h"
#include "WaterMarkSettingDlg.h"


// CWaterMarkSettingDlg dialog

IMPLEMENT_DYNAMIC(CWaterMarkSettingDlg, CDialog)

CWaterMarkSettingDlg::CWaterMarkSettingDlg(WaterMark waterMark, CWnd* pParent /*=NULL*/)
	: CDialog(CWaterMarkSettingDlg::IDD, pParent)
{
	m_waterMark = waterMark;
}

CWaterMarkSettingDlg::~CWaterMarkSettingDlg()
{
}

void CWaterMarkSettingDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
}


BEGIN_MESSAGE_MAP(CWaterMarkSettingDlg, CDialog)
	ON_NOTIFY(NM_RELEASEDCAPTURE, IDC_SLIDER_TRAN, &CWaterMarkSettingDlg::OnNMReleasedcaptureSliderTran)
	ON_BN_CLICKED(IDC_RADIO_LAYER_TOP, &CWaterMarkSettingDlg::OnBnClickedRadiLayer)
	ON_BN_CLICKED(IDC_RADIO_LAYER_BUTTOM, &CWaterMarkSettingDlg::OnBnClickedRadiLayer)
	ON_NOTIFY(NM_RELEASEDCAPTURE, IDC_SLIDER_HORIZON, &CWaterMarkSettingDlg::OnNMReleasedcaptureSliderPos)
	ON_NOTIFY(NM_RELEASEDCAPTURE, IDC_SLIDER_VERTICAL, &CWaterMarkSettingDlg::OnNMReleasedcaptureSliderPos)
	ON_NOTIFY(NM_RELEASEDCAPTURE, IDC_SLIDER_ANGLE, &CWaterMarkSettingDlg::OnNMReleasedcaptureSliderAngle)
END_MESSAGE_MAP()


// CWaterMarkSettingDlg message handlers

WaterMark CWaterMarkSettingDlg::GetWaterMark()
{
	return m_waterMark;
}
BOOL CWaterMarkSettingDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// TODO:  Add extra initialization here
	((CSliderCtrl*)GetDlgItem(IDC_SLIDER_TRAN))->SetRangeMin(0);
	((CSliderCtrl*)GetDlgItem(IDC_SLIDER_TRAN))->SetRangeMax(100, TRUE);
	((CSliderCtrl*)GetDlgItem(IDC_SLIDER_HORIZON))->SetRangeMin(0);
	((CSliderCtrl*)GetDlgItem(IDC_SLIDER_HORIZON))->SetRangeMax(99, TRUE);
	((CSliderCtrl*)GetDlgItem(IDC_SLIDER_VERTICAL))->SetRangeMin(0);
	((CSliderCtrl*)GetDlgItem(IDC_SLIDER_VERTICAL))->SetRangeMax(99, TRUE);
	((CSliderCtrl*)GetDlgItem(IDC_SLIDER_ANGLE))->SetRangeMin(0);
	((CSliderCtrl*)GetDlgItem(IDC_SLIDER_ANGLE))->SetRangeMax(360, TRUE);
	SetWaterMarkStatus();

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

void CWaterMarkSettingDlg::SetWaterMarkStatus()
{
	SetDlgItemText(IDC_EDIT_WATER_MAEK, m_waterMark.strWaterMark);

	if (m_waterMark.bLayerTop)
	{
		((CButton*)GetDlgItem(IDC_RADIO_LAYER_TOP))->SetCheck(BST_CHECKED);
	}
	else
	{
		((CButton*)GetDlgItem(IDC_RADIO_LAYER_TOP))->SetCheck(BST_UNCHECKED);
	}

	//((CButton*)GetDlgItem(IDC_CHECK_POS_TOP))->SetCheck(BST_UNCHECKED);
	//((CButton*)GetDlgItem(IDC_CHECK_POS_MIDDLE))->SetCheck(BST_UNCHECKED);
	//((CButton*)GetDlgItem(IDC_CHECK_POS_BOTTOM))->SetCheck(BST_UNCHECKED);
	//((CButton*)GetDlgItem(IDC_CHECK_POS_LEFT))->SetCheck(BST_UNCHECKED);
	//((CButton*)GetDlgItem(IDC_CHECK_POS_CENTER))->SetCheck(BST_UNCHECKED);
	//((CButton*)GetDlgItem(IDC_CHECK_POS_RIGHT))->SetCheck(BST_UNCHECKED);
	//if (m_waterMark.iPosition&constTop)
	//{
	//	if (m_waterMark.iLayout == constLayoutBL2RT)
	//	{
	//		m_waterMark.iLayout = constLayoutHorizon;
	//	}
	//	m_waterMark.iPosition &= ~constRight;
	//	((CButton*)GetDlgItem(IDC_CHECK_POS_TOP))->SetCheck(BST_CHECKED);
	//	((CButton*)GetDlgItem(IDC_CHECK_POS_MIDDLE))->EnableWindow(FALSE);
	//	((CButton*)GetDlgItem(IDC_CHECK_POS_BOTTOM))->EnableWindow(FALSE);
	//	m_waterMark.iPosition &= ~constMiddle;
	//	m_waterMark.iPosition &= ~constBottom;
	//}
	//if (m_waterMark.iPosition&constLeft)
	//{
	//	if (m_waterMark.iLayout == constLayoutBL2RT)
	//	{
	//		m_waterMark.iLayout = constLayoutVertical;
	//	}
	//	((CButton*)GetDlgItem(IDC_CHECK_POS_LEFT))->SetCheck(BST_CHECKED);
	//	((CButton*)GetDlgItem(IDC_CHECK_POS_CENTER))->EnableWindow(FALSE);
	//	((CButton*)GetDlgItem(IDC_CHECK_POS_RIGHT))->EnableWindow(FALSE);
	//	m_waterMark.iPosition &= ~constCenter;
	//	m_waterMark.iPosition &= ~constRight;
	//}
	//if (m_waterMark.iPosition&constMiddle)
	//{
	//	((CButton*)GetDlgItem(IDC_CHECK_POS_BOTTOM))->EnableWindow(FALSE);
	//	((CButton*)GetDlgItem(IDC_CHECK_POS_MIDDLE))->SetCheck(BST_CHECKED);
	//	m_waterMark.iPosition &= ~constBottom;
	//}
	//if (m_waterMark.iPosition&constCenter)
	//{
	//	((CButton*)GetDlgItem(IDC_CHECK_POS_RIGHT))->EnableWindow(FALSE);
	//	((CButton*)GetDlgItem(IDC_CHECK_POS_CENTER))->SetCheck(BST_CHECKED);
	//	m_waterMark.iPosition &= ~constRight;
	//}
	//if (m_waterMark.iPosition&constBottom)
	//{
	//	if (m_waterMark.iLayout == constLayoutVertical)
	//	{
	//		m_waterMark.iLayout = constLayoutHorizon;
	//	}	
	//	m_waterMark.iPosition &= ~constRight;
	//	((CButton*)GetDlgItem(IDC_CHECK_POS_BOTTOM))->SetCheck(BST_CHECKED);
	//}
	//if (m_waterMark.iPosition&constRight)
	//{
	//	if (m_waterMark.iLayout == constLayoutHorizon)
	//	{
	//		m_waterMark.iLayout = constLayoutVertical;
	//	}
	//	((CButton*)GetDlgItem(IDC_CHECK_POS_RIGHT))->SetCheck(BST_CHECKED);
	//}

	//((CButton*)GetDlgItem(IDC_RADIO_HORIZON))->SetCheck(BST_UNCHECKED);
	//((CButton*)GetDlgItem(IDC_RADIO_VERTICAL))->SetCheck(BST_UNCHECKED);
	//((CButton*)GetDlgItem(IDC_RADIO_LB2RT))->SetCheck(BST_UNCHECKED);
	//switch(m_waterMark.iLayout)
	//{
	//case constLayoutHorizon:
	//	((CButton*)GetDlgItem(IDC_RADIO_HORIZON))->SetCheck(BST_CHECKED);
	//	break;
	//case constLayoutVertical:
	//	((CButton*)GetDlgItem(IDC_RADIO_VERTICAL))->SetCheck(BST_CHECKED);
	//	break;
	//case constLayoutBL2RT:
	//	((CButton*)GetDlgItem(IDC_RADIO_LB2RT))->SetCheck(BST_CHECKED);
	//	break;	
	//default:
	//	break;
	//}

	if (m_waterMark.iTran < 0)
	{
		m_waterMark.iTran = 0;
	}
	if (m_waterMark.iTran > 100)
	{
		m_waterMark.iTran = 100;
	}
	CString strTran;
	strTran.Format(_T("%d%%"), m_waterMark.iTran);
	SetDlgItemText(IDC_STATIC_TRAN, strTran);
	((CSliderCtrl*)GetDlgItem(IDC_SLIDER_TRAN))->SetPos(m_waterMark.iTran);

	if (m_waterMark.iHorizonPos < 0)
	{
		m_waterMark.iHorizonPos = 0;
	}
	if (m_waterMark.iHorizonPos > 99)
	{
		m_waterMark.iHorizonPos = 99;
	}
	CString strHorizon;
	strHorizon.Format(_T("%d%%"), m_waterMark.iHorizonPos);
	SetDlgItemText(IDC_STATIC_HORIZON, strHorizon);
	((CSliderCtrl*)GetDlgItem(IDC_SLIDER_HORIZON))->SetPos(m_waterMark.iHorizonPos);

	if (m_waterMark.iVerticalPos < 0)
	{
		m_waterMark.iVerticalPos = 0;
	}
	if (m_waterMark.iVerticalPos > 99)
	{
		m_waterMark.iVerticalPos = 99;
	}
	CString strVertical;
	strVertical.Format(_T("%d%%"), m_waterMark.iVerticalPos);
	SetDlgItemText(IDC_STATIC_VERTICAL, strVertical);
	((CSliderCtrl*)GetDlgItem(IDC_SLIDER_VERTICAL))->SetPos(m_waterMark.iVerticalPos);

	if (m_waterMark.iAngle < 0)
	{
		m_waterMark.iAngle = 0;
	}
	if (m_waterMark.iAngle > 360)
	{
		m_waterMark.iAngle = 360;
	}
	CString strAngle;
	strAngle.Format(_T("%d°"), m_waterMark.iAngle);
	SetDlgItemText(IDC_STATIC_ANGLE, strAngle);
	((CSliderCtrl*)GetDlgItem(IDC_SLIDER_ANGLE))->SetPos(m_waterMark.iAngle);

	UpdatePreView();
}


void CWaterMarkSettingDlg::OnNMReleasedcaptureSliderTran(NMHDR *pNMHDR, LRESULT *pResult)
{
	// TODO: Add your control notification handler code here
	CString strTran;
	m_waterMark.iTran = ((CSliderCtrl*)GetDlgItem(IDC_SLIDER_TRAN))->GetPos();
	strTran.Format(_T("%d%%"), m_waterMark.iTran);
	SetDlgItemText(IDC_STATIC_TRAN, strTran);
//	((CSliderCtrl*)GetDlgItem(IDC_SLIDER_TRAN))->SetPos(m_waterMark.iTran);

	UpdatePreView();

	*pResult = 0;
}

void CWaterMarkSettingDlg::UpdatePreView()
{
	m_pParentWnd->PostMessage(WM_UD_UPDATE_PREVIEW, (WPARAM)&m_waterMark, 0);
}
void CWaterMarkSettingDlg::OnBnClickedRadiLayer()
{
	// TODO: Add your control notification handler code here
	if (((CButton*)GetDlgItem(IDC_RADIO_LAYER_TOP))->GetCheck() == BST_CHECKED)
	{
		m_waterMark.bLayerTop = true;
	}
	else
	{
		m_waterMark.bLayerTop = false;
	}	
}


void CWaterMarkSettingDlg::OnNMReleasedcaptureSliderPos(NMHDR *pNMHDR, LRESULT *pResult)
{
	// TODO: Add your control notification handler code here
	CString strSlider;
	m_waterMark.iHorizonPos = ((CSliderCtrl*)GetDlgItem(IDC_SLIDER_HORIZON))->GetPos();
	strSlider.Format(_T("%d%%"), m_waterMark.iHorizonPos);
	SetDlgItemText(IDC_STATIC_HORIZON, strSlider);
//	((CSliderCtrl*)GetDlgItem(IDC_SLIDER_HORIZON))->SetPos(m_waterMark.iHorizonPos);

	m_waterMark.iVerticalPos = ((CSliderCtrl*)GetDlgItem(IDC_SLIDER_VERTICAL))->GetPos();
	strSlider.Format(_T("%d%%"), m_waterMark.iVerticalPos);
	SetDlgItemText(IDC_STATIC_VERTICAL, strSlider);
//	((CSliderCtrl*)GetDlgItem(IDC_SLIDER_VERTICAL))->SetPos(m_waterMark.iVerticalPos);

	UpdatePreView();

	*pResult = 0;
}

void CWaterMarkSettingDlg::OnNMReleasedcaptureSliderAngle(NMHDR *pNMHDR, LRESULT *pResult)
{
	// TODO: Add your control notification handler code here
	CString strSlider;
	m_waterMark.iAngle = ((CSliderCtrl*)GetDlgItem(IDC_SLIDER_ANGLE))->GetPos();
	strSlider.Format(_T("%d°"), m_waterMark.iAngle);
	SetDlgItemText(IDC_STATIC_ANGLE, strSlider);
//	((CSliderCtrl*)GetDlgItem(IDC_SLIDER_ANGLE))->SetPos(m_waterMark.iAngle);

	UpdatePreView();

	*pResult = 0;
}

⌨️ 快捷键说明

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