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