亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cedlg.cpp

?? 又VC++實現的基于TWAIN的掃描儀圖像輸入處理軟件
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
// CEDlg.cpp : implementation file
//

#include "stdafx.h"
#include "source10.h"
#include "AIEDlg.h"
#include "CEDlg.h"

#include "math.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern CAIEDlg *m_pAIEDlg;
/////////////////////////////////////////////////////////////////////////////
// CCEDlg dialog
//POINT MousePos;
CCEDlg::CCEDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CCEDlg::IDD, pParent)
{
	int i;
	COORDINATE p;

	m_nID     = CCEDlg::IDD;//IDD=IDD_AIE_CURVE
	m_pParent = pParent;//pParent=NULL

	//初始化矩形方框中索引點坐標的索引表,表明在LIST定義的兩點之間有256個
	//查詢點,它的大小為變量,隨LIST中點的個數,點與點之間的距離有關
	for(i=0;i<256;i++)
		m_Index[i] = i;
	p.x = 0;
	p.y = 0;
	//為表增加內容,表的元素反映的是點的坐標
	m_PointList.AddTail( p );
	i=0;
//	m_PointList.AddTail(i);
	p.x = 255;
	p.y = 255;
	m_PointList.AddTail( p );

	//{{AFX_DATA_INIT(CCEDlg)
	  m_sMethod = _T("Gamma");
	  m_sChannel = _T("主通道");
   	//}}AFX_DATA_INIT
}
extern CSource10App theApp;

BOOL CCEDlg::Create(void)
{
	//調用資源產生無模式的CE對話框
	return CDialog::Create(m_nID,m_pParent);
}

void CCEDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CCEDlg)
	   DDX_CBString(pDX, IDC_METHOD, m_sMethod);
	   DDX_CBString(pDX, IDC_CHANNEL, m_sChannel);
  	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CCEDlg, CDialog)
	//{{AFX_MSG_MAP(CCEDlg)
	ON_WM_PAINT()
	ON_WM_LBUTTONDOWN()
	ON_CBN_SELCHANGE(IDC_METHOD, OnSelchangeMethod)
	ON_WM_MOUSEMOVE()
	ON_WM_LBUTTONUP()
	ON_WM_TIMER()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
//響應消息調用畫線函數

void CCEDlg::OnPaint() 
{
	int i;
	POSITION position;
	COORDINATE p1,p2;
	CRect		rect;	//Histogram zoom
		
	//Get the coordination of histogram frame.
	GetDlgItem(IDC_STATIC_FRAME)->GetClientRect(rect);
	GetDlgItem(IDC_STATIC_FRAME)->ClientToScreen(rect);
	ScreenToClient(rect);

	//使用戶坐標縮小
	rect.left++;
	rect.top++;
	rect.right--;
	rect.bottom--;
	rect.right--;
	rect.bottom--;

	////////
	CPaintDC dc(this); // device context for painting
	//產生點線筆,寬度為1
	CPen newPen( PS_DOT, 1, RGB(240,240,240));//;RGB(255,0,0)	 
    //產生硬筆
	CPen MasterPen( PS_SOLID, 1, RGB(0,0,0));
	CPen RedPen( PS_SOLID, 1, RGB(255,0,0));
	CPen GreenPen( PS_SOLID, 1, RGB(0,255,0));
	CPen BluePen( PS_SOLID, 1, RGB(0,0,255));
	CPen* oldPen;
	
	//選擇新筆代替當前的筆
	oldPen=dc.SelectObject( &newPen );

	//畫水平和垂直的點劃線
	for(i=1;i<4;i++)
	{
		//horizontal
		dc.MoveTo(rect.left, rect.top+(rect.bottom-rect.top)/4*i);
		dc.LineTo(rect.right,rect.top+(rect.bottom-rect.top)/4*i);
		//vertical
		dc.MoveTo(rect.left+(rect.right-rect.left)/4*i,rect.top);
		dc.LineTo(rect.left+(rect.right-rect.left)/4*i,rect.bottom);

	}

	UpdateData(TRUE);

    if(m_sChannel=="主通道")
	{
		dc.SelectObject( &MasterPen);
	}
	if(m_sChannel=="紅通道")
	{
		dc.SelectObject( &RedPen );
	}
	if(m_sChannel=="綠通道")
	{
	   dc.SelectObject( &GreenPen );
	}
	if(m_sChannel=="藍通道")
	{
	   dc.SelectObject( &BluePen );
	}

	//根據LIST中位置點畫線
	position = m_PointList.GetHeadPosition();
	p1=m_PointList.GetNext(position);
    dc.Rectangle( (p1.x*(rect.right-rect.left))/255+rect.left-3 ,rect.bottom-(p1.y*(rect.bottom-rect.top))/255-3,
			(p1.x*(rect.right-rect.left))/255+rect.left+3 ,rect.bottom-(p1.y*(rect.bottom-rect.top))/255+3 );

	dc.MoveTo( (p1.x*(rect.right-rect.left))/255+rect.left ,rect.bottom-(p1.y*(rect.bottom-rect.top))/255);
	while( position!=NULL )
	{
	
		p2=m_PointList.GetNext(position);
		dc.LineTo((p2.x*(rect.right-rect.left))/255+rect.left ,rect.bottom-(p2.y*(rect.bottom-rect.top))/255);
		p1=p2;
		
		//在筆的起始點畫一個小矩形框 .
		dc.Rectangle( (p1.x*(rect.right-rect.left))/255+rect.left-3 ,rect.bottom-(p1.y*(rect.bottom-rect.top))/255-3,
			(p1.x*(rect.right-rect.left))/255+rect.left+3 ,rect.bottom-(p1.y*(rect.bottom-rect.top))/255+3 );
		//移動筆到下一個點
		dc.MoveTo( (p1.x*(rect.right-rect.left))/255+rect.left ,rect.bottom-(p1.y*(rect.bottom-rect.top))/255);
	};

	//恢復初始筆即點線筆
	dc.SelectObject( oldPen );

}

