ÇÁ·Î±×·¡¹Ö

 3204, 157/161 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   hiÂ𱸾ä
   MFC ¦¸ÂÃ߱⠰ÔÀÓ.

http://www.hackerschool.org/HS_Boards/zboard.php?id=QNA_programming&no=2010 [º¹»ç]


Àú±â MFC¸¦ ÀÌ¿ëÇÏ¿© ¦¸ÂÃ߱⠰ÔÀÓÀ» ¸¸µå´Â ÁßÀä..

Áö±Ý ¹Í½ºÇÏ´Â °Í ±îÁö ¸¸µé¾ú´Âµ¥..

¸¶¿ì½º·Î Ŭ¸¯À» ÇÏ¿©¼­ Àâ¾Æ³»´Â ºÎºÐÀ» ¸ð¸£°Ú¾î¿ä...¤§

// TestDlg.cpp : ±¸Çö ÆÄÀÏ
//

#include "stdafx.h"
#include "Test.h"
#include "TestDlg.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()


// CTestDlg ´ëÈ­ »óÀÚ




CTestDlg::CTestDlg(CWnd* pParent /*=NULL*/)
        : CDialog(CTestDlg::IDD, pParent)
        , m_bStart(false)
        , m_bBackCard(false)
{
        m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

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

BEGIN_MESSAGE_MAP(CTestDlg, CDialog)
        ON_WM_SYSCOMMAND()
        ON_WM_PAINT()
        ON_WM_QUERYDRAGICON()
        //}}AFX_MSG_MAP
        ON_BN_CLICKED(ID_START, &CTestDlg::OnBnClickedStart)
        ON_WM_LBUTTONDOWN()
        ON_WM_TIMER()
END_MESSAGE_MAP()


// CTestDlg ¸Þ½ÃÁö 󸮱â

BOOL CTestDlg::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);                // ÀÛÀº ¾ÆÀÌÄÜÀ» ¼³Á¤ÇÕ´Ï´Ù.

        // TODO: ¿©±â¿¡ Ãß°¡ ÃʱâÈ­ ÀÛ¾÷À» Ãß°¡ÇÕ´Ï´Ù.
        m_bitCard.LoadBitmapW(IDB_CARD);
        m_bitBackCard.LoadBitmapW(IDB_BackCard);
        
        for (int iRow=0; iRow<4; iRow++)
                for(int iCol=0; iCol<4; iCol++)
                        m_iGame[iRow][iCol]= iRow * 4 + iCol / 2;

        for(int k=0; k<4; k++)
                for(int m=0; m<4; m++)
                        m_iGame3[k][m] = 0;

        m_bStart = false;
        // m_bBackCard = false;


        return TRUE;  // Æ÷Ä¿½º¸¦ ÄÁÆ®·Ñ¿¡ ¼³Á¤ÇÏÁö ¾ÊÀ¸¸é TRUE¸¦ ¹ÝȯÇÕ´Ï´Ù.
}

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

// ´ëÈ­ »óÀÚ¿¡ ÃÖ¼ÒÈ­ ´ÜÃ߸¦ Ãß°¡ÇÒ °æ¿ì ¾ÆÀÌÄÜÀ» ±×¸®·Á¸é
//  ¾Æ·¡ Äڵ尡 ÇÊ¿äÇÕ´Ï´Ù. ¹®¼­/ºä ¸ðµ¨À» »ç¿ëÇÏ´Â MFC ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ °æ¿ì¿¡´Â
//  ÇÁ·¹ÀÓ¿öÅ©¿¡¼­ ÀÌ ÀÛ¾÷À» ÀÚµ¿À¸·Î ¼öÇàÇÕ´Ï´Ù.

void CTestDlg::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();
        }
        RedrawAllCard();
        BackCard();
}

// »ç¿ëÀÚ°¡ ÃÖ¼ÒÈ­µÈ âÀ» ²ô´Â µ¿¾È¿¡ Ä¿¼­°¡ Ç¥½ÃµÇµµ·Ï ½Ã½ºÅÛ¿¡¼­
//  ÀÌ ÇÔ¼ö¸¦ È£ÃâÇÕ´Ï´Ù.
HCURSOR CTestDlg::OnQueryDragIcon()
{
        return static_cast<HCURSOR>(m_hIcon);
}


void CTestDlg::InitGame(void)
{
        m_bStart = true;
        RndCard();

        Invalidate(TRUE);
}

void CTestDlg::ViewCard(int iRow, int iCol, int iNum)
{
        CClientDC pDC(this);
        CDC memDC;
        memDC.CreateCompatibleDC(&pDC);
        CBitmap        *oldbm=memDC.SelectObject(&m_bitCard);
        pDC.BitBlt(40+iCol*60, 40+iRow*85, 50, 77, &memDC, iNum%4*50, iNum/4*77, SRCCOPY);
        memDC.SelectObject(oldbm);
}

void CTestDlg::RedrawAllCard(void)
{
        for (int iRow=0; iRow<4; iRow++)
                for(int iCol=0; iCol<4; iCol++)
                        ViewCard(iRow, iCol, m_iGame[iRow][iCol]);
}

void CTestDlg::OnBnClickedStart()
{
        // TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù.
        InitGame();

}

void CTestDlg::RndCard(void)
{
        int iRow, iCol, iRow2, iCol2, iTemp;

        srand((unsigned) time(NULL));

        for (int i=0; i<10000; i++)
        {
                iRow = rand() % 4;
                iCol = rand() % 4;

                iRow2 = rand() % 4;
                iCol2 = rand() % 4;

                if(m_iGame[iRow][iCol] != m_iGame[iRow2][iCol2])
                {
                        iTemp = m_iGame[iRow][iCol];
                        m_iGame[iRow][iCol] = m_iGame[iRow2][iCol2];
                        m_iGame[iRow2][iCol2] = iTemp;
                }
        }
}

void CTestDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
        // TODO: ¿©±â¿¡ ¸Þ½ÃÁö 󸮱â Äڵ带 Ãß°¡ ¹×/¶Ç´Â ±âº»°ªÀ» È£ÃâÇÕ´Ï´Ù.
        if(!m_bStart)
                return;

        int iRow=-1, iCol=-1;
        BOOL b=PosToIndex(point, iRow, iCol);
        if(b)
        {
                ViewCard(iRow, iCol, m_iGame[iRow][iCol]);
        }
        CDialog::OnLButtonDown(nFlags, point );
}

bool CTestDlg::PosToIndex(CPoint pnt, int& iRow, int& iCol)
{
        iRow = iCol = -1;

        for (int i=0; i<4; i++)
                if(pnt.y>40+i*85 && pnt.y<40+(i+1)*85)
                        iRow=i;

        for (int j=0; j<4; j++)
                if(pnt.x>40+j*60 && pnt.x<40+(j+1)*60)
                        iCol=j;

        if(iRow == -1 || iCol == -1)
                return false;
        else
                return true;
}
void CTestDlg::OnTimer(UINT_PTR nIDEvent)
{
        // TODO: Add your message handler code here and/or call default

        CDialog::OnTimer(nIDEvent);

}

void CTestDlg::BackCard(void)
{
        for (int iRow=0; iRow<4; iRow++)
                for(int iCol=0; iCol<4; iCol++)
                {
                        m_iGame2[iRow][iCol] = 0;
                        BackCardView(iRow, iCol, m_iGame2[iRow][iCol]);
                }
}

void CTestDlg::BackCardView(int iRow, int iCol, int iNum)
{
        CClientDC pDC(this);
        CDC memDC;
        memDC.CreateCompatibleDC(&pDC);
        CBitmap        *oldbm=memDC.SelectObject(&m_bitBackCard);
        pDC.BitBlt(40+iCol*60, 40+iRow*85, 50, 77, &memDC, 0, 0, SRCCOPY);
        memDC.SelectObject(oldbm);
}

void CTestDlg::ClearCard(int iRow, int iCol)
{
        CClientDC pDC(this);
        CPen pen;
        CBrush br;

        pen.CreatePen(PS_SOLID, 1, GetSysColor(COLOR_3DFACE));
        br.CreateSolidBrush(GetSysColor(COLOR_3DFACE));

        CPen *oldp=pDC.SelectObject(&pen);
        CBrush *oldb=pDC.SelectObject(&br);
        pDC.Rectangle(40+iCol*60, 40+iRow*85, 40+iCol*60+100, 40+iRow*85);

        pDC.SelectObject(oldp);
        pDC.SelectObject(oldb);
}

