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

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

?? canvassize.cpp

?? 《精通 vc++ 圖像編程》的源代碼
?? CPP
字號:
// CanvasSize.cpp : implementation file
//

#include "stdafx.h"
#include "ImageBoard.h"
#include "CanvasSize.h"

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

/////////////////////////////////////////////////////////////////////////////
// CCanvasSize dialog


CCanvasSize::CCanvasSize(int nWidth, int nHeight, CWnd* pParent /*=NULL*/)
	: CDialog(CCanvasSize::IDD, pParent)
{
	CString strH, strW;
	strH.Format("%d", nHeight);
	strW.Format("%d", nWidth);
	//{{AFX_DATA_INIT(CCanvasSize)
	m_bProportional = TRUE;
	m_strHeight = strH;
	m_strWidth = strW;
	//}}AFX_DATA_INIT
	m_fRatio = (double)nHeight/(double)nWidth;
	m_nUnit	 = 2;
	m_nPosition = 5;		//Center;
	m_nWidth  = nWidth;
	m_nHeight = nHeight;
	m_nWidth0  = m_nWidth;
	m_nHeight0 = m_nHeight;
}


void CCanvasSize::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CCanvasSize)
	DDX_Control(pDX, IDC_UR, m_btUR);
	DDX_Control(pDX, IDC_UP, m_btUp);
	DDX_Control(pDX, IDC_UL, m_btUL);
	DDX_Control(pDX, IDC_RIGHT, m_btRight);
	DDX_Control(pDX, IDC_LEFT, m_btLeft);
	DDX_Control(pDX, IDC_DR, m_btDR);
	DDX_Control(pDX, IDC_DOWN, m_btDown);
	DDX_Control(pDX, IDC_DL, m_btDL);
	DDX_Control(pDX, IDC_CENTER, m_btCenter);
	DDX_Check(pDX, IDC_PROPORTIONAL, m_bProportional);
	DDX_Text(pDX, IDC_HEIGHT, m_strHeight);
	DDX_Text(pDX, IDC_WIDTH, m_strWidth);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CCanvasSize, CDialog)
	//{{AFX_MSG_MAP(CCanvasSize)
	ON_BN_CLICKED(IDC_CENTER, OnCenter)
	ON_BN_CLICKED(IDC_CM, OnCm)
	ON_BN_CLICKED(IDC_DL, OnDl)
	ON_BN_CLICKED(IDC_DOWN, OnDown)
	ON_BN_CLICKED(IDC_DR, OnDr)
	ON_EN_CHANGE(IDC_HEIGHT, OnChangeHeight)
	ON_BN_CLICKED(IDC_INCH, OnInch)
	ON_BN_CLICKED(IDC_LEFT, OnLeft)
	ON_BN_CLICKED(IDC_PIXEL, OnPixel)
	ON_BN_CLICKED(IDC_PROPORTIONAL, OnProportional)
	ON_BN_CLICKED(IDC_RESET, OnReset)
	ON_BN_CLICKED(IDC_RIGHT, OnRight)
	ON_BN_CLICKED(IDC_UL, OnUl)
	ON_BN_CLICKED(IDC_UP, OnUp)
	ON_BN_CLICKED(IDC_UR, OnUr)
	ON_EN_CHANGE(IDC_WIDTH, OnChangeWidth)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CCanvasSize message handlers

