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

📄 postioninfo.cpp

📁 又VC++实现的基于TWAIN的扫描仪图像输入处理软件
💻 CPP
字号:
#include "stdafx.h"
#include "source10.h"
#include "postionInfo.h"
#include  "SetScanner.h"
#include  "Scanner.h"
#include  "Settings.h"
#include  "Resource.h"
#include  "ViewWnd.h"
#include  "const.h"

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

extern CViewWnd  *pViewWnd;
extern CScanner  *pScanner;
extern CSettings *m_pSettingsWindow;
extern char InitDir2[100];

//extern CSettings *m_pSettingsWindow;

/////////////////////////////////////////////////////////////////////////////
// CpostionInfo dialog

	
CpostionInfo::CpostionInfo(CWnd* pParent /*=NULL*/)
	: CDialog(CpostionInfo::IDD, pParent)
{
    
    // CString str2;  
	//{{AFX_DATA_INIT(CpostionInfo)
	
	
	//}}AFX_DATA_INIT
    //显示扫描校正方式
	char str[36];
	int Jzmd=GetPrivateProfileInt("ScanCai_Mod","ScnCaiMod",1,InitDir2);
	switch (Jzmd)
		{
			case 0:		//底层校正扫描
				m_sJZModeD="底层校正扫描";
				break;
            case 1:		//底层校正精扫描
				m_sJZModeD="底层校正精扫描";
				break;
            case 2:		//校正参数扫描
				m_sJZModeD="校正参数扫描";
				break;
            case 3:		//校正参数精扫描
				m_sJZModeD="校正参数精扫描";
				break;
            case 4:		//不校正扫描
				m_sJZModeD="不校正扫描";
				break;
            case 5:		//感光校正参数扫描
				m_sJZModeD="感光校正参数扫描";
				break;
            case 6:		//偏移校正参数扫描
				m_sJZModeD="偏移校正参数扫描";
				break;
            case 7:	//增益校正参数扫描
				m_sJZModeD="增益校正参数扫描";
				break;

            default:
				m_sJZModeD="校正参数扫描";
				break;
		}
	
	//显示图像增强状态(缺省不增强)
//	sprintf(str, "%d", 0);
	//Write
	int itemp=GetPrivateProfileInt("Image_Enah","Enah_Enable",1,InitDir2);
	if (itemp == 0 )
	{
		m_sEnahD="不增强";
	}
	else
	{
		m_sEnahD="增强";
	}
 
	 GetPrivateProfileString("file type","type","真彩色",str,36,InitDir2);
 	 m_sType=_T(str);

     GetPrivateProfileString("scan type","type","Twain扫描",str,36,InitDir2);
 	 m_sScanType=_T(str);
     
     GetPrivateProfileString("huigui type","type","零点位置",str,36,InitDir2);
 	 m_sHuiGuiType=_T(str);
	 
	 pScanner->m_nDPI= GetPrivateProfileInt("resoultion","reso",500,InitDir2);
	 m_nRd=pScanner->m_nDPI;

	 pScanner->m_nColor= GetPrivateProfileInt("color num","color",16777216,InitDir2);
	  
	 GetPrivateProfileString("scan unit","unit","英寸",str,36,InitDir2);
     m_nUNIT=_T(str);

     channel=GetPrivateProfileInt("xianzhen","channel",42,InitDir2);
     if(channel==44)//红色通道
	 {
        m_sChannel="红色通道";
	 }
	 if(channel==42)//绿色通道
	 {
       m_sChannel="绿色通道";
	 }
	 if(channel==41)//蓝色通道
	 {
       m_sChannel="蓝色通道";
	 }

     if(m_nUNIT=="英寸")
	  {
	    m_nX10=(double)((int)(pViewWnd->m_SelectZoom.left*10/FuMian*100)/100.0);
	    m_nY10=(double)((int)(pViewWnd->m_SelectZoom.top*10/FuMian*100)/100.0);
        m_nWidth1=(double)((int)((pViewWnd->m_SelectZoom.right-pViewWnd->m_SelectZoom.left)*10/FuMian*100)/100.0);
	    m_nLength1=(double)((int)((pViewWnd->m_SelectZoom.bottom-pViewWnd->m_SelectZoom.top)*10/FuMian*100)/100.0);
	    m_nSize=m_nWidth1*m_nLength1*(pScanner->m_nDPI)*(pScanner->m_nDPI)*3/1024;
	  }
      if(m_nUNIT=="厘米") 
	  {
	    m_nX10=(double)((int)(pViewWnd->m_SelectZoom.left*10/FuMian*2.54*100)/100.0);
	    m_nY10=(double)((int)(pViewWnd->m_SelectZoom.top*10/FuMian*2.54*100)/100.0);
        m_nWidth1=(double)((int)((pViewWnd->m_SelectZoom.right-pViewWnd->m_SelectZoom.left)*10/FuMian*2.54*100)/100.0);
	    m_nLength1=(double)((int)((pViewWnd->m_SelectZoom.bottom-pViewWnd->m_SelectZoom.top)*10/FuMian*2.54*100)/100.0);
	    m_nSize=(m_nWidth1/2.54)*(m_nLength1/2.54)*(pScanner->m_nDPI)*(pScanner->m_nDPI)*3/1024;
	  }

	  switch(pScanner->m_nColor)
    {
	 case  16777216:
	   m_nSize= m_nSize;
	   break;
	 case 256:
	   m_nSize /= 3;
	   break;
	 case 2:
       m_nSize /= 24;
	  break;
   }
	m_nSize =(int)(m_nSize/1024*100)/100.0;  
	m_pParent = pParent;
 	m_nID = CpostionInfo::IDD;
}
/////////////////////////////////////////////////////////////////////////////
//产生对话框                                                               //
/////////////////////////////////////////////////////////////////////////////
BOOL CpostionInfo::Create(void)
{
  CDialog::Create(m_nID,m_pParent);
  ShowWindow(SW_SHOW);
  return TRUE;
}