Âü°í·Î...ÀÖ´Â ¼Ò½º ¾ø´Â ¼Ò½º ´Ù ³Ö¾î¼­..®½À´Ï´Ù..¤Ð
hacker_guta@nate.com ³×ÀÌÆ®ÇϽøé ÂÊÁö³ª ´ëÈ­Á» °É¾îÁÖ¼¼¿ä..¤Ð

  Hit : 7416     Date : 2009/05/10 06:23



    
84   C¾ð¾î ÇÁ·Î±×·¡¹Ö µµ¿ÍÁÖ¼¼¿ä ¤Ð¤Ð¤Ð[2]     gxcolin
05/17 7383
  MFC ¦¸ÂÃ߱⠰ÔÀÓ.     hiÂ𱸾ä
05/10 7415
82   ¹®¼­¾ÏÈ£ Ǫ´Â¹ý??[1]     laclarte
01/16 7432
81   CÇÁ·Î±×·¡¹Ö ´äº¯Á»..[1]     knagek
09/04 7434
80   explorer.exe ÀÀ¿ëÇÁ·Î±×·¥ ¿À·ù[2]     alstkd1222
01/13 7434
79   (ÀڷᱸÁ¶ ) SingleList Áß°£ Node »ðÀÔ ÇÔ¼ö ±¸ÇöÀÌ À߾ȵǿä!!![2]     h2spice
01/06 7451
78   ¹®ÀÚ¿­ ¹è¿­»ç¿ëÇؼ­ µ¡¼ÀÇϴ°ŠÀß ¸ð¸£°Ú¾î¿ä[1]     ÃÊ¿ìÃÊ¿ì
12/04 7503
77   (Ãß°¡Áú¹®)C++ switch ¹®¾È¿¡ switch¹®À» ¶Ç ¾µ ¼ö ÀÖ³ª¿ä[3]     ksbgenius
05/22 7516
76   [C¾ð¾î] Á¦°ö ÇÔ¼ö Áú¹®ÀÔ´Ï´Ù~[2]     babolk
11/25 7526
75   ºñÁî³×¸£ ¾ÏÈ£ÄÚµù..Çؼ®Á»..¤Ì¤Ð.¤Ì ºÎŹµå¸³´Ï´Ù..¤Ð.¤Ð ÁøÂ¥ ¸ð¸£°Ù³×¿ä..     shtjdanr
10/11 7566
74   °Å½º¸§µ· ±¸ÇÏ´Â ¹ý¾Ë·ÁÁÖ¼¼¿ä;.....[3]     jla745
02/07 7587
73       [re] Dev c++ ÄÄÆÄÀÏ·¯ ´Ù¿î ¹Þ±â[3]     osy0810
01/24 7649
72     [re] 'Àü°¢ °ø¹é¹®ÀÚ'¶õ°Ô ¹º°¡¿ä?[2]     zksntm
02/21 7658
71   ÄÚµåºí·° Çѱ۱úÁü Çö»ó µµ¿ÍÁÖ¼¼¿ä[1]     ifocean
06/12 7674
70   c¾ð¾î NOT ºñÆ® ¿¬»êÀÚ Áú¹®[5]     benkim
07/19 7783
69   [c¾ð¾î]½ÊÁø¼ö¸¦ ÀÌÁø¼ö·Î º¯È¯ÇØÁÖ´Â ÇÁ·Î±×·¥[4]     yj6393
10/11 7815
68   [¾Ë°í¸®Áò] ÃÖ´Ü°æ·Î ¾Ë°í¸®ÁòÀ¸·Î Â¥´Â°Çµ¥¿ä µµ¿ÍÁÖ¼¼¿ä ¤Ð[3]     218darkest
11/05 7885
67   C¾ð¾î ÇÔ¼ö¿¹Á¦ Áú¹®µå·Á¿ä[5]     tjdahld147
04/27 7995
66   winpcap À»ÀÌ¿ëÇؼ­ ÆÐŶĸÃÄÇÁ·Î±×·¥À» ¸¸µé¾ú½À´Ï´Ù[2]     ¿³Àå¼ö
01/13 8032
65   ºñÁÖ¾ó C++ 6.0 ´Ù¿î¹ÞÀ»¼öÀÖ³ª¿µ?[1]     blue_star
10/11 8162
[1]..[151][152][153][154][155][156] 157 [158][159][160]..[161]

Copyright 1999-2024 Zeroboard / skin by Hackerschool.org / Secure Patch by Hackerschool.org