BOOL CCanvasSize::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	CClientDC dc(this);
	m_nPixelsPInchX = dc.GetDeviceCaps(LOGPIXELSX);
	m_nPixelsPInchY = dc.GetDeviceCaps(LOGPIXELSY);

	UpdateData(FALSE);

	// initialize position picture
	VERIFY(m_btUL.LoadBitmaps((m_nPosition==1 )? IDB_PHOTO:IDB_BLANK, NULL, NULL));
	m_btUL.Invalidate();
	VERIFY(m_btUp.LoadBitmaps((m_nPosition==2 )? IDB_PHOTO:IDB_BLANK, NULL, NULL));
	m_btUp.Invalidate();
	VERIFY(m_btUR.LoadBitmaps((m_nPosition==3 )? IDB_PHOTO:IDB_BLANK, NULL, NULL));
	m_btUR.Invalidate();
	VERIFY(m_btLeft.LoadBitmaps((m_nPosition==4 )? IDB_PHOTO:IDB_BLANK, NULL, NULL));
	m_btLeft.Invalidate();
	VERIFY(m_btCenter.LoadBitmaps((m_nPosition==5 )? IDB_PHOTO:IDB_BLANK, NULL, NULL));
	m_btCenter.Invalidate();
	VERIFY(m_btRight.LoadBitmaps((m_nPosition==6 )? IDB_PHOTO:IDB_BLANK, NULL, NULL));
	m_btRight.Invalidate();
	VERIFY(m_btDL.LoadBitmaps((m_nPosition==7 )? IDB_PHOTO:IDB_BLANK, NULL, NULL));
	m_btDL.Invalidate();
	VERIFY(m_btDown.LoadBitmaps((m_nPosition==8 )? IDB_PHOTO:IDB_BLANK, NULL, NULL));
	m_btDown.Invalidate();
	VERIFY(m_btDR.LoadBitmaps((m_nPosition==9)? IDB_PHOTO:IDB_BLANK, NULL, NULL));
	m_btDR.Invalidate();
	
	switch (m_nUnit)
	{
	case 0:
		((CButton *)GetDlgItem(IDC_CM))->SetCheck(1);
		break;
	case 1:
		((CButton *)GetDlgItem(IDC_INCH))->SetCheck(1);
		break;
	case 2:
		((CButton *)GetDlgItem(IDC_PIXEL))->SetCheck(1);
		break;
	}

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


void CCanvasSize::OnCm() 
{
	m_nUnit = 0;
	
	m_strWidth.Format("%.2f", ((double)m_nWidth/(double)m_nPixelsPInchX)*2.54);
	m_strHeight.Format("%.2f", ((double)m_nHeight/(double)m_nPixelsPInchY)*2.54);
	UpdateData(FALSE);
}

void CCanvasSize::OnInch() 
{
	m_nUnit = 1;
	
	m_strWidth.Format("%.2f", (double)m_nWidth/(double)m_nPixelsPInchX);
	m_strHeight.Format("%.2f", (double)m_nHeight/(double)m_nPixelsPInchY);
	UpdateData(FALSE);
}

void CCanvasSize::OnPixel() 
{
	m_nUnit = 2;
	
	m_strWidth.Format("%d", m_nWidth);
	m_strHeight.Format("%d", m_nHeight);
	UpdateData(FALSE);
}


void CCanvasSize::OnCenter() 
{
	int nOldPosition = m_nPosition;
	m_nPosition = 5;
	SetPositionButtonsImage(nOldPosition);
}

void CCanvasSize::OnDl() 
{
	int nOldPosition = m_nPosition;
	m_nPosition = 7;
	SetPositionButtonsImage(nOldPosition);
}

void CCanvasSize::OnDown() 
{
	int nOldPosition = m_nPosition;
	m_nPosition = 8;
	SetPositionButtonsImage(nOldPosition);
}

void CCanvasSize::OnDr() 
{
	int nOldPosition = m_nPosition;
	m_nPosition = 9;
	SetPositionButtonsImage(nOldPosition);
}

void CCanvasSize::OnLeft() 
{
	int nOldPosition = m_nPosition;
	m_nPosition = 4;
	SetPositionButtonsImage(nOldPosition);
}

void CCanvasSize::OnRight() 
{
	int nOldPosition = m_nPosition;
	m_nPosition = 6;
	SetPositionButtonsImage(nOldPosition);
}

void CCanvasSize::OnUl() 
{
	int nOldPosition = m_nPosition;
	m_nPosition = 1;
	SetPositionButtonsImage(nOldPosition);
}

void CCanvasSize::OnUp() 
{
	int nOldPosition = m_nPosition;
	m_nPosition = 2;
	SetPositionButtonsImage(nOldPosition);
}

void CCanvasSize::OnUr() 
{
	int nOldPosition = m_nPosition;
	m_nPosition = 3;
	SetPositionButtonsImage(nOldPosition);
}

void CCanvasSize::OnProportional() 
{
	UpdateData();
	if (m_bProportional)
	{
		m_nHeight = (int)(m_nWidth*m_fRatio);
		UpdateData(FALSE);
	}
}

