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

多国语言处理

开发平台:

Visual C++

  1. // InputBar.h : header file
  2. //
  3. #ifndef WM_USER_INPUT_CHAR
  4. //输入板上的字符操作
  5. #define WM_USER_INPUT_CHAR (WM_USER+2)
  6. #endif
  7. #ifndef WM_USER_CHANGE_BUTTON_STATUS
  8. //改变输入板上三个按钮的状态
  9. #define WM_USER_CHANGE_BUTTON_STATUS (WM_USER+3)
  10. #endif
  11. #ifndef WM_USER_SCROLL_PAGE
  12. //进行翻页
  13. #define WM_USER_SCROLL_PAGE (WM_USER+4)
  14. #endif
  15. #include "inbutton.h"
  16. //输入板窗口
  17. /////////////////////////////////////////////////////////////////////////////
  18. // CInputBar window
  19. #define MAX_BUTTON 7 //输入板上最多按钮
  20. #define MAX_INPUT_LEN 100 //输入英文最大长度
  21. #define MAX_HZ_ITEM 10 //汉字最多项数
  22. #define MAX_HZ_LEN 20 //每项汉字最多长度
  23. #define MAX_HZ_BUFF_LEN 34
  24. class CInputBar : public CBasicWin
  25. {
  26. public:
  27. // Operations
  28. void InitInputBar( void ) ; //初始化输入主窗口
  29. ~CInputBar() ;
  30. protected:
  31. // Generated message map functions
  32. //{{AFX_MSG(CInputBar)
  33. afx_msg LONG OnInputChar(WPARAM wParam=0 , LPARAM lParam=0 ) ;
  34. afx_msg LONG OnChangeButtonStatus(WPARAM wParam , LPARAM lParam ) ;
  35. afx_msg LONG OnScrollPage(WPARAM wParam , LPARAM lParam ) ;
  36. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  37. afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
  38. afx_msg void OnMouseMove(UINT nFlags, CPoint point);
  39. afx_msg void OnPaint();
  40. afx_msg void OnTimer(UINT nIDEvent);
  41. //}}AFX_MSG
  42. DECLARE_MESSAGE_MAP()
  43. //窗口的位置与大小属性
  44. private:
  45. CPoint m_OLeftTopPos ; //左上角的位置
  46. int m_nMainWidth ; //宽度
  47. int m_nMainHeight ; //高度
  48. //鼠标按钮状态属性
  49. BOOL m_bIsDown ; //0,表示鼠标没有按下,1表示已经按下
  50. CPoint m_OOldMousePos ; //原来的鼠标位置
  51. int m_nScrollButtonStatus ; //翻页按钮状态
  52. //按钮子窗口
  53. int m_nButtonNum ; //按钮数
  54. CInButton m_OButton[MAX_BUTTON] ;
  55. //------------------------------------------------------------------------//
  56. //输入缓冲区
  57. int m_nInputLen ; //已经输入的长度
  58. int m_nInputCursorPos ; //输入光标的位置
  59. char m_sInputBuff[MAX_INPUT_LEN+1] ; //接受输入的缓 冲区
  60. //光标状态,0隐藏,1显示
  61. BOOL m_bCursorStatus ;
  62. UINT m_uTimerID ; //时间器ID
  63. int m_nHzItemNum ; //返回的汉字数,每项以结尾
  64. char m_sHzBuff[MAX_HZ_ITEM][MAX_HZ_LEN] ; //汉字缓冲区
  65. //汉字显示缓冲区
  66. int m_nShowHzLen ;
  67. char m_sShowHzBuff[MAX_HZ_BUFF_LEN+1] ;
  68. private:
  69. BOOL CreateInputBar( void ) ; //创建主输入窗口
  70. void JudgeInitStatus( void ) ; //判断输入板初始状态
  71. void SendOutHz( int n ) ; //向当前窗口输送汉字
  72. //改变翻页按钮
  73. void ShowScrollPage( int nStatus ) ;
  74. //--------------------------------------------------------------------//
  75. //输入板上输入字符的操作
  76. BOOL AddOneChar( char c ) ; //增加一个字符
  77. BOOL DelOneChar( BOOL bFlag ) ; //删除一个字符
  78. BOOL ClearChars( void ) ; //清空字符
  79. BOOL CursorLeft( void ) ; //光标左移
  80. BOOL CursorRight( void ) ; //光标右移
  81. BOOL CursorHome( void ) ; //光标到行首
  82. BOOL CursorEnd( void ) ; //光标到行尾
  83. //显示光标
  84. void  ShowInputCursor( void ) ;
  85. //隐藏光标
  86. void  HideInputCursor( void ) ;
  87. public:
  88. BOOL GetHz( int nFlag ) ; //根据输入的英文串,得到汉字
  89. void ShowInput( void ) ; //处理输入结果
  90. };
  91. /////////////////////////////////////////////////////////////////////////////
  92. //#define VK_ESCAPE 0x1b
  93. #define VK_F1 0x70
  94. #define VK_F2 0x71
  95. #define VK_F3 0x72
  96. #define VK_F4 0x73
  97. #define VK_F5 0x74
  98. #define VK_F6 0x75
  99. #define VK_F7 0x76
  100. #define VK_F8 0x77
  101. #define VK_F9 0x78
  102. #define VK_F10 0x79
  103. //#define VK_F11 0x7a
  104. //#define VK_F12 0x7b
  105. //#define VK_SNAPSHOT 0x2c
  106. #define VK_PAUSE 0x13
  107. #define VK_BACK 0x08
  108. #define VK_TAB 0x09
  109. //#define VK_RETURN 0x0d
  110. #define VK_SPACE 0x20
  111. //#define VK_INSERT 0x2d
  112. //#define VK_DELETE 0x2e
  113. #define VK_HOME 0x24
  114. #define VK_END 0x23
  115. #define VK_PRIOR 0x21
  116. #define VK_NEXT 0x22
  117. #define VK_LEFT 0x25
  118. #define VK_UP 0x26
  119. #define VK_RIGHT 0x27
  120. #define VK_DOWN 0x28
  121. #define VK_0 '0'
  122. #define VK_1 '1'
  123. #define VK_2 '2'
  124. #define VK_3 '3'
  125. #define VK_4 '4'
  126. #define VK_5 '5'
  127. #define VK_6 '6'
  128. #define VK_7 '7'
  129. #define VK_8 '8'
  130. #define VK_9 '9'
  131. #define VK_A 'A'
  132. #define VK_B 'B'
  133. #define VK_C 'C'
  134. #define VK_D 'D'
  135. #define VK_E 'E'
  136. #define VK_F 'F'
  137. #define VK_G 'G'
  138. #define VK_H 'H'
  139. #define VK_I 'I'
  140. #define VK_J 'J'
  141. #define VK_K 'K'
  142. #define VK_L 'L'
  143. #define VK_M 'M'
  144. #define VK_N 'N'
  145. #define VK_O 'O'
  146. #define VK_P 'P'
  147. #define VK_Q 'Q'
  148. #define VK_R 'R'
  149. #define VK_S 'S'
  150. #define VK_T 'T'
  151. #define VK_U 'U'
  152. #define VK_V 'V'
  153. #define VK_W 'W'
  154. #define VK_X 'X'
  155. #define VK_Y 'Y'
  156. #define VK_Z 'Z'