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

📄 dispconbri.cpp

📁 CT工作站具有打印报告、病历管理、图像处理专家词库等功能
💻 CPP
字号:
// DispConBri.cpp : implementation file
//

#include "stdafx.h"
#include "bxt.h"
#include "DispConBri.h"
#include "bxtdlg.h"
#include "imageprocess.h"

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

/////////////////////////////////////////////////////////////////////////////
// DispConBri dialog

DispConBri::DispConBri(CWnd* pParent /*=NULL*/)
	: CDialog(DispConBri::IDD, pParent)
{
	//{{AFX_DATA_INIT(DispConBri)
	m_lock = FALSE;
	//}}AFX_DATA_INIT
}

void
DispConBri::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(DispConBri)
	DDX_Control(pDX, IDC_SLIDER4, m_slider4);
	DDX_Control(pDX, IDC_SLIDER3, m_slider3);
	DDX_Control(pDX, IDC_SLIDER2, m_slider2);
	DDX_Control(pDX, IDC_SLIDER1, m_slider1);
	DDX_Control(pDX, IDC_DISPFILT, m_dspfilt);
	DDX_Check(pDX, IDC_CHECK_LOCK, m_lock);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(DispConBri, CDialog)
	//{{AFX_MSG_MAP(DispConBri)
	ON_WM_PAINT()
	ON_WM_HSCROLL()
	ON_BN_CLICKED(IDC_CHECK_LOCK2, OnCheckLock2)
	ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
	//}}AFX_MSG_MAP
	ON_MESSAGE(WX_DSPCHGCURPIC,CurChg)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// DispConBri message handlers 

BOOL DispConBri::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	//p1.SubclassDlgItem(IDC_BUTTON1,this);
	//p1.SetIcon(IDI_CONBRI);
	//p1.SetWindowText("亮度对比度");

	m_slider1.SetRange(0,255,TRUE);
	m_slider2.SetRange(0,255,TRUE);
	m_slider3.SetRange(0,255,TRUE);
	m_slider4.SetRange(0,255,TRUE);

	m_v2	= m_v1	= 127;
	m_v3	= 0;
	m_v4	= 255;

	m_slider1.SetPos(m_v1);
	m_slider2.SetPos(m_v2);
	m_slider3.SetPos(m_v3);
	m_slider4.SetPos(m_v4);

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

void DispConBri::CurChg(WPARAM wParm,LPARAM lParm)
{ 
	CDC *dc=m_dspfilt.GetDC();
	CRect rr;
	m_dspfilt.GetWindowRect(&rr);
	if(wParm>0)
	{
		((CBxtDlg*)AfxGetMainWnd())->imgpcs->mpp[wParm]->DrawFilt(dc,0,0,rr.Width(),rr.Height());
	}
	else
	{
		dc->FillSolidRect(&rr,RGB(255,255,255));
	}
	ReleaseDC(dc);
	curpic = wParm;
	m_v2	= m_v1	= 127;
	m_v3	= 0;
	m_v4	= 255;

	m_slider1.SetPos(m_v1);
	m_slider2.SetPos(m_v2);
	m_slider3.SetPos(m_v3);
	m_slider4.SetPos(m_v4);

}

void DispConBri::OnPaint() 
{
	CPaintDC dc(this); // device context for painting
	
	// TODO: Add your message handler code here
	CDC *fdc=m_dspfilt.GetDC();
	CRect rr;
	m_dspfilt.GetWindowRect(&rr);
	if(curpic>0)
	{
		((CBxtDlg*)AfxGetMainWnd())->imgpcs->mpp[curpic]->DrawFilt(fdc,0,0,rr.Width(),rr.Height());
	}
	else
	{
		fdc->FillSolidRect(&rr,RGB(255,255,255));
	}

	ReleaseDC(fdc);
}


void DispConBri::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
{
	long sww= ( (CButton*)GetDlgItem(IDC_CHECK_LOCK2) )->GetCheck();

	long arg	= (long) ((CSliderCtrl *) pScrollBar);

	//	更新 m_lock	标志
	UpdateData(true);

	//	亮度调整
	if (arg	== long(&m_slider1))
	{
		m_v1	= m_slider1.GetPos();
		((CBxtDlg *)AfxGetMainWnd())->imgpcs->SendMessage(WX_DSPCONBRI,MAKEWPARAM(m_v1,m_v2),0);
	}
	//	对比度调整
	else if (arg	== long(&m_slider2))
	{
		m_v2	= m_slider2.GetPos();
		((CBxtDlg *)AfxGetMainWnd())->imgpcs->SendMessage(WX_DSPCONBRI,MAKEWPARAM(m_v1,m_v2),0);
	}
	//	窗宽调整
	else if (arg	== long(&m_slider3))
	{
		int v3	= m_slider3.GetPos();
		if (m_lock)
		{
			m_v4	= v3 + (m_v4 - m_v3);
			if (m_v4 > 255) m_v4 = 255;
			m_slider4.SetPos(m_v4);
		}
		else
		{
			if (m_slider4.GetPos() < v3)
			{
				m_slider4.SetPos(v3);
				m_v4	= v3;
			}
		}
		m_v3	= v3;
		((CBxtDlg *)AfxGetMainWnd())->imgpcs->SendMessage(WX_BSPWINPOS,MAKEWPARAM(m_v3,m_v4),sww);
	}
	//	窗位调整
	else if (arg	== long(&m_slider4))
	{
		int v4	= m_slider4.GetPos();
		if (m_lock)
		{
			m_v3	= v4 - (m_v4 - m_v3);
			if (m_v3 < 0) m_v3 = 0;
			m_slider3.SetPos(m_v3);
		}
		else
		{
			if (m_slider3.GetPos() > v4)
			{
				m_slider3.SetPos(v4);
				m_v3	= v4;
			}
		}
		m_v4	= v4;
		((CBxtDlg *)AfxGetMainWnd())->imgpcs->SendMessage(WX_BSPWINPOS,MAKEWPARAM(m_v3,m_v4),sww);
	}
	//	其他
	else
	{
	}

	CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
}

void DispConBri::OnCheckLock2() 
{
	long mm= ( (CButton*)GetDlgItem(IDC_CHECK_LOCK2) )->GetCheck();
	((CBxtDlg *)AfxGetMainWnd())->imgpcs->SendMessage(WX_BSPWINPOS,MAKEWPARAM(m_v3,m_v4),mm);
}

void DispConBri::OnButton1() 
{
	((CBxtDlg*)AfxGetMainWnd())->imgpcs->SendMessage(WX_DSPPRC,6,0);//restore org
	m_v2	= m_v1	= 127;
	m_v3	= 0;
	m_v4	= 255;

	m_slider1.SetPos(m_v1);
	m_slider2.SetPos(m_v2);
	m_slider3.SetPos(m_v3);
	m_slider4.SetPos(m_v4);
	
}

⌨️ 快捷键说明

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