TOOLBOX.CPP
上传用户:zhang8947
上传日期:2007-01-08
资源大小:1910k
文件大小:4k
源码类别:

多国语言处理

开发平台:

Visual C++

  1. // toolbox.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "resource.h"
  5. #include "systemse.h"
  6. //#include "toolbox.h"
  7. #ifdef _DEBUG
  8. #undef THIS_FILE
  9. static char BASED_CODE THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CToolBox dialog
  13. CToolBox::CToolBox(UINT id)
  14. : CCommonPage(id)
  15. {
  16. //{{AFX_DATA_INIT(CToolBox)
  17. //}}AFX_DATA_INIT
  18. }
  19. void CToolBox::DoDataExchange(CDataExchange* pDX)
  20. {
  21. CPropertyPage::DoDataExchange(pDX);
  22. //{{AFX_DATA_MAP(CToolBox)
  23. DDX_Control(pDX, IDC_LIST1, m_Tools);
  24. //}}AFX_DATA_MAP
  25. }
  26. BEGIN_MESSAGE_MAP(CToolBox, CPropertyPage)
  27. //{{AFX_MSG_MAP(CToolBox)
  28. ON_BN_CLICKED(IDC_BUTTON1, OnAddTool)
  29. ON_BN_CLICKED(IDC_BUTTON2, OnDeleteTool)
  30. ON_LBN_DBLCLK(IDC_LIST1, OnDblclkList1)
  31. //}}AFX_MSG_MAP
  32. END_MESSAGE_MAP()
  33. /////////////////////////////////////////////////////////////////////////////
  34. // CToolBox message handlers
  35. //增加一个工具
  36. void CToolBox::OnAddTool()
  37. {
  38. // TODO: Add your control notification handler code here
  39. CFileDialog fileDialog( TRUE , "exe" ,  "*.exe" , 
  40. OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT ,
  41. "Exec Files(*.exe;*.com)|*.exe;*.com|All Files(*.*)|*.*||" ) ; 
  42. // fileDialog.m_ofn.lpstrTitle ="请选择需要加入工具箱的执行程序" ;
  43. if( fileDialog.DoModal() == IDOK )
  44. {
  45. CString pathName =fileDialog.GetPathName() ;
  46. LPCSTR lpcsPathName=pathName.GetBuffer( pathName.GetLength() );
  47. //检查工具箱中是否已经有该工具
  48. if( m_Tools.FindString( 0 , lpcsPathName )!=LB_ERR ) //已经存在
  49. {
  50. char sBuff[1000] ;
  51. wsprintf( sBuff , "%s 已经存在了!" , lpcsPathName ) ;
  52. MessageBox( sBuff , "中文大观" , MB_ICONSTOP ) ;
  53. }
  54. else
  55. {
  56. m_Tools.AddString( lpcsPathName ) ;
  57. AfxGetMainWnd()->SendMessage( 
  58. WM_USER_CHANGE_ACTION_BUTTON , 
  59. 1 , (LPARAM)lpcsPathName ) ;
  60. }
  61. }
  62. }
  63. //删除一个工具
  64. void CToolBox::OnDeleteTool()
  65. {
  66. // TODO: Add your control notification handler code here
  67. if( m_Tools.GetCurSel() != LB_ERR ) //选择了一个
  68. if( MessageBox( "真想删除该工具吗?" , "中文大观" ,
  69. MB_ICONQUESTION|MB_YESNO ) == IDYES )
  70. {
  71. AfxGetMainWnd()->SendMessage( 
  72. WM_USER_CHANGE_ACTION_BUTTON , 
  73. 2 , (LPARAM)m_Tools.GetCurSel() ) ;
  74. m_Tools.DeleteString( m_Tools.GetCurSel() ) ;
  75. }
  76. }
  77. void CToolBox::OnDblclkList1()
  78. {
  79. // TODO: Add your control notification handler code here
  80. OnDeleteTool() ; //删除双击项
  81. }
  82. BOOL CToolBox::OnInitDialog()
  83. {
  84. CCommonPage::OnInitDialog();
  85. // TODO: Add extra initialization here
  86. char sBuff[100] ;
  87. //得到工具数
  88. ::GetPrivateProfileString( "工具箱" , "工具数目" , "0" ,
  89. sBuff , 100 , INI_FILE_NAME ) ;
  90. int nNumOfTools =atoi( sBuff ) ;
  91. char sToolName[1000] ;
  92. for( int i=0 ; i<nNumOfTools ; i++ )
  93. {
  94. //得到某个工具执行文件名
  95. wsprintf( sBuff , "工具%d" , i+1 ) ;
  96. ::GetPrivateProfileString( "工具箱" , sBuff , "Error.error" , 
  97. sToolName , 1000 , INI_FILE_NAME ) ;
  98. if( !_fstrcmp( "Error.error" , sToolName ) )
  99. {
  100. wsprintf( sBuff , 
  101. "ini 文件中的工具%d 的执行文件名有问题" , i+1 ) ;
  102. MessageBox( sBuff , "中文大观" , MB_ICONSTOP ) ;
  103. }
  104. m_Tools.AddString( sToolName ) ;
  105. }
  106. return TRUE;  // return TRUE  unless you set the focus to a control
  107. }
  108. void CToolBox::OnOK()
  109. {
  110. // TODO: Add extra validation here
  111. int nNumOfTools =m_Tools.GetCount() ;
  112. if( nNumOfTools != LB_ERR )
  113. {
  114. char sBuff[100] ;
  115. CString ToolName ;
  116. //如果删除了某些工具,先删除INI文件中的多余工具
  117. //得到工具数
  118. ::GetPrivateProfileString( "工具箱" , "工具数目" , "0" ,
  119. sBuff , 100 , INI_FILE_NAME ) ;
  120. int nNumOfOldTools =atoi( sBuff ) ;
  121. for( int i=nNumOfTools ; i<nNumOfOldTools ; i++ )
  122. {
  123. wsprintf( sBuff , "工具%d" , i+1 ) ;
  124. ::WritePrivateProfileString( "工具箱" , sBuff , NULL , INI_FILE_NAME) ;
  125. }
  126. //保存工具箱中的工具
  127. wsprintf( sBuff , "%d" , nNumOfTools ) ;
  128. ::WritePrivateProfileString( "工具箱" , "工具数目" , sBuff , 
  129. INI_FILE_NAME ) ; //工具数目
  130. for( i=0 ; i<nNumOfTools ; i++ )
  131. {
  132. wsprintf( sBuff , "工具%d" , i+1 ) ;
  133. m_Tools.GetText( i , ToolName ) ;
  134. ::WritePrivateProfileString( "工具箱" , sBuff , 
  135. ToolName.GetBuffer( ToolName.GetLength() ) , INI_FILE_NAME ) ;
  136. }
  137. }
  138. CPropertyPage::OnOK();
  139. }
  140. void CToolBox::OnCancel()
  141. {
  142. //重新载入所有动作按钮
  143. AfxGetMainWnd()->SendMessage( 
  144. WM_USER_CHANGE_ACTION_BUTTON ) ;
  145. }