⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 inputbar.h

📁 支持Windows 3.x、Windows 9x平台上的中文(GB、Big5)、日文(Shift JIS、EUC JIS)、韩文(KS C 5601)、HZ码的显示与输入,智能内码识别
💻 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 + -