INPUTBAR.H
上传用户:zhang8947
上传日期:2007-01-08
资源大小:1910k
文件大小:4k
- // InputBar.h : header file
- //
- #ifndef WM_USER_INPUT_CHAR
- //输入板上的字符操作
- #define WM_USER_INPUT_CHAR (WM_USER+2)
- #endif
- #ifndef WM_USER_CHANGE_BUTTON_STATUS
- //改变输入板上三个按钮的状态
- #define WM_USER_CHANGE_BUTTON_STATUS (WM_USER+3)
- #endif
- #ifndef WM_USER_SCROLL_PAGE
- //进行翻页
- #define WM_USER_SCROLL_PAGE (WM_USER+4)
- #endif
- #include "inbutton.h"
- //输入板窗口
- /////////////////////////////////////////////////////////////////////////////
- // CInputBar window
- #define MAX_BUTTON 7 //输入板上最多按钮
- #define MAX_INPUT_LEN 100 //输入英文最大长度
- #define MAX_HZ_ITEM 10 //汉字最多项数
- #define MAX_HZ_LEN 20 //每项汉字最多长度
- #define MAX_HZ_BUFF_LEN 34
- class CInputBar : public CBasicWin
- {
- public:
- // Operations
- void InitInputBar( void ) ; //初始化输入主窗口
- ~CInputBar() ;
- protected:
- // Generated message map functions
- //{{AFX_MSG(CInputBar)
- afx_msg LONG OnInputChar(WPARAM wParam=0 , LPARAM lParam=0 ) ;
- afx_msg LONG OnChangeButtonStatus(WPARAM wParam , LPARAM lParam ) ;
- afx_msg LONG OnScrollPage(WPARAM wParam , LPARAM lParam ) ;
- afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
- afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
- afx_msg void OnMouseMove(UINT nFlags, CPoint point);
- afx_msg void OnPaint();
- afx_msg void OnTimer(UINT nIDEvent);
- //}}AFX_MSG
- DECLARE_MESSAGE_MAP()
- //窗口的位置与大小属性
- private:
- CPoint m_OLeftTopPos ; //左上角的位置
- int m_nMainWidth ; //宽度
- int m_nMainHeight ; //高度
- //鼠标按钮状态属性
- BOOL m_bIsDown ; //0,表示鼠标没有按下,1表示已经按下
- CPoint m_OOldMousePos ; //原来的鼠标位置
- int m_nScrollButtonStatus ; //翻页按钮状态
- //按钮子窗口
- int m_nButtonNum ; //按钮数
- CInButton m_OButton[MAX_BUTTON] ;
- //------------------------------------------------------------------------//
-
- //输入缓冲区
- int m_nInputLen ; //已经输入的长度
- int m_nInputCursorPos ; //输入光标的位置
- char m_sInputBuff[MAX_INPUT_LEN+1] ; //接受输入的缓 冲区
- //光标状态,0隐藏,1显示
- BOOL m_bCursorStatus ;
- UINT m_uTimerID ; //时间器ID
-
- int m_nHzItemNum ; //返回的汉字数,每项以 结尾
- char m_sHzBuff[MAX_HZ_ITEM][MAX_HZ_LEN] ; //汉字缓冲区
- //汉字显示缓冲区
- int m_nShowHzLen ;
- char m_sShowHzBuff[MAX_HZ_BUFF_LEN+1] ;
- private:
- BOOL CreateInputBar( void ) ; //创建主输入窗口
- void JudgeInitStatus( void ) ; //判断输入板初始状态
- void SendOutHz( int n ) ; //向当前窗口输送汉字
- //改变翻页按钮
- void ShowScrollPage( int nStatus ) ;
- //--------------------------------------------------------------------//
- //输入板上输入字符的操作
- BOOL AddOneChar( char c ) ; //增加一个字符
- BOOL DelOneChar( BOOL bFlag ) ; //删除一个字符
- BOOL ClearChars( void ) ; //清空字符
- BOOL CursorLeft( void ) ; //光标左移
- BOOL CursorRight( void ) ; //光标右移
- BOOL CursorHome( void ) ; //光标到行首
- BOOL CursorEnd( void ) ; //光标到行尾
- //显示光标
- void ShowInputCursor( void ) ;
- //隐藏光标
- void HideInputCursor( void ) ;
- public:
- BOOL GetHz( int nFlag ) ; //根据输入的英文串,得到汉字
- void ShowInput( void ) ; //处理输入结果
- };
- /////////////////////////////////////////////////////////////////////////////
- //#define VK_ESCAPE 0x1b
- #define VK_F1 0x70
- #define VK_F2 0x71
- #define VK_F3 0x72
- #define VK_F4 0x73
- #define VK_F5 0x74
- #define VK_F6 0x75
- #define VK_F7 0x76
- #define VK_F8 0x77
- #define VK_F9 0x78
- #define VK_F10 0x79
- //#define VK_F11 0x7a
- //#define VK_F12 0x7b
- //#define VK_SNAPSHOT 0x2c
- #define VK_PAUSE 0x13
- #define VK_BACK 0x08
- #define VK_TAB 0x09
- //#define VK_RETURN 0x0d
- #define VK_SPACE 0x20
- //#define VK_INSERT 0x2d
- //#define VK_DELETE 0x2e
- #define VK_HOME 0x24
- #define VK_END 0x23
- #define VK_PRIOR 0x21
- #define VK_NEXT 0x22
- #define VK_LEFT 0x25
- #define VK_UP 0x26
- #define VK_RIGHT 0x27
- #define VK_DOWN 0x28
- #define VK_0 '0'
- #define VK_1 '1'
- #define VK_2 '2'
- #define VK_3 '3'
- #define VK_4 '4'
- #define VK_5 '5'
- #define VK_6 '6'
- #define VK_7 '7'
- #define VK_8 '8'
- #define VK_9 '9'
- #define VK_A 'A'
- #define VK_B 'B'
- #define VK_C 'C'
- #define VK_D 'D'
- #define VK_E 'E'
- #define VK_F 'F'
- #define VK_G 'G'
- #define VK_H 'H'
- #define VK_I 'I'
- #define VK_J 'J'
- #define VK_K 'K'
- #define VK_L 'L'
- #define VK_M 'M'
- #define VK_N 'N'
- #define VK_O 'O'
- #define VK_P 'P'
- #define VK_Q 'Q'
- #define VK_R 'R'
- #define VK_S 'S'
- #define VK_T 'T'
- #define VK_U 'U'
- #define VK_V 'V'
- #define VK_W 'W'
- #define VK_X 'X'
- #define VK_Y 'Y'
- #define VK_Z 'Z'