void CpostionInfo::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CpostionInfo)
	    DDX_Text(pDX, IDC_EDIT_ZEROX1, m_nX10);
	    DDX_Text(pDX, IDC_EDIT_ZEROY1, m_nY10);
	    DDX_Text(pDX, IDC_EDIT_WIDTH1, m_nWidth1);
	    DDX_Text(pDX, IDC_EDIT_LENGTH1, m_nLength1);
        DDX_Text(pDX, IDC_EDIT_SIZEIMAGE, m_nSize);
	    DDX_Text(pDX, IDC_EDIT_RD,m_nRd);

		DDX_Text(pDX, IDC_EDIT_JZMode,m_sJZModeD);
		DDX_Text(pDX, IDC_EDIT_ENAH,m_sEnahD);

        DDX_Text(pDX, IDC_EDIT_TYPE,m_sType);
        DDX_Text(pDX, IDC_EDIT_SAOMIAO,m_sScanType);  
        DDX_Text(pDX, IDC_EDIT_HUIGUI,m_sHuiGuiType);
        DDX_Text(pDX, IDC_EDIT_UNIT,m_nUNIT);  
        DDX_Text(pDX, IDC_EDIT_CHANNEL,m_sChannel);  
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CpostionInfo, CDialog)
	//{{AFX_MSG_MAP(CpostionInfo)
		ON_WM_PAINT()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
