📄 menubutt.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 + -