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

📄 bcedlg.cpp

📁 又VC++实现的基于TWAIN的扫描仪图像输入处理软件
💻 CPP
📖 第 1 页 / 共 3 页
字号:
                 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)
		{
			nPos = m_ctrlLimit.GetScrollPos();
			if(nPos+5>=255)
				nPos = 255;
			else
				nPos = nPos+5;
			
			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_LINELEFT: 
		//调整明度滚动条
		if(pScrollBar==&m_ctrlBrightness)
		{
			nPos = m_ctrlBrightness.GetScrollPos();
			if(nPos<=4)
				nPos=0;
			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<=4)
				nPos=0;
			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=="主通道")
			  {
                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)
		{
			nPos = m_ctrlLimit.GetScrollPos();
			if(nPos<=4)
				nPos = 0;
			else
				nPos=nPos-5;
			
			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;

	}

	//调整明度滚动条调用AIEDlg中的函数
	if(bAjustBrightness==TRUE)
	{
	   ((CAIEDlg*)m_pParent)->AdjustPreBrightness();
	}
	//调整对比度滚动条调用AIEDlg中的函数
	if(bAjustContrast==TRUE)
	{
	   ((CAIEDlg*)m_pParent)->AdjustPreContrast();
	}
    //调整阈值滚动条调用AIEDlg中的函数
	if(bAjustLimit==TRUE)
	{  
     
    	((CAIEDlg*)m_pParent)->single=TRUE;	//WZL 2004-6-18


	   pScanner->m_nColor=GetPrivateProfileInt("color num","color",16777216,InitDir2); 
       channel=GetPrivateProfileInt("xianzhen","channel",42,InitDir2);
       if(pScanner->m_nColor==16777216)
	   {
         GetDlgItemText(IDC_CHANNEL,m_sChannel);
	   }
       else
	   {
          channel=GetPrivateProfileInt("xianzhen","channel",42,InitDir2);
          if(channel==44)//红色通道
		  {
            m_sChannel="红通道";
		  }
	     if(channel==42)//绿色通道
		 {
           m_sChannel="绿通道";
		 }
	     if(channel==41)//蓝色通道
		 {
           m_sChannel="蓝通道";
		 }
	   }
	  ((CAIEDlg*)m_pParent)->be=TRUE;
      if(m_sChannel=="主通道") 
      ((CAIEDlg*)m_pParent)->AdjustPreLimit(m_nLimit,MASTERCHANNEL);
      if(m_sChannel=="红通道")
      ((CAIEDlg*)m_pParent)->AdjustPreLimit(m_nLimit,REDCHANNEL);
      if(m_sChannel=="绿通道")
      ((CAIEDlg*)m_pParent)->AdjustPreLimit(m_nLimit,GREENCHANNEL);
      if(m_sChannel=="蓝通道")
      ((CAIEDlg*)m_pParent)->AdjustPreLimit(m_nLimit,BLUECHANNEL);
	}
}
//////////////////////////////////////////////////////////////////////////
//在产生对话框时首先响应消息WM_INITDIALOG,函数OnInitDialog()被调用      /
//如果用户右特殊的初始化要求,可自行写此函数                             /
//////////////////////////////////////////////////////////////////////////

//在显示对话框之前,首先初始化对话框的值
BOOL CBCEDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	//明度范围及滚动条的初始位置
	m_ctrlBrightness.SetScrollRange( 0, 256, FALSE );
	m_ctrlBrightness. SetScrollPos(m_nBrightness,TRUE );
	
	//对比度的范围及滚动条的初始位置
	m_ctrlContrast.SetScrollRange( 0, 256, FALSE );
	m_ctrlContrast. SetScrollPos(m_nContrast,TRUE );

	m_ctrlLimit.SetScrollRange( 0, 256, FALSE );
	m_ctrlLimit. SetScrollPos(m_nLimit,TRUE );

    int npos2;
	if(m_nBrightness>128)
	{
	   npos2=(m_nBrightness-128)*100/128;
       SetDlgItemInt(IDC_STATIC_B,npos2,TRUE);
	}
	else
	{
        npos2=(128-m_nBrightness)*100/128;
        SetDlgItemInt(IDC_STATIC_B,-npos2,TRUE); 
	}
    if(m_nContrast>128)
	{
		npos2=(m_nContrast-128)*100/128;
        SetDlgItemInt(IDC_STATIC_C,npos2,TRUE);
	}
	else
	{
        npos2=(128-m_nContrast)*100/128;
        SetDlgItemInt(IDC_STATIC_C,-npos2,TRUE); 
	}

	SetDlgItemInt(IDC_STATIC_LIMIT,m_nLimit,TRUE);   
	SetDlgItemText(IDC_COMBO_CHANNEL,m_sChannel);
       
	pScanner->m_nColor=GetPrivateProfileInt("color num","color",16777216,InitDir2); 
    if(pScanner->m_nColor==16777216)
	{
	  //阈值滚动条无效
      ::EnableWindow(::GetDlgItem(this->m_hWnd,IDC_LIMIT),FALSE); 
      ::EnableWindow(::GetDlgItem(this->m_hWnd,IDC_STATIC_LIMIT),FALSE); 
	}
	if(pScanner->m_nColor==256)
	{
	  //通道选择窗口无效
      ::EnableWindow(::GetDlgItem(this->m_hWnd,IDC_CHANNEL),FALSE); 
	  //阈值滚动条无效
      ::EnableWindow(::GetDlgItem(this->m_hWnd,IDC_LIMIT),FALSE); 
      ::EnableWindow(::GetDlgItem(this->m_hWnd,IDC_STATIC_LIMIT),FALSE);
	}
    if(pScanner->m_nColor==2)
	{
     //通道选择窗口无效
     ::EnableWindow(::GetDlgItem(this->m_hWnd,IDC_CHANNEL),FALSE); 
	}
    return TRUE;  
}

///////////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////////
void CBCEDlg::OnUpdateStaticLimit() 
{
   int channel;

   channel=GetPrivateProfileInt("xianzhen","channel",42,InitDir2);
   if(((CAIEDlg*)m_pParent)->be1==TRUE)
   {
       ((CAIEDlg*)m_pParent)->be=TRUE;
	   m_ctrlLimit.SetScrollPos(m_nLimit2,TRUE);

⌨️ 快捷键说明

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