//被SET和VIEW调用
////////////////////////////////////////////////////////////////////////////
void CpostionInfo::SetPosition(RECT rt,int n)
{
	UpdateData(true) ;
	   
	char str[36];
	int Jzmd=GetPrivateProfileInt("ScanCai_Mod","ScnCaiMod",1,InitDir2);
	switch (Jzmd)
		{
			case 0:		//底层校正扫描
				m_sJZModeD="底层校正扫描";
				break;
            case 1:		//底层校正精扫描
				m_sJZModeD="底层校正精扫描";
				break;
            case 2:		//校正参数扫描
				m_sJZModeD="校正参数扫描";
				break;
            case 3:		//校正参数精扫描
				m_sJZModeD="校正参数精扫描";
				break;
            case 4:		//不校正扫描
				m_sJZModeD="不校正扫描";
				break;
            case 5:		//感光校正参数扫描
				m_sJZModeD="感光校正参数扫描";
				break;
            case 6:		//偏移校正参数扫描
				m_sJZModeD="偏移校正参数扫描";
				break;
            case 7:	//增益校正参数扫描
				m_sJZModeD="增益校正参数扫描";
				break;

            default:
				m_sJZModeD="校正参数扫描";
				break;
		}
	
	//更新图像增强方式显示
	Jzmd=GetPrivateProfileInt("Image_Enah","Enah_Enable",0,InitDir2);
	if (Jzmd==0)
		{
			m_sEnahD="不增强";
		}
	else
		{
			m_sEnahD="增强";
		}
	 
   GetPrivateProfileString("file type","type","真彩色",str,36,InitDir2);
   m_sType=_T(str);
   GetPrivateProfileString("scan type","type","Twain方式",str,36,InitDir2);
   m_sScanType=_T(str);
   GetPrivateProfileString("huigui type","type","零点位置",str,36,InitDir2);
   m_sHuiGuiType=_T(str); 

   GetPrivateProfileString("scan unit","unit","英寸",str,36,InitDir2);
   m_nUNIT=_T(str);

   m_nX0=(double)((int)(rt.left/FuMian*100)/100.0);
   m_nY0=(double)((int)(rt.top/FuMian*100)/100.0);
   m_nWidth=(double)((int)(abs(rt.right-rt.left)/FuMian*100)/100.0);
   m_nLength=(double)((int)(abs(rt.bottom-rt.top)/FuMian*100)/100.0);
   
   if(m_nUNIT=="英寸")
   {
	 m_nX10=(double)((int)(rt.left/FuMian*100)/100.0);
     m_nY10=(double)((int)(rt.top/FuMian*100)/100.0);
	 m_nWidth1=(double)((int)(abs(rt.right-rt.left)/FuMian*100)/100.0);
	 m_nLength1=(double)((int)(abs(rt.bottom-rt.top)/FuMian*100)/100.0);
   }
   if(m_nUNIT=="厘米")
   {
     m_nX10=(double)((int)(rt.left/FuMian*2.54*100)/100.0);
     m_nY10=(double)((int)(rt.top/FuMian*2.54*100)/100.0);
	 m_nWidth1=(double)((int)(abs(rt.right-rt.left)/FuMian*2.54*100)/100.0);
	 m_nLength1=(double)((int)(abs(rt.bottom-rt.top)/FuMian*2.54*100)/100.0);
   }
   
   switch(pScanner->m_nColor)
   {
	 case  16777216:
	   m_nSize=m_nWidth*m_nLength*(pScanner->m_nDPI)*(pScanner->m_nDPI)*3/1024;
	   break;
	 case 256:
	   m_nSize=m_nWidth*m_nLength*(pScanner->m_nDPI)*(pScanner->m_nDPI)/1024;
	   break;
	 case 2:
       m_nSize =m_nWidth*m_nLength*(pScanner->m_nDPI)*(pScanner->m_nDPI)/8/1024;
	  break;
   }
	m_nSize = (int)(m_nSize/1024*100)/100.0;
	 
    
    if(n==0) //非预览时调用
	{
	  m_nRd=pScanner->m_nDPI;
	}
	else
	{
       m_nRd=100;
	}
    int channel;
	channel=GetPrivateProfileInt("xianzhen","channel",42,InitDir2);
    if(channel==44)//红色通道
	{
       m_sChannel="红色通道";
	}
	if(channel==42)//绿色通道
	{
       m_sChannel="绿色通道";
	}
	if(channel==41)//蓝色通道
	{
       m_sChannel="蓝色通道";
	}

    UpdateData(false);
}

⌨️ 快捷键说明

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