⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tbreakoptsdlg.cpp

📁 mpq文件的格式就是一种压缩格式
💻 CPP
字号:
/*****************************************************************************/
/* TBreakOptsDlg.cpp                  Copyright (c) Ladislav Zezula 2003 */
/*---------------------------------------------------------------------------*/
/* Description :                                                             */
/*---------------------------------------------------------------------------*/
/*   Date    Ver   Who  Comment                                              */
/* --------  ----  ---  -------                                              */
/* 12.04.03  1.00  Lad  The first version of TBreakOptsDlg.cpp           */
/*****************************************************************************/

#include "stdafx.h"
#include "resource.h"
#include "TBreakOptsDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

//-----------------------------------------------------------------------------
// TBreakOptsDlg dialog

BEGIN_MESSAGE_MAP(TBreakOptsDlg, CDialog)
	//{{AFX_MSG_MAP(TBreakOptsDlg)
	ON_BN_CLICKED(IDC_ALLFOLDERS, OnAllFoldersClick)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

TBreakOptsDlg::TBreakOptsDlg(CWnd* pParent /*=NULL*/)
	: CDialog(TBreakOptsDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(TBreakOptsDlg)
	m_strFolder      = _T("");
	m_strStartName   = _T("");
	m_nMaxNameLength = 8;
	m_bAutoSave      = FALSE;
	m_strExt         = _T("");
	m_bThisOnly = FALSE;
	//}}AFX_DATA_INIT

    m_pFolderList = NULL;
    m_pExtList    = NULL;
}

TBreakOptsDlg::~TBreakOptsDlg()
{
    FreeStringList(m_pFolderList);
    FreeStringList(m_pExtList);
}

void TBreakOptsDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(TBreakOptsDlg)
	DDX_Control (pDX, IDC_FOLDERS,   m_Folders);
	DDX_Text    (pDX, IDC_FOLDER,    m_strFolder);
	DDV_MaxChars(pDX, m_strFolder, 260);
	DDX_Text    (pDX, IDC_STARTNAME, m_strStartName);
	DDV_MaxChars(pDX, m_strStartName, 260);
	DDX_Text    (pDX, IDC_MAXNAMELENGTH, m_nMaxNameLength);
	DDV_MinMaxUInt(pDX, m_nMaxNameLength, 1, 48);
	DDX_Check   (pDX, IDC_AUTOSAVE, m_bAutoSave);
	DDX_Control (pDX, IDC_EXTS, m_Exts);
	DDX_Text    (pDX, IDC_EXT, m_strExt);
	DDV_MaxChars(pDX, m_strExt, 5);
	DDX_Check(pDX, IDC_THISONLY, m_bThisOnly);
	//}}AFX_DATA_MAP
}

//-----------------------------------------------------------------------------
// TBreakOptsDlg message handlers

BOOL TBreakOptsDlg::OnInitDialog() 
{
    POSITION pos;
    char * szItem = NULL;
    int nIndex;

	CDialog::OnInitDialog();

    // These pointers must not be NULL
    ASSERT(m_pFolderList != NULL && m_pExtList != NULL);

    // Fill the listbox with folders
    m_Folders.AddString("");
    for(pos = m_pFolderList->GetHeadPosition(); pos != NULL; )
    {
        szItem = (char *)m_pFolderList->GetNext(pos);
        if(*szItem != 0)
            m_Folders.AddString(szItem);
    }
    m_pFolderList = NULL;

    // Fill the listbox with extensions
    m_Exts.AddString("");
    for(pos = m_pExtList->GetHeadPosition(); pos != NULL; )
    {
        szItem = (char *)m_pExtList->GetNext(pos);
        if(*szItem != 0)
            nIndex = m_Exts.AddString(szItem);
    }
    m_pExtList = NULL;
	return TRUE;
}

void TBreakOptsDlg::OnAllFoldersClick() 
{
    int nItems = m_Folders.GetCount();

    // Check all items
    UpdateData(TRUE);
    for(int i = 0; i < nItems; i++)
        m_Folders.SetCheck(i, 1);

    // Clear the folder edit 
    m_strFolder = "";
    UpdateData(FALSE);
}

void TBreakOptsDlg::OnOK() 
{
    char * szStr;
    int nLength;
    int i;

    // Create the list of folders
    if(m_pFolderList == NULL)
        m_pFolderList = new CPtrList;
    m_pFolderList->RemoveAll();
    UpdateData();

    // Add the folder from input field first ...
    if(m_strFolder.IsEmpty() == FALSE)
    {
        nLength = m_strFolder.GetLength() + 1;
        szStr = new char[nLength];
        strcpy(szStr, m_strFolder);
        m_pFolderList->AddTail(szStr);
    }
    
    // ... then the checked items from the folder list
    for(i = 0; i < m_Folders.GetCount(); i++)
    {
        if(m_Folders.GetCheck(i) == 1)
        {
            nLength = m_Folders.GetTextLen(i) + 1;
            szStr = new char[nLength];
            m_Folders.GetText(i, szStr);
            m_pFolderList->AddTail(szStr);
        }
    }

    // Create the list of extensions
    if(m_pExtList == NULL)
        m_pExtList = new CPtrList;
    m_pExtList->RemoveAll();

    // Add the extension from input field first ...
    if(m_strExt.IsEmpty() == FALSE)
    {
        nLength = m_strExt.GetLength() + 5;
        szStr = new char[nLength];
        strcpy(szStr, m_strExt);
        m_pExtList->AddTail(szStr);
    }
    
    // .. then extensions from the list
    for(i = 0; i < m_Exts.GetCount(); i++)
    {
        if(m_Exts.GetCheck(i) == 1)
        {
            nLength = m_Exts.GetTextLen(i) + 5;
            szStr   = new char[nLength];
            m_Exts.GetText(i, szStr);
            m_pExtList->AddTail(szStr);
        }
    }

    // If no items selected, show the warning
    if(m_pFolderList->GetCount() == 0 || m_pExtList->GetCount() == 0)
    {
        AfxMessageBox(IDS_NOFOLDEROREXT, MB_OK | MB_ICONWARNING);
        return;
    }

	CDialog::OnOK();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -