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

📄 menubutt.cpp

📁 支持Windows 3.x、Windows 9x平台上的中文(GB、Big5)、日文(Shift JIS、EUC JIS)、韩文(KS C 5601)、HZ码的显示与输入,智能内码识别
💻 CPP
字号:
// menubutt.cpp : implementation file
//

#include "stdafx.h"

#include	"resource.h"
#include	"cspublic.h"
#include	"cskernel.h"

#include	"basicwin.h"
#include	"basicbut.h"
#include	"systemse.h"
#include "menubutt.h"
#include	"activebu.h"
#include	"cswin.h"
#include	"exitcs.h"
#include	"inputbar.h"
#include	"hintwin.h"
#include	"cs.h"

#ifdef _DEBUG
#undef THIS_FILE
static char BASED_CODE THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CMenuButton

CMenuButton::CMenuButton()
{
	m_pSystemSetSheet	=NULL ;
}

CMenuButton::~CMenuButton()
{
//	m_Menu.DestroyMenu() ;	//破坏菜单
}

BOOL	CMenuButton::InitButton( 
							LPCSTR 	lpcsName , 	//窗口名称
							const RECT &rect ,	//窗口大小
							CWnd 	*pParent ,	//父窗口
							UINT	uWinID ,	//窗口ID
							UINT	uBitmapID , 	//位图ID
							UINT	uMenuID )	//菜单ID		
{
	if( !m_Bitmap.LoadBitmap( uBitmapID ) )	//装入位图资源
		return	0 ;
//	if( !m_Menu.LoadMenu( uMenuID ) )	//装入菜单资源
//		return	0 ;

	m_bMenuStatus	=0 ;	//菜单初始状态	

/*	m_pSystemSetSheet	=(CSystemSetSheet*)new CSystemSetSheet( this ) ;
	if( !m_pSystemSetSheet )
		return	0 ;
*/		
	//创建窗口							
	return 	CBasicButton::InitButton( lpcsName , rect , pParent , uWinID ) ;
}

BEGIN_MESSAGE_MAP(CMenuButton, CBasicButton)
	//{{AFX_MSG_MAP(CMenuButton)
	ON_WM_LBUTTONDOWN()
	ON_WM_PAINT()
	ON_COMMAND(ID_SYSTEM_SET, OnSystemSet)
	ON_COMMAND(ID_EXIT_CS, OnExitCs)
	ON_COMMAND(ID_VERSION, OnVersion)
	ON_COMMAND(ID_FRIENDS, OnFriends)
	ON_COMMAND(ID_OUTPUT_GB, OnOutputGb)
	ON_COMMAND(ID_OUTPUT_BIG5, OnOutputBig5)
	ON_COMMAND(ID_OUTPUT_SHIFTJIS, OnOutputShiftjis)
	ON_COMMAND(ID_OUTPUT_EUCJIS, OnOutputEucjis)
	ON_COMMAND(ID_OUTPUT_KSC5601, OnOutputKsc5601)
	ON_COMMAND(ID_OUPUT_ENGLISH, OnOuputEnglish)
	ON_COMMAND(ID_SYSTEM_TRANSLATION, OnSystemTranslation)
	ON_COMMAND(ID_SYSTEM_INPUT, OnSystemInput)
	ON_WM_LBUTTONDBLCLK()
	ON_WM_MENUCHAR()
	ON_WM_MENUSELECT()
	ON_WM_RBUTTONDOWN()
	ON_WM_RBUTTONDBLCLK()
	ON_COMMAND(ID_SYSTEM_HELP, OnSystemHelp)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMenuButton message handlers

void CMenuButton::OnLButtonDown(UINT nFlags, CPoint point)
{
	// TODO: Add your message handler code here and/or call default
	CBasicButton::OnLButtonDown(nFlags, point);

	if( !m_bMenuStatus )	//没有显示菜单,显示菜单                
	{
		m_bMenuStatus	=1 ;		//标记显示菜单
		SetLineSwitch( 0 ) ;	//设上退化显示开关,不允许退化显示
	}
	else
	{
		m_bMenuStatus	=0 ;		//标记没有显示菜单
		SetLineSwitch( 1 ) ;	//打开退化显示开关,允许退化显示
		ActiveOldWin() ;	//激活以前的窗口
	}
	//改变按钮显示状态						
	Invalidate() ;
	UpdateWindow() ;		

	if( m_bMenuStatus )	//以前没有显示菜单,显示菜单
	{
		RECT	rect ;
		GetClientRect( &rect ) ;
		CPoint	point( 0 , rect.bottom ) ;
		ClientToScreen( &point ) ;	//转换成系统坐标,这是菜单的位置

		m_Menu.DestroyMenu() ;	//破坏菜单
		int	n	=GetOutputCode() ;	//得到当前输出内码
		CMenu	*pMenu ;
		switch( n )	//判断输出代码
		{
			case	0:	//GB		
				if( !m_Menu.LoadMenu( IDR_MENU1 ) )	//装入菜单资源
					return ;
				pMenu	=m_Menu.GetSubMenu( 0 ) ;
//				pMenu->ModifyMenu( 0 , MF_BYPOSITION|MF_BITMAP ,
//					0 , &m_Bitmap ) ;
//				pMenu->SetMenuItemBitmaps( 0 , MF_BYPOSITION ,
//					&m_Bitmap , &m_Bitmap ) ;

				if( GetFingerTranslate() )	//当前是可以进行指取翻译的
					pMenu->ModifyMenu( ID_SYSTEM_TRANSLATION ,
						MF_BYCOMMAND , ID_SYSTEM_TRANSLATION ,
						"禁止指取翻译(&T)" ) ;
				else
					pMenu->ModifyMenu( ID_SYSTEM_TRANSLATION ,
						MF_BYCOMMAND , ID_SYSTEM_TRANSLATION ,
						"启动指取翻译(&T)" ) ;
						
				if( GetInputBarStatus()!=2 )	//当前是可以进行中文输入的
					pMenu->ModifyMenu( ID_SYSTEM_INPUT ,
						MF_BYCOMMAND , ID_SYSTEM_INPUT ,
						"禁止中文输入(&I)" ) ;
				else
					pMenu->ModifyMenu( ID_SYSTEM_INPUT ,
						MF_BYCOMMAND , ID_SYSTEM_INPUT ,
						"启动中文输入(&I)" ) ;
				break ;
			case	1:	//BIG5
				if( !m_Menu.LoadMenu( IDR_MENU1_1 ) )
					return ;
				pMenu	=m_Menu.GetSubMenu( 0 ) ;

				if( GetFingerTranslate() )	//当前是可以进行指取翻译的
					pMenu->ModifyMenu( ID_SYSTEM_TRANSLATION ,
						MF_BYCOMMAND , ID_SYSTEM_TRANSLATION ,
						"窽ゎ

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -