📄 inputbar.h
字号:
// 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 ; //返回的汉字数,每项以\0结尾
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'
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -