rtoss - Rev 280

Subversion Repositories:
Rev:
// PokemonMemHackDlg.cpp : ʵÏÖÎļþ
//

#include "stdafx.h"
#include "PokemonMemHack.h"
#include "PokemonMemHackDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif


// ÓÃÓÚÓ¦ÓóÌÐò¡°¹ØÓÚ¡±²Ëµ¥ÏîµÄ CAboutDlg ¶Ô»°¿ò

class CAboutDlg : public CDialog
{
public:
        CAboutDlg();

// ¶Ô»°¿òÊý¾Ý
        enum { IDD = IDD_ABOUTBOX };

        protected:
        virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV Ö§³Ö

// ʵÏÖ
protected:
        DECLARE_MESSAGE_MAP()
};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
        CDialog::DoDataExchange(pDX);
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
END_MESSAGE_MAP()


// CPokemonMemHackDlg ¶Ô»°¿ò



CPokemonMemHackDlg::CPokemonMemHackDlg(CWnd* pParent /*=NULL*/)
        : CDialog(CPokemonMemHackDlg::IDD, pParent)
{
        m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
        m_pPropSht = NULL;
}

CPokemonMemHackDlg::~CPokemonMemHackDlg()
{
        if(m_pPropSht)
                delete m_pPropSht;
}

void CPokemonMemHackDlg::DoDataExchange(CDataExchange* pDX)
{
        CDialog::DoDataExchange(pDX);
}

BEGIN_MESSAGE_MAP(CPokemonMemHackDlg, CDialog)
        ON_WM_SYSCOMMAND()
        ON_WM_PAINT()
        ON_WM_QUERYDRAGICON()
        //}}AFX_MSG_MAP
        ON_WM_CREATE()
END_MESSAGE_MAP()


// CPokemonMemHackDlg ÏûÏ¢´¦Àí³ÌÐò

BOOL CPokemonMemHackDlg::OnInitDialog()
{
        CDialog::OnInitDialog();

        // ½«\¡°¹ØÓÚ...\¡±²Ëµ¥ÏîÌí¼Óµ½ÏµÍ³²Ëµ¥ÖС£

        // IDM_ABOUTBOX ±ØÐëÔÚϵͳÃüÁΧÄÚ¡£
        ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
        ASSERT(IDM_ABOUTBOX < 0xF000);

        CMenu* pSysMenu = GetSystemMenu(FALSE);
        if (pSysMenu != NULL)
        {
                CString strAboutMenu;
                strAboutMenu.LoadString(IDS_ABOUTBOX);
                if (!strAboutMenu.IsEmpty())
                {
                        pSysMenu->AppendMenu(MF_SEPARATOR);
                        pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
                }
        }

        // ÉèÖô˶Ի°¿òµÄͼ±ê¡£µ±Ó¦ÓóÌÐòÖ÷´°¿Ú²»ÊǶԻ°¿òʱ£¬¿ò¼Ü½«×Ô¶¯
        //  Ö´Ðд˲Ù×÷
        SetIcon(m_hIcon, TRUE);                 // ÉèÖôóͼ±ê
        SetIcon(m_hIcon, FALSE);                // ÉèÖÃСͼ±ê

        CRect   rect;

        if(m_pPropSht)
        {
                m_pPropSht->GetWindowRect(&rect);
                AdjustWindowRect(&rect, GetWindowLong(m_hWnd, GWL_STYLE), FALSE);
                MoveWindow(&rect);
        }

        return TRUE;  // ³ý·ÇÉèÖÃÁ˿ؼþµÄ½¹µã£¬·ñÔò·µ»Ø TRUE
}

void CPokemonMemHackDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
        if ((nID & 0xFFF0) == IDM_ABOUTBOX)
        {
                CAboutDlg dlgAbout;
                dlgAbout.DoModal();
        }
        else
        {
                CDialog::OnSysCommand(nID, lParam);
        }
}

// Èç¹ûÏò¶Ô»°¿òÌí¼Ó×îС»¯°´Å¥£¬ÔòÐèÒªÏÂÃæµÄ´úÂë
//  À´»æÖƸÃͼ±ê¡£¶ÔÓÚʹÓÃÎĵµ/ÊÓͼģÐ굀 MFC Ó¦ÓóÌÐò£¬
//  Õ⽫ÓÉ¿ò¼Ü×Ô¶¯Íê³É¡£

void CPokemonMemHackDlg::OnPaint()
{
        if (IsIconic())
        {
                CPaintDC dc(this); // ÓÃÓÚ»æÖƵÄÉ豸ÉÏÏÂÎÄ

                SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

                // ʹͼ±êÔÚ¹¤×÷¾ØÐÎÖоÓÖÐ
                int cxIcon = GetSystemMetrics(SM_CXICON);
                int cyIcon = GetSystemMetrics(SM_CYICON);
                CRect rect;
                GetClientRect(&rect);
                int x = (rect.Width() - cxIcon + 1) / 2;
                int y = (rect.Height() - cyIcon + 1) / 2;

                // »æÖÆͼ±ê
                dc.DrawIcon(x, y, m_hIcon);
        }
        else
        {
                CDialog::OnPaint();
        }
}

//µ±Óû§Í϶¯×îС»¯´°¿Úʱϵͳµ÷Óô˺¯ÊýÈ¡µÃ¹â±êÏÔʾ¡£
HCURSOR CPokemonMemHackDlg::OnQueryDragIcon()
{
        return static_cast<HCURSOR>(m_hIcon);
}

int CPokemonMemHackDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
        if (CDialog::OnCreate(lpCreateStruct) == -1)
                return -1;

        BOOL    bResult = FALSE;

        m_pPropSht = new CPropertySheet;
        if(m_pPropSht)
        {
                m_pPropSht->AddPage(&m_pageMemPm);
                m_pPropSht->AddPage(&m_pageMisc0);
                m_pPropSht->AddPage(&m_pageMisc1);
                m_pPropSht->AddPage(&m_pageMisc2);
                if(m_pPropSht->Create(this, WS_CHILD | WS_VISIBLE))
                {
                        bResult = TRUE;
                }
        }

        return 0;
}