// PatchMakerSheet.cpp : 구현 파일입니다.
//

#include "stdafx.h"
#include "PatchMaker.h"
#include "PatchMakerSheet.h"

// PatchMakerSheet

IMPLEMENT_DYNAMIC(CPatchMakerSheet, CPropertySheet)
CPatchMakerSheet::CPatchMakerSheet(UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage)
    :CPropertySheet(nIDCaption, pParentWnd, iSelectPage)
{
    
}

CPatchMakerSheet::CPatchMakerSheet(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage)
    :CPropertySheet(pszCaption, pParentWnd, iSelectPage)
{
    
}

CPatchMakerSheet::~CPatchMakerSheet()
{

}

BEGIN_MESSAGE_MAP(CPatchMakerSheet, CPropertySheet)
    ON_WM_CREATE()
END_MESSAGE_MAP()


// PatchMakerSheet 메시지 처리기입니다.

BOOL CPatchMakerSheet::OnInitDialog()
{
    BOOL bResult = CPropertySheet::OnInitDialog();

    // TODO:  여기에 특수화된 코드를 추가합니다.

    // 버튼을 제거합니다.
    int ids[] = { IDOK, IDCANCEL, IDHELP, ID_APPLY_NOW };
    CRect rcButton;

    for (int i = 0; i < sizeof(ids)/sizeof(int); i++)
    {
        CWnd* lpWnd = GetDlgItem(ids[i]);
        if (lpWnd) 
        {
            lpWnd->GetWindowRect(&rcButton);
            lpWnd->ShowWindow(FALSE); 
        }
    }

    int nEditWidthMargin = 20;
    int nEditHeightMargin = 20;
    int nEditHeight = 80;
    
    CRect rect;
    GetWindowRect(&rect);
    rect.bottom += nEditHeight - rcButton.Height() + nEditHeightMargin / 2;
    MoveWindow(rect);

    GetClientRect (&rect);

    // 에딧 컨트롤을 바닥에 붙인다.
    int nX = rect.left + nEditWidthMargin / 2;
    int nY = rect.bottom - nEditHeight - nEditHeightMargin / 2;
    int nEditWidth = rect.Width() - nEditWidthMargin;

    m_edLogMsg.CreateEx (WS_EX_CLIENTEDGE, _T("EDIT"), NULL,
                     WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL | ES_MULTILINE | ES_AUTOVSCROLL, 
                     nX, nY, nEditWidth, nEditHeight, m_hWnd, 0, 0 );

    m_edLogMsg.SetFont(GetFont());

    const int nMaxPageCount = GetPageCount();
    for(int nIndex = 0; nIndex < nMaxPageCount; ++nIndex)
    {
        // 한번씩 Active를 해서, Page의 OnInitDialog를 호출하도록 한다.
        SetActivePage(nIndex);
    }

    SetActivePage(0);
    return bResult;
}


int CPatchMakerSheet::OnCreate(LPCREATESTRUCT lpCreateStruct)
{    
    if (CPropertySheet::OnCreate(lpCreateStruct) == -1)
        return -1;

    // TODO:  여기에 특수화된 작성 코드를 추가합니다.
    ModifyStyle(0, WS_MINIMIZEBOX);    
    return 0;
}

BOOL CPatchMakerSheet::OnCommand(WPARAM wParam, LPARAM lParam)
{
    // TODO: 여기에 특수화된 코드를 추가 및/또는 기본 클래스를 호출합니다.
    if (LOWORD(wParam) == IDOK)
    {
        // 엔터 눌러도 안먹게 함.
        return TRUE;
    }

    return CPropertySheet::OnCommand(wParam, lParam);
}
