📄 watermarksettingdlg.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 + -