www.pudn.com > 智能内码识别,支持屏幕取词翻译的程序.zip > CSWIN.H


// cswin.h : header file 
// 
 
#ifndef	WM_USER_CHANGE_ACTION_BUTTON 
#define	WM_USER_CHANGE_ACTION_BUTTON	(WM_USER+1) 
#endif 
#ifndef	WM_USER_SET_TIMER 
#define	WM_USER_SET_TIMER	(WM_USER+2) 
#endif 
 
#define	TIME_TO_WAIT_FOR_LINE	3000 
#define	TIMER1_ID			222 
 
#define	MAX_ACTIVE_BUTTON	20		//动作按钮最大个数 
#define	BUTTON_WIDTH	22				//按钮宽度 
#define	BUTTON_HEIGHT	18				//按钮高度 
#define	MOVE_TAB			2				//拉动飞条的空余度 
 
///////////////////////////////////////////////////////////////////////////// 
// CCsWin window 
 
class CCsWin : public CBasicWin 
{ 
// Construction 
public: 
	CCsWin(); 
// Implementation 
public: 
	virtual ~CCsWin(); 
protected: 
	// Generated message map functions 
	//{{AFX_MSG(CCsWin) 
	afx_msg	LONG OnChangeActionButton(WPARAM wParam=0 , LPARAM lParam=0 ) ; 
	afx_msg LONG OnSetTimer( 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 OnDestroy(); 
	afx_msg void OnTimer(UINT nIDEvent); 
	afx_msg BOOL OnQueryEndSession(); 
	//}}AFX_MSG 
	DECLARE_MESSAGE_MAP() 
	 
	private: 
		BOOL	m_bButtonIsDown ;	//标记鼠标键是否按下,1是,0否	 
		CPoint	m_OldMousePos ;		//原来的鼠标位置 
		 
		CPoint	m_LeftTopPos ;		//窗口左上角位置 
		int		m_nRowNum ;	//浮动条的行数,缺省为1 
		int		m_nInitRowNum ;	//改变浮动条大小开始时的行数, 
												//改变浮动条大小用 
		int		m_nColNum ;		//浮动条的列数 
 
		int		m_nWidth ;          //窗口长度 
		int		m_nHeight ;			//窗口高度 
		 
		int		m_nTuiHuaWidth ;	//浮动条退化后的宽度,缺省为原宽度 
		int		m_nTuiHuaHeight ;	//浮动条退化后的高度,缺省为4 
 
		CMenuButton		m_SystemButton ;		//系统菜单按钮 
		int		m_nActiveButtonNum ;		//动作按钮数 
		CActiveButton	m_ActiveButton[MAX_ACTIVE_BUTTON] ; 
		 
		int		m_nMoveStatus ;	//移动方式,0不做处理,1拖动窗口, 
								//2下拉伸,3上拉伸,4右拉伸,5左拉伸 
	private: 
		//显示所有子窗口 
		void ShowSubWins( void ) ; 
		//隐藏所有子窗口 
		void HideSubWins( void ) ; 
 
		void	ChangeLayout( void ) ;	//根本宽度、高度重要调整布局 
		 
		//根据现在飞条的行与列计算下一步的行数 
		//nFlag为1,增加行,0减少行 
		//nFlag1为1,是行,0是列 
		int			GetNextRowOrColNum( int nFlag , int nFlag1 ) ;  
		void	AddRow( void ) ;		//增加行数 
		void	SubRow( void ) ;		//减少行数 
		 
		//增加一个动作按钮 
		void	AddOneActionButton( LPCSTR lpcsName ) ; 
		//删除一个动作按钮 
		void	DelOneActionButton( int n ) ; 
		//保存参数 
		void	SaveParams( void ) ; 
		//从INI文件重新载入动作按钮 
		void	ReloadAllActionButtons( void ) ; 
 
		//得到一些常用的Windows 程序 
		void	GetSomePrograms( void ) ; 
		//结束 
		void	EndCs() ; 
	public: 
		void	ButtonDown( CWnd *pWnd , CPoint p ) ;	//鼠标按下 
		void	ButtonUp( void ) ;	//鼠标松开 
		void	MoveWindowToNewPos( CWnd *pWnd , CPoint p ) ;	//移动窗口 
 
		//判断浮动条的初始状态 
		void	JudgeInitStatus( void ) ; 
}; 
 
/////////////////////////////////////////////////////////////////////////////