//////////////////////////////////////////////////////////////////////////////////////////
//
void CALLBACK EXPORT MyOnTimer(struct HWND__ *,unsigned int,unsigned int,unsigned long);

//CE對話框前響應WM_INITDIALOG消息調用初始化函數
BOOL CCEDlg::OnInitDialog() 
{
	COORDINATE p;
	int i;

    
	CDialog::OnInitDialog();
	if(m_sMethod=="Gamma")
	{
         ((CAIEDlg*)m_pParent)->method=FALSE;
		//由繼承知表中已存在兩個元素
		//移走隊尾元素并返回其值
		m_PointList.RemoveTail();
		//表中增加元素,共27個元素即位置點
		for(i=1;i<26;i++)
		{
			p.x=10*i;
			p.y=(int)(255*pow(p.x/255.0,0.5));
			m_PointList.AddTail(p);
		}
		p.x=255;
		p.y=255;
		m_PointList.AddTail(p);

		//調用函數產生Gamma索引值數組
		Updatem_IndexfromGamma( 0.5 );		
		
	}
	// TODO: Add extra initialization here
	
	m_bDragLines = FALSE;
	m_bDragGamma = FALSE;

	SetTimer( 1, 2000, MyOnTimer);	return TRUE;  
}

//選擇參數矯正的方法(GAMMA,LINE)缺省為GAMMA
void CCEDlg::OnSelchangeMethod() 
{
	COORDINATE p;
    CRect rect;
     int i;
	UpdateData(TRUE);
	if(m_sMethod=="Line")
	{
		((CAIEDlg*)m_pParent)->method=TRUE;
		m_PointList.RemoveAll();
		//增加新的元素
		p.x=0;
		p.y=0;
		m_PointList.AddTail(p);
		p.x=255;
		p.y=255;
		m_PointList.AddTail(p);
	}
	else
	{
       ((CAIEDlg*)m_pParent)->method=FALSE;
 
        m_PointList.RemoveAll();
         p.x=0;
		 p.y=0;
         m_PointList.AddTail(p);
		//表中增加元素,共27個元素即位置點
		for(i=1;i<26;i++)
		{
			p.x=10*i;
			p.y=(int)(255*pow(p.x/255.0,0.5));
			m_PointList.AddTail(p);
		}
		p.x=255;
		p.y=255;
		m_PointList.AddTail(p);
	}
    
	GetDlgItem(IDC_STATIC_FRAME)->GetClientRect(rect);
	//將RECT中的用戶坐標轉換為系統坐標
	GetDlgItem(IDC_STATIC_FRAME)->ClientToScreen(rect);
	ScreenToClient(rect);
    InvalidateRect( &rect, TRUE ); 
}
//////////////////////////////////////////////////////////////////////////////////////////////

