MENUBUTT.CPP
上传用户:zhang8947
上传日期:2007-01-08
资源大小:1910k
文件大小:15k
- // 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 ,
- "窽ゎ