www.pudn.com > PtBarcodeDec.rar > Sample.cpp
// Sample.cpp : Defines the class behaviors for the application.
//
#include "stdafx.h"
#include "Sample.h"
#include "MainFrm.h"
#include "SampleDoc.h"
#include "SampleView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CSampleApp
BEGIN_MESSAGE_MAP(CSampleApp, CWinApp)
//{{AFX_MSG_MAP(CSampleApp)
ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
ON_COMMAND(ID_FILE_OPEN, OnFileOpen)
//}}AFX_MSG_MAP
// Standard file based document commands
ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew)
ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)
// Standard print setup command
ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSampleApp construction
CSampleApp::CSampleApp()
{
// TODO: add construction code here,
// Place all significant initialization in InitInstance
}
/////////////////////////////////////////////////////////////////////////////
// The one and only CSampleApp object
CSampleApp theApp;
/////////////////////////////////////////////////////////////////////////////
// CSampleApp initialization
BOOL CSampleApp::InitInstance()
{
AfxEnableControlContainer();
// Standard initialization
// If you are not using these features and wish to reduce the size
// of your final executable, you should remove from the following
// the specific initialization routines you do not need.
#ifdef _AFXDLL
Enable3dControls(); // Call this when using MFC in a shared DLL
#else
Enable3dControlsStatic(); // Call this when linking to MFC statically
#endif
// Change the registry key under which our settings are stored.
// TODO: You should modify this string to be something appropriate
// such as the name of your company or organization.
SetRegistryKey(_T("Local AppWizard-Generated Applications"));
LoadStdProfileSettings(); // Load standard INI file options (including MRU)
// Register the application's document templates. Document templates
// serve as the connection between documents, frame windows and views.
CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CSampleDoc),
RUNTIME_CLASS(CMainFrame), // main SDI frame window
RUNTIME_CLASS(CSampleView));
AddDocTemplate(pDocTemplate);
// Parse command line for standard shell commands, DDE, file open
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
// Dispatch commands specified on the command line
if (!ProcessShellCommand(cmdInfo))
return FALSE;
// The one and only window has been initialized, so show and update it.
m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);
m_pMainWnd->UpdateWindow();
return TRUE;
}
/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// Dialog Data
//{{AFX_DATA(CAboutDlg)
enum { IDD = IDD_ABOUTBOX };
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CAboutDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
//{{AFX_MSG(CAboutDlg)
// No message handlers
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
// No message handlers
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
// App command to run the dialog
void CSampleApp::OnAppAbout()
{
CAboutDlg aboutDlg;
aboutDlg.DoModal();
}
/////////////////////////////////////////////////////////////////////////////
// CSampleApp message handlers
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