//在當前窗口下鼠標左鍵按下時調用此函數
void CCEDlg::OnLButtonDown(UINT nFlags, CPoint point) 
{
	POSITION position;
	COORDINATE NewNod;
	CRect rect;
	double fGamma;
	int i;

	GetDlgItem(IDC_STATIC_FRAME)->GetClientRect(rect);
	GetDlgItem(IDC_STATIC_FRAME)->ClientToScreen(rect);
	ScreenToClient(rect);

	if(point.x<=rect.right&&point.x>=rect.left&&point.y<=rect.bottom&&point.y>=rect.top)
	{
		UpdateData(TRUE);

		//矯正方法為LINE,LINE線上點的個數隨鼠標按下點的增多而增加
		//LIST表的大小是變化的,索引表也隨之而變
		if(m_sMethod=="Line")
		{
		  if( MouseInSlidePos(point) )
		  {
			m_bDragLines = TRUE;
		  }
		  else
		  {
			//插入新點并畫新線
			position = m_PointList.GetHeadPosition();		
			while( position!=NULL )
			{
			//從頭點開始直到找到比按下點大的點,跳出循環
			  NewNod=m_PointList.GetNext(position);
			  if(NewNod.x>=(point.x-rect.left)*255/(rect.right-rect.left))
			   break;
			}
			//修正按下點的位置值
			NewNod.x = (point.x-rect.left)*255/(rect.right-rect.left);
			NewNod.y = (rect.bottom-point.y)*255/(rect.bottom-rect.top);
			if(position==NULL)
			{
			//沒有比按下點大的點,取表尾點
				position=m_PointList.GetTailPosition();
                m_PointList.InsertBefore(position,NewNod);
			}
			else
			{
				m_PointList.GetPrev(position);
                m_PointList.GetPrev(position);
				m_PointList.InsertAfter(position,NewNod);
			}
			//修正索引位置的索引表
			Updatem_IndexfromLines( );
			InvalidateRect( &rect, TRUE );	
		}
	}

//矯正GAMMA曲線的方法,GAMMA曲線中LIST中有27個位置點
//矯正的過程是隨著按下點的位置重新計算27個點位置,同時修正索引表
		if(m_sMethod=="Gamma")
		{
		  if( MouseInSlidePos(point) )
		  {
			m_bDragGamma = TRUE;
		  }
		  else
		  {
			NewNod.x = (point.x-rect.left)*255/(rect.right-rect.left);
			NewNod.y = (rect.bottom-point.y)*255/(rect.bottom-rect.top);
			if(NewNod.x==0||NewNod.y==0)
				return;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品在线免费播放| 亚洲一区二区三区四区在线观看 | 日本不卡视频在线观看| 久久99蜜桃精品| 欧美四级电影在线观看| 久久综合狠狠综合久久综合88| 亚洲欧美日韩电影| 国产一区二区在线观看免费| 欧美日本一道本在线视频| 国产精品区一区二区三区| 青椒成人免费视频| 欧美日韩中字一区| 中文字幕在线一区免费| 黄色日韩三级电影| 91精品欧美福利在线观看| 一区二区三区免费看视频| 成人av免费观看| 国产片一区二区三区| 日本亚洲视频在线| 欧美午夜免费电影| 亚洲丝袜美腿综合| 成人动漫一区二区在线| 久久先锋影音av鲁色资源网| 免费成人在线视频观看| 欧美人体做爰大胆视频| 亚洲美女视频在线观看| av动漫一区二区| 亚洲欧洲精品一区二区精品久久久| 国产传媒日韩欧美成人| 精品av综合导航| 激情丁香综合五月| 日韩一区二区三区电影在线观看| 五月婷婷综合激情| 在线不卡中文字幕播放| 日韩黄色免费网站| 7777精品伊人久久久大香线蕉 | 99久精品国产| 国产精品国产三级国产| av电影在线观看一区| 中文字幕一区日韩精品欧美| 成人动漫精品一区二区| 亚洲欧美日韩国产综合在线| 色狠狠桃花综合| 亚洲综合区在线| 欧美日韩精品电影| 久久超碰97人人做人人爱| 欧美变态tickle挠乳网站| 精品一区二区免费视频| 国产精品无遮挡| 91玉足脚交白嫩脚丫在线播放| 亚洲老司机在线| 欧美高清dvd| 久久精品国产久精国产| 久久精品一区二区三区不卡牛牛 | 久久久精品蜜桃| av电影在线不卡| 五月天激情综合网| 26uuu亚洲综合色欧美| 成人精品视频一区二区三区 | 99re这里只有精品6| 洋洋av久久久久久久一区| 欧美精品久久天天躁| 精品一区二区在线视频| 中文字幕亚洲成人| 91麻豆精品国产无毒不卡在线观看| 七七婷婷婷婷精品国产| 中文字幕电影一区| 欧美日韩国产一区二区三区地区| 国产一区二区三区精品欧美日韩一区二区三区 | 欧美videos大乳护士334| 国产成人综合自拍| 亚洲成av人片在线| 国产欧美精品一区二区三区四区| 在线视频一区二区三区| 裸体一区二区三区| 国产精品三级av在线播放| 91九色02白丝porn| 国内欧美视频一区二区 | 亚洲另类一区二区| 精品国精品自拍自在线| 色999日韩国产欧美一区二区| 麻豆精品新av中文字幕| 一区二区三区国产精华| 久久久噜噜噜久噜久久综合| 欧美午夜精品久久久久久超碰| 国产一区二区三区四区五区美女 | 日韩成人免费电影| 一区视频在线播放| 欧美精品一区二区不卡| 欧美日韩一本到| 成人激情图片网| 久久精品国产久精国产爱| 亚洲午夜三级在线| 欧美国产一区在线| xfplay精品久久| 7777女厕盗摄久久久| 在线看日韩精品电影| 不卡一区二区中文字幕| 狠狠色丁香久久婷婷综| 偷拍一区二区三区| 一区二区高清免费观看影视大全| 中文字幕二三区不卡| 久久老女人爱爱| 欧美成人乱码一区二区三区| 欧美日韩一区 二区 三区 久久精品| 丁香婷婷综合激情五月色| 久久99最新地址| 另类小说综合欧美亚洲| 午夜精品久久久久久久久 | 日本一区二区三区四区| 久久综合九色综合欧美98| 日韩一区二区三免费高清| 欧美精品99久久久**| 欧美日韩一区二区欧美激情 | 亚洲黄一区二区三区| 亚洲人精品一区| 亚洲欧美国产高清| 亚洲宅男天堂在线观看无病毒| 中文字幕在线不卡国产视频| 国产精品美女久久久久aⅴ | 国产麻豆精品久久一二三| 蜜臀av性久久久久蜜臀aⅴ | 午夜视频一区二区| 亚洲国产cao| 日韩高清欧美激情| 美脚の诱脚舐め脚责91| 九色综合狠狠综合久久| 狠狠色丁香婷综合久久| 国产盗摄视频一区二区三区| 成+人+亚洲+综合天堂| 91麻豆免费观看| 欧美午夜理伦三级在线观看| 欧美另类videos死尸| 日韩一级黄色片| 国产日韩欧美亚洲| 亚洲精品日韩专区silk| 日韩精品一二三区| 极品美女销魂一区二区三区免费| 国产精品亚洲第一区在线暖暖韩国 | 国产成人在线色| 91丨九色丨黑人外教| 欧美日韩电影在线| 精品入口麻豆88视频| 国产精品欧美一区喷水| 樱花草国产18久久久久| 日韩va亚洲va欧美va久久| 激情图片小说一区| 在线日韩一区二区| 日韩一区二区在线看片| 国产精品久久久久四虎| 久久精品99国产国产精| 国产91在线看| 4438x成人网最大色成网站| 久久综合给合久久狠狠狠97色69| 1024国产精品| 久久99日本精品| 91官网在线免费观看| 精品sm在线观看| 一区二区高清免费观看影视大全 | 樱桃国产成人精品视频| 精品亚洲porn| 91精品办公室少妇高潮对白| 欧美mv和日韩mv国产网站| 一区二区三区不卡在线观看 | 免费观看久久久4p| 91小宝寻花一区二区三区| 欧美丰满少妇xxxxx高潮对白 | 成人午夜私人影院| 欧美高清dvd| 亚洲私人影院在线观看| 国内外成人在线| 91精品国产综合久久福利| 国产精品久线在线观看| 极品瑜伽女神91| 777欧美精品| 亚洲一区二区三区激情| 99这里都是精品| 久久久久久**毛片大全| 麻豆成人免费电影| 欧美日韩精品一二三区| 日韩美女视频19| 成人性色生活片| 欧美大片拔萝卜| 日韩国产一区二| 欧美性受xxxx黑人xyx性爽| 国产清纯美女被跳蛋高潮一区二区久久w| 日韩高清在线电影| 欧美日韩国产一级| 亚洲在线视频一区| 在线视频亚洲一区| 亚洲卡通欧美制服中文| 91片在线免费观看| 亚洲免费视频成人| 日本国产一区二区| 亚洲男同性恋视频| 在线观看日韩高清av| 亚洲欧美国产高清| 在线一区二区观看| 亚洲一区二区三区影院| 欧美天堂亚洲电影院在线播放|