www.pudn.com > PKEncodeDemo.zip > EncodeDlg.cpp
// EncodeDlg.cpp : implementation file
//
#include "stdafx.h"
#include "Sample.h"
#include "EncodeDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CEncodeDlg dialog
CEncodeDlg::CEncodeDlg(CWnd* pParent /*=NULL*/)
: CDialog(CEncodeDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CEncodeDlg)
m_percent = 10;
m_data = _T("");
m_isTruncated = FALSE;
m_cols = 0;
m_aspectW = 0;
m_aspectH = 0;
m_level = 9;
m_radioAspect = 0;
m_moduleRatio = 0;
m_xModule = 0;
m_rows = 0;
m_bottomSpace = 0;
m_leftSpace = 0;
m_rightSpace = 0;
m_topSpace = 0;
m_fileName = _T("");
m_startX = 0;
m_startY = 0;
m_isPaste = FALSE;
//}}AFX_DATA_INIT
}
void CEncodeDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CEncodeDlg)
DDX_Control(pDX, IDC_FILE_NAME, m_ctrFileName);
DDX_Control(pDX, IDC_START_Y, m_ctrStartY);
DDX_Control(pDX, IDC_START_X, m_ctrStartX);
DDX_Control(pDX, IDC_BUTTON_BROWSE, m_ctrBrowse);
DDX_Control(pDX, IDC_ROWS, m_ctrRows);
DDX_Control(pDX, IDC_COLS, m_ctrCols);
DDX_Control(pDX, IDC_ASPECT_W, m_ctrAspectW);
DDX_Control(pDX, IDC_ASPECT_H, m_ctrAspectH);
DDX_Control(pDX, IDC_ECC_LEVEL, m_ctrLevel);
DDX_Control(pDX, IDC_ECC_PERCENT, m_ctrPercent);
DDX_Text(pDX, IDC_ECC_PERCENT, m_percent);
DDX_Text(pDX, IDC_ENCODE_DATA, m_data);
DDX_Check(pDX, IDC_TRUNCATED, m_isTruncated);
DDX_Text(pDX, IDC_COLS, m_cols);
DDX_Text(pDX, IDC_ASPECT_W, m_aspectW);
DDX_Text(pDX, IDC_ASPECT_H, m_aspectH);
DDX_CBIndex(pDX, IDC_ECC_LEVEL, m_level);
DDX_Radio(pDX, IDC_RADIO_AESPECT, m_radioAspect);
DDX_Text(pDX, IDC_DIM_RATIO, m_moduleRatio);
DDX_Text(pDX, IDC_XDIM, m_xModule);
DDX_Text(pDX, IDC_ROWS, m_rows);
DDX_Text(pDX, IDC_BOTTOM_SPACE, m_bottomSpace);
DDX_Text(pDX, IDC_LEFT_SPACE, m_leftSpace);
DDX_Text(pDX, IDC_RIGHT_SPACE, m_rightSpace);
DDX_Text(pDX, IDC_TOP_SPACE, m_topSpace);
DDX_Text(pDX, IDC_FILE_NAME, m_fileName);
DDX_Text(pDX, IDC_START_X, m_startX);
DDX_Text(pDX, IDC_START_Y, m_startY);
DDX_Check(pDX, IDC_CHECK_WRITE_FILE, m_isPaste);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CEncodeDlg, CDialog)
//{{AFX_MSG_MAP(CEncodeDlg)
ON_CBN_SELCHANGE(IDC_ECC_LEVEL, OnSelchangeEccLevel)
ON_BN_CLICKED(IDC_RADIO_AESPECT, OnRadioAespect)
ON_BN_CLICKED(IDC_RADIO_COLUMNS, OnRadioColumns)
ON_WM_PAINT()
ON_BN_CLICKED(IDC_CHECK_WRITE_FILE, OnCheckWriteFile)
ON_BN_CLICKED(IDC_BUTTON_BROWSE, OnButtonBrowse)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CEncodeDlg message handlers
void CEncodeDlg::OnSelchangeEccLevel()
{
int ret=m_ctrLevel.GetCurSel();
if(ret != 9)
m_ctrPercent.EnableWindow(FALSE);
else
m_ctrPercent.EnableWindow(TRUE);
}
void CEncodeDlg::OnRadioAespect()
{
m_ctrAspectH.EnableWindow( TRUE );
m_ctrAspectW.EnableWindow( TRUE );
m_ctrCols.EnableWindow( FALSE );
m_ctrRows.EnableWindow( FALSE );
}
void CEncodeDlg::OnRadioColumns()
{
m_ctrAspectH.EnableWindow( FALSE );
m_ctrAspectW.EnableWindow( FALSE );
m_ctrCols.EnableWindow( TRUE );
m_ctrRows.EnableWindow( TRUE );
}
void CEncodeDlg::OnPaint()
{
CPaintDC dc(this); // device context for painting
if(m_radioAspect == 0 )
{
m_ctrCols.EnableWindow( FALSE );
m_ctrRows.EnableWindow( FALSE );
}
if(m_radioAspect == 1)
{
m_ctrAspectW.EnableWindow( FALSE );
m_ctrAspectH.EnableWindow( FALSE );
}
if(m_level != 9)
m_ctrPercent.EnableWindow(FALSE);
m_ctrBrowse.EnableWindow ( m_isPaste );
m_ctrFileName.EnableWindow( m_isPaste );
m_ctrStartX.EnableWindow ( m_isPaste );
m_ctrStartY.EnableWindow ( m_isPaste );
// Do not call CDialog::OnPaint() for painting messages
}
void CEncodeDlg::OnCheckWriteFile()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
m_ctrBrowse.EnableWindow ( m_isPaste );
m_ctrFileName.EnableWindow( m_isPaste );
m_ctrStartX.EnableWindow ( m_isPaste );
m_ctrStartY.EnableWindow ( m_isPaste );
}
struct DocType
{
public:
int nID;
BOOL bRead; //if the SDK can read the image of this format;
BOOL bWrite;//if the SDK can write the image of this format;
const char* description;
const char* ext;
};
enum ENUM_PTIMAGE_FORMATS
{
PTIMAGE_FORMAT_UNKNOWN,
PTIMAGE_FORMAT_BMP,
PTIMAGE_FORMAT_GIF,
PTIMAGE_FORMAT_JPG,
PTIMAGE_FORMAT_PNG,
PTIMAGE_FORMAT_MNG,
PTIMAGE_FORMAT_ICO,
PTIMAGE_FORMAT_TIF,
PTIMAGE_FORMAT_TGA,
PTIMAGE_FORMAT_PCX,
PTIMAGE_FORMAT_WBMP,
PTIMAGE_FORMAT_WMF,
PTIMAGE_FORMAT_J2K,
PTIMAGE_FORMAT_JBG,
PTIMAGE_FORMAT_JP2,
PTIMAGE_FORMAT_JPC,
PTIMAGE_FORMAT_PGX,
PTIMAGE_FORMAT_PNM,
PTIMAGE_FORMAT_RAS,
PTMAX_IMAGE_FORMATS
};
DocType doctypes[PTMAX_IMAGE_FORMATS] =
{
{ -1, TRUE, TRUE, "Supported files", "*.bmp;*.gif;*.jpg;*.jpeg;*.png;*.ico;*.tif;*.tiff;*.tga;*.pcx;*.wbmp;*.wmf;*.emf;*.j2k;*.jp2;*.jbg;*.j2c;*.jpc;*.pgx;*.pnm;*.pgm;*.ppm;*.ras" },
{ PTIMAGE_FORMAT_BMP, TRUE, TRUE, "BMP files", "*.bmp" },
{ PTIMAGE_FORMAT_GIF, TRUE, TRUE, "GIF files", "*.gif" },
{ PTIMAGE_FORMAT_JPG, TRUE, TRUE, "JPG files", "*.jpg;*.jpeg" },
{ PTIMAGE_FORMAT_PNG, TRUE, TRUE, "PNG files", "*.png" },
{ PTIMAGE_FORMAT_MNG, TRUE, TRUE, "MNG files", "*.mng;*.jng;*.png" },
{ PTIMAGE_FORMAT_ICO, TRUE, TRUE, "ICO CUR files", "*.ico;*.cur" },
{ PTIMAGE_FORMAT_TIF, TRUE, TRUE, "TIF files", "*.tif;*.tiff" },
{ PTIMAGE_FORMAT_TGA, TRUE, TRUE, "TGA files", "*.tga" },
{ PTIMAGE_FORMAT_PCX, TRUE, TRUE, "PCX files", "*.pcx" },
{ PTIMAGE_FORMAT_WBMP, TRUE, TRUE, "WBMP files", "*.wbmp" },
{ PTIMAGE_FORMAT_WMF, TRUE, FALSE, "WMF EMF files", "*.wmf;*.emf" },
{ PTIMAGE_FORMAT_J2K, TRUE, TRUE, "J2K files", "*.j2k;*.jp2" },
{ PTIMAGE_FORMAT_JBG, TRUE, TRUE, "JBG files", "*.jbg" },
{ PTIMAGE_FORMAT_JP2, TRUE, TRUE, "JP2 files", "*.j2k;*.jp2" },
{ PTIMAGE_FORMAT_JPC, TRUE, TRUE, "JPC files", "*.j2c;*.jpc" },
{ PTIMAGE_FORMAT_PGX, TRUE, TRUE, "PGX files", "*.pgx" },
{ PTIMAGE_FORMAT_RAS, TRUE, TRUE, "RAS files", "*.ras" },
{ PTIMAGE_FORMAT_PNM, TRUE, TRUE, "PNM files", "*.pnm;*.pgm;*.ppm" }
};
CString GetFileTypes(BOOL bOpenFileDialog)
{
CString str;
for (int i=0;i