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

多国语言处理

开发平台:

Visual C++

  1. //中文大观主程序
  2. #include "stdafx.h"
  3. #include "resource.h"
  4. //#include "ctl3d.h"
  5. #include "welcome.h"
  6. #include "basicwin.h"
  7. #include "basicbut.h"
  8. #include "systemse.h"
  9. #include "menubutt.h"
  10. #include "activebu.h"
  11. #include "cswin.h"
  12. #include "inputbar.h"
  13. #include "hintwin.h"
  14. #include "cs.h"
  15. #include "cspublic.h"
  16. #include "cskernel.h"
  17. #include "csinput.h"
  18. #ifdef _DEBUG
  19. #undef THIS_FILE
  20. static char BASED_CODE THIS_FILE[] = __FILE__;
  21. #endif
  22. CCsApp NEAR csApp ;
  23. CCsApp::CCsApp( void )
  24. {
  25. m_nCount =0 ;
  26. m_pCsWin =NULL ;
  27. }
  28. BOOL CCsApp::InitInstance()
  29. {
  30. m_nCount++ ;
  31. if( m_hPrevInstance )
  32. {
  33. /* int n =GetMainWinStatus() ; //得到主窗口状态
  34. if( !n ) //原来是隐藏的
  35. SwitchMainWin() ;
  36. else if( n==1 ) //为退化显示
  37. {
  38. SetMainWinStatus( 2 ) ; //状态设为正常显示
  39. m_pMainWnd->ShowWindow( SW_SHOWNOACTIVATE ) ;
  40. m_pMainWnd->UpdateWindow() ;
  41. }
  42. */
  43. return FALSE ;
  44. }
  45. CSplashWnd splash ;
  46. if(!WelcomeToYou( splash ,"welcome.bmp"))
  47. return FALSE ;
  48. //---------------------------------------------------------------------//
  49. //挂上汉字系统
  50. if( GetPrivateProfileInt( "输出" , "缺省输出代码" , 0 , INI_FILE_NAME )
  51.      <5 || //需要显示汉字
  52.      GetPrivateProfileInt( "指取翻译" , "是否进行指取翻译" ,
  53. 1 , INI_FILE_NAME ) ) //需要指取翻译
  54. ToChinese() ;
  55. else
  56. LoadZk() ; //装入显示字库
  57. //得到是否进行指取翻译
  58. if( GetPrivateProfileInt( "指取翻译" , "是否进行指取翻译" ,
  59. 1 , INI_FILE_NAME ) )
  60. HookFingerOn() ; //挂上指取模块
  61. //挂上所有钩子
  62. HookOnAllHooks() ;
  63. //--------------------------------------------------------------------//
  64. //设置背景颜色
  65. SetDialogBkColor();        // Set dialog background color to gray
  66. /* DWORD dwVersion ;
  67.      dwVersion = GetVersion() ; 
  68.      BYTE verOfWin =  HIBYTE(LOWORD( dwVersion ) );
  69.      if( verOfWin != 95 )
  70.      {                           
  71. Ctl3dRegister(m_hInstance);
  72. Ctl3dAutoSubclass(m_hInstance);
  73. }
  74. */
  75. m_pCsWin =new CCsWin ;
  76. m_pMainWnd =m_pCsWin ;
  77. ASSERT( m_pMainWnd ) ;
  78. m_pMainWnd->ShowWindow( SW_SHOWNOACTIVATE ) ;
  79. m_pMainWnd->UpdateWindow() ;
  80. //判断浮动条的初始状态
  81. m_pCsWin->JudgeInitStatus() ;
  82. //将主窗口句柄放到公用DLL中
  83. SetMainWinHandle( m_pMainWnd->m_hWnd ) ;
  84. //创建输入板
  85. if( GetPrivateProfileInt( "输入板参数" , "输入板状态" , 1 , 
  86. INI_FILE_NAME )!=2 ) //可以进行中文输入
  87. HookOnInput() ;
  88. //创建hint窗口
  89. m_pHintWin =new CHintWin( "HintWnd" ) ;
  90. //设置hint或临时窗口
  91. SetHintHwnd( m_pHintWin->m_hWnd ) ;
  92. return TRUE ;
  93. }
  94. int CCsApp::ExitInstance()
  95. {
  96. m_nCount-- ;
  97. if( m_nCount )
  98. return 0 ;
  99. if( m_pHintWin )
  100. {
  101. delete m_pHintWin ;
  102. m_pHintWin =NULL ;
  103. }
  104. if( GetInputBarStatus()!=2 )
  105. HookOffInput() ;
  106. if( m_pCsWin ) 
  107. {
  108. delete m_pCsWin ;
  109. m_pCsWin =NULL ;
  110. }
  111. /* DWORD dwVersion ;
  112.      dwVersion = GetVersion() ; 
  113.      BYTE verOfWin =  HIBYTE(LOWORD( dwVersion ) );
  114.      if( verOfWin != 95 )
  115. Ctl3dUnregister(m_hInstance);
  116. */
  117. return 0 ; //表示没有错误
  118. }
  119. //挂上输入法
  120. void CCsApp::HookOnInput( void )
  121. {
  122. m_pInputBar =new CInputBar ;
  123. ASSERT( m_pInputBar ) ;
  124. m_pInputBar->InitInputBar() ;
  125. }
  126. //卸掉输入法
  127. void CCsApp::HookOffInput( void )
  128. {
  129. //卸掉输入法库
  130. UnloadInputLib() ;
  131. if( m_pInputBar )
  132. {
  133. delete m_pInputBar ;
  134. m_pInputBar =NULL ;
  135. }
  136. }