void CCanvasSize::OnReset() 
{
	m_nWidth = m_nWidth0;
	m_nHeight = m_nHeight0;

	if (m_nUnit == 0)
	{
		m_strWidth.Format("%.2f",((double)m_nWidth/(double)m_nPixelsPInchX)*2.54);
		m_strHeight.Format("%.2f",((double)m_nHeight/(double)m_nPixelsPInchX)*2.54);
	}
	else if (m_nUnit == 1)
	{
		m_strWidth.Format("%.2f", (double)m_nWidth/(double)m_nPixelsPInchX);
		m_strHeight.Format("%.2f", (double)m_nHeight/(double)m_nPixelsPInchX);
	}
	else if (m_nUnit == 2)
	{
		m_strWidth.Format("%d", m_nWidth);
		m_strHeight.Format("%d", m_nHeight);
	}
	UpdateData(FALSE);
}

void CCanvasSize::OnChangeHeight() 
{
	// TODO: If this is a RICHEDIT control, the control will not
	// send this notification unless you override the CDialog::OnInitDialog()
	// function and call CRichEditCtrl().SetEventMask()
	// with the ENM_CHANGE flag ORed into the mask.
	
	UpdateData();

	if (m_nUnit == 0)
		m_nHeight = (int)(atof(m_strHeight) * (double)m_nPixelsPInchY/2.54);
	else if (m_nUnit == 1)
		m_nHeight = (int)(atof(m_strHeight) * (double)m_nPixelsPInchY);
	else if (m_nUnit == 2)
		m_nHeight = atoi(m_strHeight);
	if (m_bProportional)
	{
		m_nWidth = (int)(m_nHeight/m_fRatio);
		m_strWidth.Format("%d", m_nWidth);
		UpdateData(FALSE);
	}
}

void CCanvasSize::OnChangeWidth() 
{
	// TODO: If this is a RICHEDIT control, the control will not
	// send this notification unless you override the CDialog::OnInitDialog()
	// function and call CRichEditCtrl().SetEventMask()
	// with the ENM_CHANGE flag ORed into the mask.
	
	UpdateData();

	if (m_nUnit == 0)
		m_nWidth = (int)(atof(m_strWidth) * (double)m_nPixelsPInchX/2.54);
	else if (m_nUnit == 1)
		m_nWidth = (int)(atof(m_strWidth) * (double)m_nPixelsPInchX);
	else if (m_nUnit == 2)
		m_nWidth = atoi(m_strWidth);
	if (m_bProportional)
	{
		m_nHeight = (int)(m_nWidth*m_fRatio);
		m_strHeight.Format("%d", m_nHeight);
		UpdateData(FALSE);
	}
}

void CCanvasSize::SetPositionButtonsImage(int nOldPosition)
{
	if (nOldPosition == m_nPosition)
		return;

	switch (nOldPosition)
	{
		case 1:
				VERIFY(m_btUL.LoadBitmaps(IDB_BLANK, NULL, NULL));
				m_btUL.Invalidate();
				break;
		case 2:
				VERIFY(m_btUp.LoadBitmaps(IDB_BLANK, NULL, NULL));
				m_btUp.Invalidate();
				break;
		case 3:
				VERIFY(m_btUR.LoadBitmaps(IDB_BLANK, NULL, NULL));
				m_btUR.Invalidate();
				break;
		case 4:
				VERIFY(m_btLeft.LoadBitmaps(IDB_BLANK, NULL, NULL));
				m_btLeft.Invalidate();
				break;
		case 5:
				VERIFY(m_btCenter.LoadBitmaps(IDB_BLANK, NULL, NULL));
				m_btCenter.Invalidate();
				break;
		case 6:
				VERIFY(m_btRight.LoadBitmaps(IDB_BLANK, NULL, NULL));
				m_btRight.Invalidate();
				break;
		case 7:
				VERIFY(m_btDL.LoadBitmaps(IDB_BLANK, NULL, NULL));
				m_btDL.Invalidate();
				break;
		case 8:
				VERIFY(m_btDown.LoadBitmaps(IDB_BLANK, NULL, NULL));
				m_btDown.Invalidate();
				break;
		case 9:
				VERIFY(m_btDR.LoadBitmaps(IDB_BLANK, NULL, NULL));
				m_btDR.Invalidate();
				break;
	}

	switch (m_nPosition)
	{
		case 1:
				VERIFY(m_btUL.LoadBitmaps(IDB_PHOTO, NULL, NULL));
				m_btUL.Invalidate();
				break;
		case 2:
				VERIFY(m_btUp.LoadBitmaps(IDB_PHOTO, NULL, NULL));
				m_btUp.Invalidate();
				break;
		case 3:
				VERIFY(m_btUR.LoadBitmaps(IDB_PHOTO, NULL, NULL));
				m_btUR.Invalidate();
				break;
		case 4:
				VERIFY(m_btLeft.LoadBitmaps(IDB_PHOTO, NULL, NULL));
				m_btLeft.Invalidate();
				break;
		case 5:
				VERIFY(m_btCenter.LoadBitmaps(IDB_PHOTO, NULL, NULL));
				m_btCenter.Invalidate();
				break;
		case 6:
				VERIFY(m_btRight.LoadBitmaps(IDB_PHOTO, NULL, NULL));
				m_btRight.Invalidate();
				break;
		case 7:
				VERIFY(m_btDL.LoadBitmaps(IDB_PHOTO, NULL, NULL));
				m_btDL.Invalidate();
				break;
		case 8:
				VERIFY(m_btDown.LoadBitmaps(IDB_PHOTO, NULL, NULL));
				m_btDown.Invalidate();
				break;
		case 9:
				VERIFY(m_btDR.LoadBitmaps(IDB_PHOTO, NULL, NULL));
				m_btDR.Invalidate();
				break;
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩女优av电影在线观看| 奇米888四色在线精品| 亚洲精品一区二区三区精华液 | 日韩一级欧美一级| 欧美吞精做爰啪啪高潮| 丁香婷婷综合网| 99热精品一区二区| 99九九99九九九视频精品| 国产精品69久久久久水密桃| 国产精品一区三区| 成人免费视频一区| 色婷婷综合久久久中文字幕| 欧美日韩国产综合视频在线观看 | 国内精品视频一区二区三区八戒 | jizzjizzjizz欧美| 99热在这里有精品免费| 欧美午夜精品一区| 日韩免费成人网| 国产欧美久久久精品影院| 亚洲欧美中日韩| 亚洲一级二级在线| 久久国产日韩欧美精品| 国产精品综合一区二区三区| 91在线一区二区| 67194成人在线观看| 国产欧美视频一区二区| 一区二区视频在线看| 日韩高清不卡在线| 国产不卡在线播放| 欧美色电影在线| 2023国产精品视频| 亚洲精品乱码久久久久久黑人| 日韩av中文在线观看| 国产成人综合在线| 欧美日本国产视频| 国产欧美一区二区在线| 日日摸夜夜添夜夜添亚洲女人| 粉嫩一区二区三区在线看| 欧洲视频一区二区| 国产亚洲欧美一级| 亚洲福中文字幕伊人影院| 国产麻豆91精品| 精品视频一区二区不卡| 国产免费成人在线视频| 日本麻豆一区二区三区视频| 91在线精品一区二区三区| 日韩视频在线你懂得| 亚洲精品中文字幕在线观看| 免费成人av资源网| 在线免费一区三区| 国产欧美一区二区精品秋霞影院| 午夜激情一区二区三区| 一本久久a久久精品亚洲| 久久久www成人免费毛片麻豆| 亚洲一区二区在线观看视频| 成人丝袜高跟foot| 久久久激情视频| 麻豆91精品视频| 欧美日韩一区二区在线视频| 亚洲日本va在线观看| 国产高清精品网站| 精品国产污污免费网站入口| 日韩综合在线视频| 欧美三日本三级三级在线播放| 亚洲欧洲色图综合| 成人国产精品视频| 久久久国产精华| 国产一区二区三区电影在线观看 | 91精品国产入口| 一区二区三区精品在线| 国产成人在线视频网站| 久久免费精品国产久精品久久久久| 五月天激情小说综合| 欧美中文字幕一区| 亚洲影院理伦片| 91黄视频在线观看| 一区二区三区欧美激情| 在线欧美一区二区| 亚洲男人都懂的| 色94色欧美sute亚洲线路一久| 国产精品久久久久久久久动漫| 成人午夜大片免费观看| 国产精品久久影院| 色综合久久天天| 亚洲国产裸拍裸体视频在线观看乱了 | 国产成人自拍网| 国产区在线观看成人精品| 国产精品自拍毛片| 久久久久国产免费免费| 久久精品国产亚洲高清剧情介绍 | 一区二区在线观看不卡| 欧美在线一区二区三区| 日韩激情视频在线观看| 日韩一级黄色大片| 免费在线观看一区| 精品1区2区在线观看| 成人v精品蜜桃久久一区| 亚洲欧洲另类国产综合| 亚洲成av人影院在线观看网| 日韩网站在线看片你懂的| 石原莉奈在线亚洲三区| 久久亚洲精华国产精华液| av网站一区二区三区| 亚洲最新视频在线观看| 日韩一区二区三区高清免费看看 | 自拍偷在线精品自拍偷无码专区| 欧美性视频一区二区三区| 日韩电影在线观看一区| 久久久久久久久一| 欧美影视一区二区三区| 久久精品国产秦先生| 自拍偷拍国产亚洲| 91精品国产综合久久香蕉的特点| 国v精品久久久网| 日av在线不卡| 亚洲素人一区二区| 日韩一级黄色片| 色视频欧美一区二区三区| 麻豆91免费观看| 亚洲制服丝袜av| 国产日韩v精品一区二区| 欧美日韩三级在线| 99久久精品免费精品国产| 麻豆精品一区二区| 亚洲一区中文日韩| 精品免费视频.| 欧美在线一二三四区| 不卡视频在线观看| 狠狠色狠狠色综合| 国产精品区一区二区三| 欧美mv和日韩mv的网站| 欧美日韩成人一区| 成人va在线观看| 亚洲国产精品影院| 日韩一区二区在线看| 国产成人精品午夜视频免费| 日韩在线一区二区| 亚洲最大成人网4388xx| 中文字幕不卡三区| 欧美变态tickle挠乳网站| 在线观看免费成人| 色悠久久久久综合欧美99| 99精品视频中文字幕| 国产精品18久久久久久久久 | 国产日产欧美一区| 欧美电视剧免费观看| 91麻豆精品国产91久久久更新时间 | 图片区日韩欧美亚洲| 亚洲精品成人悠悠色影视| 最新中文字幕一区二区三区 | 欧美性一区二区| 色综合久久中文综合久久牛| 99这里只有久久精品视频| www.成人网.com| 91亚洲大成网污www| 91首页免费视频| 色婷婷av一区二区三区之一色屋| 99re亚洲国产精品| 99久久精品国产毛片| 在线视频综合导航| 欧美日韩国产色站一区二区三区| 欧美三级日本三级少妇99| 欧美日本在线播放| 91麻豆精品国产91久久久久久久久 | 久久精品国产99国产| 久久99精品一区二区三区| 久久成人免费网| 狠狠久久亚洲欧美| 国产精品一卡二卡在线观看| 成人黄色在线视频| 91免费国产在线| 精品视频一区 二区 三区| 欧美高清视频一二三区 | 中文字幕免费不卡| 亚洲精品国产成人久久av盗摄| 亚洲一级电影视频| 日本午夜精品一区二区三区电影| 国内精品久久久久影院薰衣草| 国产成人免费视频| 欧美性极品少妇| 久久伊99综合婷婷久久伊| 中文字幕乱码日本亚洲一区二区| 国产精品电影一区二区三区| 性欧美疯狂xxxxbbbb| 国产一区在线观看麻豆| 一本在线高清不卡dvd| 日韩一级精品视频在线观看| 久久久国产精品麻豆| 亚洲一区在线视频| 国产精一品亚洲二区在线视频| 一本久道中文字幕精品亚洲嫩| 日韩欧美一级特黄在线播放| 欧美国产一区在线| 一级精品视频在线观看宜春院| 黄色日韩网站视频| 欧洲国内综合视频| 国产欧美一区二区精品婷婷 | 国产一区二区三区精品视频| 色婷婷精品久久二区二区蜜臀av | 国产午夜亚洲精品不卡|