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

📄 addordel.cpp

📁 支持Windows 3.x、Windows 9x平台上的中文(GB、Big5)、日文(Shift JIS、EUC JIS)、韩文(KS C 5601)、HZ码的显示与输入,智能内码识别
💻 CPP
字号:
// addordel.cpp : implementation file
//

#include "stdafx.h"                            
#include	<afxdlgs.h>
#include	"resource.h"
#include "addordel.h"
#include	"iniinput.h"
//#include	"inputlib.h"

extern	CInputInit	OInputInit ;	//输入环境初始化对象

#ifdef _DEBUG
#undef THIS_FILE
static char BASED_CODE THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CAddOrDelInputMethod dialog


CAddOrDelInputMethod::CAddOrDelInputMethod(void)
	: CPropertyPage(CAddOrDelInputMethod::IDD)
{
	//{{AFX_DATA_INIT(CAddOrDelInputMethod)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}

void CAddOrDelInputMethod::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAddOrDelInputMethod)
	DDX_Control(pDX, IDC_LIST1, m_AddedInputMethods);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CAddOrDelInputMethod, CPropertyPage )
	//{{AFX_MSG_MAP(CAddOrDelInputMethod)
	ON_BN_CLICKED(ID_INSTALL, OnInstall)
	ON_LBN_DBLCLK(IDC_LIST1, OnDblclkList1)
	ON_BN_CLICKED(ID_DELETE, OnDelete)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()


/////////////////////////////////////////////////////////////////////////////
// CAddOrDelInputMethod message handlers

void CAddOrDelInputMethod::OnInstall()
{
	CFileDialog	fileDialog( TRUE , "txt" , "*.txt" ,
					OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT ,
					"UCDOS输入法(*.txt)|*.txt|梦笔生花输入法(*.iml)|*.iml| All Files (*.*) | *.* ||"
					) ;
	if( fileDialog.DoModal() == IDOK )
	{
		//得到文件后缀
		CString	fileExt	=fileDialog.GetFileExt() ;
		if( fileExt != "TXT" && fileExt != "IML" )
			AfxMessageBox( "文件类型不对,必须是.txt或.iml文件!" ,
						MB_OK|MB_ICONINFORMATION ) ;
		else
		{
			//增加一种输入法
			CString	path	=fileDialog.GetPathName() ;
			//判断文件类型
			if( fileExt == "TXT" )		//是UCDOS文本文件
			{
				if( !TranslateUcdos( path ) )		//转换失败
					return ;
					           
				::MessageBox( this->m_hWnd , "输入法文件转换成功" ,
											"转换输入法" , 
											MB_OK|MB_ICONEXCLAMATION ) ;

				//重新组织文件名,组织库文件名
				path	=path.Left( path.GetLength()-3 ) ;	//去掉TXT后缀
				path	+="iml" ;		//新后缀
			}
			
			//关闭以前的输入法
			UnloadInputLib() ;
			//安装该输入法
			if( !LoadInputLib( path ) )
				return ;
			
			//得到输入法名
			char	sName[20] ;
			GetInputMethodName( sName , 20 ) ;
			char	sBuff[100] ;
			wsprintf( sBuff , "%s输入法安装成功!" , sName ) ;
			::MessageBox( this->m_hWnd , sBuff , "安装输入法" , 
										MB_OK|MB_ICONEXCLAMATION ) ;
			
			//将输入法加入列表框
			m_AddedInputMethods.InsertString( 0 , sName ) ;
			//将输入法加入INI文件和菜单
			OInputInit.AddInputMethod( sName , path ) ;
		}  
	}			
}

void CAddOrDelInputMethod::OnDblclkList1()
{
	DeleteInputMethod() ;
}

void CAddOrDelInputMethod::OnDelete()
{
	DeleteInputMethod() ;	
}

void	CAddOrDelInputMethod::DeleteInputMethod( void )
{
	int	nSelectItem	=m_AddedInputMethods.GetCurSel() ;
	if( nSelectItem == LB_ERR )		//没有选择
		return ;
		
	CDialog	dialog( IDD_DIALOG4 ) ;
	if( dialog.DoModal() == IDOK ) 		
	{
		//将其从列表框中删除
		m_AddedInputMethods.DeleteString( nSelectItem ) ;
		//将其从INI文件和菜单中删除
		OInputInit.DeleteInputMethod( nSelectItem ) ;
	}
}

//对输入法列表框进行初始化
BOOL CAddOrDelInputMethod::OnInitDialog()
{
	CPropertyPage ::OnInitDialog();

	//得到输入法数
	int		nMethodNum	=OInputInit.GetInputMethodNum() ;
	char	sInputName[100] ;			//输入法名称
	char	sInputFileName[100] ;		//输入法文件名
               
	for( int i=1 ; i<nMethodNum ; i++ )
	{
		//得到输入法的名字与文件名
		OInputInit.GetInputMethod( i , sInputName , 100 ,
								sInputFileName , 100 ) ;
		//将输入法名加入列表框
		m_AddedInputMethods.InsertString( 0 , sInputName ) ;
	}
	
	return	TRUE ;
}

⌨️ 快捷键说明

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