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

📄 textexdlg.cpp

📁 Resource editor base speadrum Chinese mobile
💻 CPP
字号:
// TextExDlg.cpp : implementation file
//

#include "stdafx.h"
#include "resourceeditor.h"
#include "TextExDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CTextExDlg dialog


CTextExDlg::CTextExDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CTextExDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CTextExDlg)
	m_strID = _T("");
	m_strLangValue = _T("");
	m_strLangType = _T("");
	//}}AFX_DATA_INIT
    m_bCanModifyID = TRUE;
	m_bSel = FALSE;
	m_nIndex = 0;
    m_nPosition = ADD_ITEM_AT_TAIL;
}


void CTextExDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_CMB_LANG_TYPE, m_cbxLangType);
	DDX_Text(pDX, IDC_EDT_ID, m_strID);
	DDV_MaxChars(pDX, m_strID, 128);
	DDX_Text(pDX, IDC_EDT_LANG_VALUE, m_strLangValue);
	DDV_MaxChars(pDX, m_strLangValue, MAX_TEXT_LEN);
	DDX_CBString(pDX, IDC_CMB_LANG_TYPE, m_strLangType);
	DDX_Radio(pDX, IDC_RDO_HEAD, m_nPosition);
	//}}AFX_DATA_MAP
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CTextExDlg, CDialog)
	ON_CBN_SELCHANGE(IDC_CMB_LANG_TYPE, OnSelchangeCmbLangType)
	ON_CBN_SETFOCUS(IDC_CMB_LANG_TYPE, OnSetfocusCmbLangType)
	ON_BN_CLICKED(IDC_RDO_HEAD, OnRdoHead)
	ON_BN_CLICKED(IDC_RDO_BEFORE, OnRdoBefore)
	ON_BN_CLICKED(IDC_RDO_AFTER, OnRdoAfter)
	ON_BN_CLICKED(IDC_RDO_TAIL, OnRdoTail)
	//}}AFX_MSG_MAP
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTextExDlg message handlers

BOOL CTextExDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	if( !m_bCanModifyID )
    {
        CWnd * pWnd = GetDlgItem(IDC_EDT_ID);
        _ASSERTE( pWnd != NULL );

        pWnd->EnableWindow(FALSE);
    }

	for(int i = 0;i<g_theApp.m_nUsedLangNum;i++)
	{
		m_cbxLangType.AddString(g_theApp.m_arrUsedLangNames.GetAt(i));
		//m_strArrLangValues.Add(_T(""));
	}
    m_cbxLangType.SetCurSel(0);

	if(!m_bSel)
	{
		CWnd * pWnd = GetDlgItem(IDC_RDO_HEAD);
		_ASSERTE( pWnd != NULL );
		pWnd->EnableWindow(FALSE);

		pWnd = GetDlgItem(IDC_RDO_BEFORE);
		_ASSERTE( pWnd != NULL );
		pWnd->EnableWindow(FALSE);

		pWnd = GetDlgItem(IDC_RDO_AFTER);
		_ASSERTE( pWnd != NULL );
		pWnd->EnableWindow(FALSE);

		pWnd = GetDlgItem(IDC_RDO_TAIL);
		_ASSERTE( pWnd != NULL );
		pWnd->EnableWindow(FALSE);
	}

	UpdateData(FALSE);
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}



void CTextExDlg::OnOK() 
{
	// TODO: Add extra validation here
	UpdateData();
    m_strArrLangValues.SetAt(m_nIndex,m_strLangValue);

    if( m_bCanModifyID )
    {
        if( m_strID.IsEmpty() )
        {
            AfxMessageBox(_T("The ID isn't empty!"));
            return;
        }

        if( m_strID[0] >= _T('0') &&  m_strID[0] <= _T('9') )
        {
            AfxMessageBox(_T("The ID's first character can't be a number!"));
            return;
        }

        if( g_theApp.m_MMIRes.TextIDIsExist(m_strID) )
        {
            AfxMessageBox(_T("The ID already exist, please reinput!"));
            return;
        }

        m_strID.MakeUpper();
    }
	
	CDialog::OnOK();
}

BOOL CTextExDlg::PreTranslateMessage(MSG* pMsg) 
{
	// TODO: Add your specialized code here and/or call the base class
	CWnd * pWnd = GetDlgItem(IDC_EDT_ID);
    _ASSERTE( pWnd != NULL );

    CWnd * pFocus = GetFocus();
    if( pMsg->message == WM_CHAR && pFocus != NULL && pFocus->m_hWnd == pWnd->m_hWnd )
    {
        _TCHAR cInput = pMsg->wParam;
        if( cInput < _T('0') || cInput > _T('9') )
        {
            if( cInput < _T('a') || cInput > _T('z') )
            {
                if( cInput != _T('_') && (cInput < _T('A') || cInput > _T('Z')) && cInput != 8 /* backspace*/ )
                {
                    if( !(GetKeyState(VK_LCONTROL) & 0x0100) )
                        return TRUE;
                }
            }
        }
    }
   
	return CDialog::PreTranslateMessage(pMsg);	
}



void CTextExDlg::OnSelchangeCmbLangType() 
{
	// TODO: Add your control notification handler code here

	UpdateData();
	m_strArrLangValues.SetAt(m_nIndex,m_strLangValue);
	m_nIndex = m_cbxLangType.GetCurSel();
	m_strLangValue = m_strArrLangValues.GetAt(m_nIndex);

	UpdateData(FALSE);
}

void CTextExDlg::OnSetfocusCmbLangType() 
{
	// TODO: Add your control notification handler code here
	
}
void CTextExDlg::OnRdoHead()
{
	m_nPosition = ADD_ITEM_AT_HEAD;
}

void CTextExDlg::OnRdoBefore()
{
	m_nPosition = ADD_ITEM_BEFORE_CUR;
}

void CTextExDlg::OnRdoAfter()
{
	m_nPosition = ADD_ITEM_AFTER_CUR;
}

void CTextExDlg::OnRdoTail()
{
	m_nPosition = ADD_ITEM_AT_TAIL;
}

⌨️ 快捷键说明

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