📄 bcedlg.cpp
字号:
// BCEDlg.cpp : implementation file
#include "stdafx.h"
#include "source10.h"
#include "AIEDlg.h"
#include "BCEDlg.h"
#include "functions.h"
#include "scanner.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern char InitDir2[100];
extern CScanner* pScanner;
/////////////////////////////////////////////////////////////////////////////
// CBCEDlg dialog
CBCEDlg::CBCEDlg(CWnd* pParent /*=NULL*/)
: CDialog(CBCEDlg::IDD, pParent)
{
m_pParent = pParent;
m_nID = CBCEDlg::IDD;
//{{AFX_DATA_INIT(CBCEDlg)
//}}AFX_DATA_INIT
int channel;
pScanner->m_nColor=GetPrivateProfileInt("color num","color",16777216,InitDir2);
if(pScanner->m_nColor==16777216)
{
m_sChannel = _T("主通道");
//其实无意义
m_nLimit= GetPrivateProfileInt("plimit2","limitM",128,InitDir2);
m_nLimit2 = GetPrivateProfileInt("plimit2","limitM",128,InitDir2);
}
else
{
channel=GetPrivateProfileInt("xianzhen","channel",42,InitDir2);
if(channel==44)//红色通道
{
m_sChannel=_T("红通道");
m_nLimit= GetPrivateProfileInt("plimit2","limitR",128,InitDir2);
m_nLimit2 = GetPrivateProfileInt("plimit2","limitR",128,InitDir2);
}
if(channel==42)//绿色通道
{
m_sChannel=_T("绿通道");
m_nLimit= GetPrivateProfileInt("plimit2","limitG",128,InitDir2);
m_nLimit2 = GetPrivateProfileInt("plimit2","limitG",128,InitDir2);
}
if(channel==41)//蓝色通道
{
m_nLimit= GetPrivateProfileInt("plimit2","limitB",128,InitDir2);
m_nLimit2 = GetPrivateProfileInt("plimit2","limitB",128,InitDir2);
m_sChannel=_T("蓝通道");
}
}
m_nBrightness = GetPrivateProfileInt("pbrightness2","brightM",128,InitDir2);
m_nContrast = GetPrivateProfileInt("pcontrast2","contrastM",128,InitDir2);
m_nBrightness2 = GetPrivateProfileInt("pbrightness2","brightM",128,InitDir2);
m_nContrast2 = GetPrivateProfileInt("pcontrast2","contrastM",128,InitDir2);
}
void CBCEDlg::DoDataExchange(CDataExchange* pDX)
{
//{{AFX_DATA_MAP(CBCEDlg)
DDX_Control(pDX, IDC_CONTRAST, m_ctrlContrast);
DDX_Control(pDX, IDC_BRIGHTNESS, m_ctrlBrightness);
DDX_Control(pDX, IDC_LIMIT, m_ctrlLimit);
DDX_Scroll(pDX, IDC_BRIGHTNESS, m_nBrightness);
DDX_Scroll(pDX, IDC_CONTRAST, m_nContrast);
DDX_Scroll(pDX, IDC_LIMIT, m_nLimit);
DDX_CBString(pDX, IDC_CHANNEL, m_sChannel);
DDX_Text(pDX, IDC_STATIC_C, m_nContrast2);
DDX_Text(pDX, IDC_STATIC_B, m_nBrightness2);
DDX_Text(pDX, IDC_STATIC_LIMIT, m_nLimit2);
//}}AFX_DATA_MAP
CDialog::DoDataExchange(pDX);
}
BOOL CBCEDlg::Create(void)
{
return CDialog::Create(m_nID,m_pParent);
}
BEGIN_MESSAGE_MAP(CBCEDlg, CDialog)
//{{AFX_MSG_MAP(CBCEDlg)
ON_WM_HSCROLL()
ON_CBN_SELCHANGE(IDC_CHANNEL, OnSelchangeChannel)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//预扫描区的调整
/////////////////////////////////////////////////////////////////////////////
//在BCE对话框中的滚动条调整
void CBCEDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
BOOL bAjustBrightness=FALSE;
BOOL bAjustContrast=FALSE;
BOOL bAjustLimit=FALSE;
int npos1;
char str[36];
int channel;
channel=GetPrivateProfileInt("xianzhen","channel",42,InitDir2);
pScanner->m_nColor=GetPrivateProfileInt("color num","color",16777216,InitDir2);
switch(nSBCode)
{
//拖动滚动条
case SB_THUMBTRACK:
//调整明度滚动条
if(pScrollBar==&m_ctrlBrightness)
{
//移动滚动条并刷新
m_ctrlBrightness.SetScrollPos( nPos );
//得到滚动条的位置
m_nBrightness = m_ctrlBrightness.GetScrollPos( );
bAjustBrightness = TRUE;
if(nPos>128)
{
npos1=(nPos-128)*100/128;
SetDlgItemInt(IDC_STATIC_B,npos1,TRUE);
}
else
{
npos1=(128-nPos)*100/128;
SetDlgItemInt(IDC_STATIC_B,-npos1,TRUE);
}
if(pScanner->m_nColor==16777216)
{
sprintf(str, "%d", nPos);
if(m_sChannel=="主通道")
{
WritePrivateProfileString("pbrightness2", "brightM", str, InitDir2);
WritePrivateProfileString("pbrightness2", "brightR", str, InitDir2);
WritePrivateProfileString("pbrightness2", "brightG", str, InitDir2);
WritePrivateProfileString("pbrightness2", "brightB", str, InitDir2);
}
if(m_sChannel=="红通道")
{
WritePrivateProfileString("pbrightness2", "brightR", str, InitDir2);
}
if(m_sChannel=="绿通道")
{
WritePrivateProfileString("pbrightness2", "brightG", str, InitDir2);
}
if(m_sChannel=="蓝通道")
{
WritePrivateProfileString("pbrightness2", "brightB", str, InitDir2);
}
}
else
{
sprintf(str, "%d", nPos);
if(channel==44)//红色通道
{
WritePrivateProfileString("pbrightness2", "brightR", str, InitDir2);
}
if(channel==42)//绿色通道
{
WritePrivateProfileString("pbrightness2", "brightG", str, InitDir2);
}
if(channel==41)//蓝色通道
{
WritePrivateProfileString("pbrightness2", "brightB", str, InitDir2);
}
}
}
//调整对比度滚动条
if(pScrollBar==&m_ctrlContrast)
{
m_ctrlContrast.SetScrollPos( nPos );
m_nContrast = nPos;
bAjustContrast = TRUE;
if(nPos>128)
{
npos1=(nPos-128)*100/128;
SetDlgItemInt(IDC_STATIC_C,npos1,TRUE);
}
else
{
npos1=(128-nPos)*100/128;
SetDlgItemInt(IDC_STATIC_C,-npos1,TRUE);
}
if(pScanner->m_nColor==16777216)
{
sprintf(str, "%d", nPos);
if(m_sChannel=="主通道")
{
WritePrivateProfileString("pcontrast2", "contrastM", str, InitDir2);
WritePrivateProfileString("pcontrast2", "contrastR", str, InitDir2);
WritePrivateProfileString("pcontrast2", "contrastG", str, InitDir2);
WritePrivateProfileString("pcontrast2", "contrastB", str, InitDir2);
}
if(m_sChannel=="红通道")
{
WritePrivateProfileString("pcontrast2", "contrastR", str, InitDir2);
}
if(m_sChannel=="绿通道")
{
WritePrivateProfileString("pcontrast2", "contrastG", str, InitDir2);
}
if(m_sChannel=="蓝通道")
{
WritePrivateProfileString("pcontrast2", "contrastB", str, InitDir2);
}
}
else
{
sprintf(str, "%d", nPos);
if(channel==44)//红色通道
{
WritePrivateProfileString("pcontrast2", "contrastR", str, InitDir2);
}
if(channel==42)//绿色通道
{
WritePrivateProfileString("pcontrast2", "contrastG", str, InitDir2);
}
if(channel==41)//蓝色通道
{
WritePrivateProfileString("pcontrast2", "contrastB", str, InitDir2);
}
}
}
//黑白二值的阈值
if(pScrollBar==&m_ctrlLimit)
{
m_ctrlLimit.SetScrollPos( nPos );
m_nLimit = nPos;
bAjustLimit = TRUE;
SetDlgItemInt(IDC_STATIC_LIMIT,nPos,TRUE);
if(channel==44)
{
sprintf(str, "%d", nPos);
WritePrivateProfileString("plimit2", "limitR", str, InitDir2);
}
if(channel==42)
{
sprintf(str, "%d", nPos);
WritePrivateProfileString("plimit2", "limitG", str, InitDir2);
}
if(channel==41)
{
sprintf(str, "%d", nPos);
WritePrivateProfileString("plimit2", "limitB", str, InitDir2);
}
}
break;
//用右箭头调整滚动条并间隔为5个单位
case SB_LINERIGHT:
//调整明度滚动条
if(pScrollBar==&m_ctrlBrightness)
{
nPos = m_ctrlBrightness.GetScrollPos();
if(nPos+5>=255)
nPos = 255;
else
nPos = nPos+5;
m_ctrlBrightness.SetScrollPos( nPos );
m_nBrightness = nPos;
bAjustBrightness = TRUE;
if(nPos>128)
{
npos1=(nPos-128)*100/128;
SetDlgItemInt(IDC_STATIC_B,npos1,TRUE);
}
else
{
npos1=(128-nPos)*100/128;
SetDlgItemInt(IDC_STATIC_B,-npos1,TRUE);
}
if(pScanner->m_nColor==16777216)
{
sprintf(str, "%d", nPos);
if(m_sChannel=="主通道")
{
WritePrivateProfileString("pbrightness2", "brightM", str, InitDir2);
WritePrivateProfileString("pbrightness2", "brightR", str, InitDir2);
WritePrivateProfileString("pbrightness2", "brightG", str, InitDir2);
WritePrivateProfileString("pbrightness2", "brightB", str, InitDir2);
}
if(m_sChannel=="红通道")
{
WritePrivateProfileString("pbrightness2", "brightR", str, InitDir2);
}
if(m_sChannel=="绿通道")
{
WritePrivateProfileString("pbrightness2", "brightG", str, InitDir2);
}
if(m_sChannel=="蓝通道")
{
WritePrivateProfileString("pbrightness2", "brightB", str, InitDir2);
}
}
else
{
sprintf(str, "%d", nPos);
if(channel==44)//红色通道
{
WritePrivateProfileString("pbrightness2", "brightR", str, InitDir2);
}
if(channel==42)//绿色通道
{
WritePrivateProfileString("pbrightness2", "brightG", str, InitDir2);
}
if(channel==41)//蓝色通道
{
WritePrivateProfileString("pbrightness2", "brightB", str, InitDir2);
}
}
}
//调整对比度滚动条
if(pScrollBar==&m_ctrlContrast)
{
nPos = m_ctrlContrast.GetScrollPos();
if(nPos+5>=255)
nPos = 255;
else
nPos = nPos+5;
m_ctrlContrast.SetScrollPos( nPos );
m_nContrast = nPos;
bAjustContrast = TRUE;
if(nPos>128)
{
npos1=(nPos-128)*100/128;
SetDlgItemInt(IDC_STATIC_C,npos1,TRUE);
}
else
{
npos1=(128-nPos)*100/128;
SetDlgItemInt(IDC_STATIC_C,-npos1,TRUE);
}
if(pScanner->m_nColor==16777216)
{
sprintf(str, "%d", nPos);
if(m_sChannel=="主通道")
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -