www.pudn.com > PositionInBmp.rar > Param.cpp


// Param.cpp : implementation file 
// 
 
#include "stdafx.h" 
#include "bmp.h" 
#include "Param.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
///////////////////////////////////////////////////////////////////////////// 
// CParam dialog 
 
 
CParam::CParam(CWnd* pParent /*=NULL*/) 
	: CDialog(CParam::IDD, pParent) 
{ 
	//{{AFX_DATA_INIT(CParam) 
	m_disp = _T(""); 
	m_H = 0; 
	m_nh = 0; 
	m_nw = 0; 
	m_W = 0; 
	m_filepath = _T(""); 
	//}}AFX_DATA_INIT 
} 
 
 
void CParam::DoDataExchange(CDataExchange* pDX) 
{ 
	CDialog::DoDataExchange(pDX); 
	//{{AFX_DATA_MAP(CParam) 
	DDX_Control(pDX, IDC_PROGRESS, m_process); 
	DDX_Text(pDX, IDC_DISP, m_disp); 
	DDX_Text(pDX, IDC_H, m_H); 
	DDX_Text(pDX, IDC_nh, m_nh); 
	DDX_Text(pDX, IDC_nw, m_nw); 
	DDX_Text(pDX, IDC_W, m_W); 
	DDX_Text(pDX, IDC_FILEPATHSTR, m_filepath); 
	//}}AFX_DATA_MAP 
} 
 
 
BEGIN_MESSAGE_MAP(CParam, CDialog) 
	//{{AFX_MSG_MAP(CParam) 
	//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
 
///////////////////////////////////////////////////////////////////////////// 
// CParam message handlers 
 
void CParam::OnOK()  
{ 
	// TODO: Add extra validation here 
	 
	CRect rect; 
	CString tmp; 
	int i, j, w, h, nw, nh, xx, yy, s = 0; 
 
	UpdateData(); 
	w = m_W; 
	h = m_H; 
	nw = m_nw; 
	nh = m_nh; 
	m_process.SetRange(0, nw * nh); 
	m_process.SetPos(0); 
	UpdateData(FALSE); 
 
	for(i = nh - 1; i >= 0; i--) 
	{ 
		yy = (1 + i + i) * height / (2 * nh); 
		rect.top = yy - h / 2; 
		rect.bottom = rect.top + h; 
		for(j = 0; j < nw; j++) 
		{ 
			xx = (1 + j + j) * width / (2 * nw); 
			rect.left = xx - w / 2; 
			rect.right = rect.left + w; 
			tmp.Format(m_filepath + "%02d%02d.bmp", nh - 1 - i, j); 
			b->Save(tmp, rect); 
			m_process.SetPos(++s); 
		} 
	} 
	AfxMessageBox("·Ö¸îÍê³É"); 
	CDialog::OnOK(); 
} 
 
void CParam::SetBmp(CBmpSpliter *bmp) 
{ 
	b = bmp; 
	width = b->GetWidth(); 
	height = b->GetHeight(); 
	m_disp.Format("%d ¡Á %d", width, height); 
}