📄 ceditapp.cpp
字号:
return 0L;
case MYWM_NOTIFYICON:
// MYTRACE( "MYWM_NOTIFYICON\n" );
switch (lParam){
//キーワード:トレイ右クリックメニュー設定
// From Here Oct. 12, 2000 JEPRO 左右とも同一処理になっていたのを別々に処理するように変更
case WM_RBUTTONUP: // Dec. 24, 2002 towest UPに変更
::SetActiveWindow( m_hWnd );
::SetForegroundWindow( m_hWnd );
/* ポップアップメニュー(トレイ右ボタン) */
nId = CreatePopUpMenu_R();
switch( nId ){
// Nov. 21, 2000 JEPROtestnow
#if 0
case F_FONT:
/* フォント設定 */
{
// HWND hwndFrame;
// hwndFrame = ::GetParent( m_hwndParent );
/* フォント設定ダイアログ */
// if( m_pcEditDoc->SelectFont( &(m_pShareData->m_Common.m_lf) ) ){
if( m_pShareData->m_Common.m_lf.lfPitchAndFamily & FIXED_PITCH ){
m_pShareData->m_Common.m_bFontIs_FIXED_PITCH = TRUE; /* 現在のフォントは固定幅フォントである */
}else{
m_pShareData->m_Common.m_bFontIs_FIXED_PITCH = FALSE; /* 現在のフォントは固定幅フォントである */
}
/* 設定変更を反映させる */
/* 全編集ウィンドウへメッセージをポストする */
// m_cShareData.PostMessageToAllEditors(
// MYWM_CHANGESETTING,
// (WPARAM)0, (LPARAM)0, hwndFrame
// );
// }
}
break;
// case F_OPTION:
/* 共通設定 */
// {
/* 設定プロパティシート テスト用 */
// m_pcEditDoc->bOpenPropertySheet( -1/*, -1*/ );
// }
// break;
// case F_OPTION_TYPE:
/* タイプ別設定 */
// {
// CEditDoc::OpenPropertySheetTypes( -1, m_nSettingType );
// }
// break;
// case F_TYPE_LIST:
/* タイプ別設定一覧 */
// {
// CDlgTypeList cDlgTypeList;
// int nSettingType;
// nSettingType = m_pcEditDoc->m_nSettingType;
// if( cDlgTypeList.DoModal( m_hInstance, m_hWnd, &nSettingType ) ){
// /* タイプ別設定 */
// m_pcEditDoc->OpenPropertySheetTypes( -1, nSettingType );
// }
// }
// break;
#endif
case F_HELP_CONTENTS:
/* ヘルプ目次 */
{
char szHelp[_MAX_PATH + 1];
/* ヘルプファイルのフルパスを返す */
::GetHelpFilePath( szHelp );
ShowWinHelpContents( m_hWnd, szHelp ); // 目次を表示する
}
break;
case F_HELP_SEARCH:
/* ヘルプキーワード検索 */
{
char szHelp[_MAX_PATH + 1];
/* ヘルプファイルのフルパスを返す */
::GetHelpFilePath( szHelp );
::WinHelp( m_hWnd, szHelp, HELP_KEY, (ULONG_PTR)"" );
}
break;
// case F_MENU_ALLFUNC: //Jan. 12, 2001 JEPRO コマンド一覧は右クリックメニューから一応除外
// /* コマンド一覧 */
// CEditView::Command_MENU_ALLFUNC();
// break;
case F_EXTHELP1:
/* 外部ヘルプ1 */
// {
// CEditView::Command_EXTHELP1();
// }
// break;
do{
if( CShareData::getInstance()->ExtWinHelpIsSet() ) { // 共通設定のみ確認
break;
}else
{
::MessageBeep( MB_ICONHAND );
}
}while(IDYES == ::MYMESSAGEBOX(
NULL, MB_YESNOCANCEL | MB_ICONEXCLAMATION | MB_APPLMODAL | MB_TOPMOST,
GSTR_APPNAME,
"外部ヘルプ1が設定されていません。\n今すぐ設定しますか?")
);/*do-while*/
#if 0
{
retry:;
if( 0 == strlen( m_pShareData->m_Common.m_szExtHelp1 ) ){
::MessageBeep( MB_ICONHAND );
if( IDYES == ::MYMESSAGEBOX( NULL, MB_YESNOCANCEL | MB_ICONEXCLAMATION | MB_APPLMODAL | MB_TOPMOST, GSTR_APPNAME,
"外部ヘルプ1が設定されていません。\n今すぐ設定しますか?"
) ){
/* 共通設定 プロパティシート */
// if( !m_pcEditDoc->OpenPropertySheet( ID_PAGENUM_HELPER/*, IDC_EDIT_EXTHELP1*/ ) ){
// break;
// }
goto retry;
}
else {
break;
}
}
// CMemory cmemCurText;
/* 現在カーソル位置単語または選択範囲より検索等のキーを取得 */
// GetCurrentTextForSearch( cmemCurText );
// ::WinHelp( m_hwndParent, m_pShareData->m_Common.m_szExtHelp1, HELP_KEY, (ULONG_PTR)(char*)cmemCurText.GetPtr() );
// break;
}
#endif
break;
case F_EXTHTMLHELP:
/* 外部HTMLヘルプ */
{
// CEditView::Command_EXTHTMLHELP();
}
break;
case F_ABOUT:
/* バージョン情報 */
{
CDlgAbout cDlgAbout;
cDlgAbout.DoModal( m_hInstance, m_hWnd );
}
break;
// case IDM_EXITALL:
case F_EXITALL: //Dec. 26, 2000 JEPRO F_に変更
/* サクラエディタの全終了 */
CEditApp::TerminateApplication();
break;
default:
break;
}
return 0L;
// To Here Oct. 12, 2000
case WM_LBUTTONDOWN:
// Mar. 29, 2003 genta 念のためフラグクリア
bLDClick = false;
return 0L;
case WM_LBUTTONUP: // Dec. 24, 2002 towest UPに変更
// MYTRACE( "WM_LBUTTONDOWN\n" );
/* 03/02/20 左ダブルクリック後はメニューを表示しない ai Start */
if( bLDClick ){
bLDClick = false;
return 0L;
}
/* 03/02/20 ai End */
::SetActiveWindow( m_hWnd );
::SetForegroundWindow( m_hWnd );
/* ポップアップメニュー(トレイ左ボタン) */
// MYTRACE( "CreatePopUpMenu_L START\n" );
nId = CreatePopUpMenu_L();
// MYTRACE( "CreatePopUpMenu_L END\n" );
switch( nId ){
case F_FILENEW: /* 新規作成 */
// MYTRACE( "F_FILENEW\n" );
/* 新規編集ウィンドウの追加 */
OnNewEditor();
break;
case F_FILEOPEN: /* 開く */
// MYTRACE( "F_FILEOPEN\n" );
{
CDlgOpenFile cDlgOpenFile;
// char* pszMRU = NULL;;
char szPath[_MAX_PATH + 1];
int nCharCode;
BOOL bReadOnly;
HWND hWndOwner;
FileInfo* pfi;
// int i;
// int j;
char** ppszMRU;
char** ppszOPENFOLDER;
/* MRUリストのファイルのリスト */
//@@@ 2001.12.26 YAZAKI MRUリストは、CMRUにすべて依頼する
CMRU cMRU;
// ppszMRU = NULL;
ppszMRU = new char*[ cMRU.Length() + 1 ];
cMRU.GetPathList(ppszMRU);
/* OPENFOLDERリストのファイルのリスト */
//@@@ 2001.12.26 YAZAKI OPENFOLDERリストは、CMRUFolderにすべて依頼する
CMRUFolder cMRUFolder;
// ppszOPENFOLDER = NULL;
ppszOPENFOLDER = new char*[ cMRUFolder.Length() + 1 ];
cMRUFolder.GetPathList(ppszOPENFOLDER);
/* ファイルオープンダイアログの初期化 */
strcpy( szPath, "" );
nCharCode = CODE_AUTODETECT; /* 文字コード自動判別 */
bReadOnly = FALSE;
cDlgOpenFile.Create(
m_hInstance,
NULL/*m_hWnd*/,
"*.*",
ppszMRU[0],//@@@ 2001.12.26 YAZAKI m_fiMRUArrにはアクセスしない
(const char **)ppszMRU,
(const char **)ppszOPENFOLDER
);
if( !cDlgOpenFile.DoModalOpenDlg( szPath, &nCharCode, &bReadOnly ) ){
delete [] ppszMRU;
delete [] ppszOPENFOLDER;
break;
}
if( NULL == m_hWnd ){
delete [] ppszMRU;
delete [] ppszOPENFOLDER;
break;
}
delete [] ppszMRU;
delete [] ppszOPENFOLDER;
/* 指定ファイルが開かれているか調べる */
if( CShareData::getInstance()->IsPathOpened( szPath, &hWndOwner ) ){
::SendMessage( hWndOwner, MYWM_GETFILEINFO, 0, 0 );
// pfi = (FileInfo*)m_pShareData->m_szWork;
pfi = (FileInfo*)&m_pShareData->m_FileInfo_MYWM_GETFILEINFO;
int nCharCodeNew;
if( CODE_AUTODETECT == nCharCode ){ /* 文字コード自動判別 */
/*
|| ファイルの日本語コードセット判別
||
|| 【戻り値】
|| SJIS 0
|| JIS 1
|| EUC 2
|| Unicode 3
|| エラー -1
*/
nCharCodeNew = CMemory::CheckKanjiCodeOfFile( szPath );
if( -1 == nCharCodeNew ){
}else{
nCharCode = nCharCodeNew;
}
}
if( nCharCode != pfi->m_nCharCode ){ /* 文字コード種別 */
char* pszCodeNameCur = "";
char* pszCodeNameNew = "";
// gm_pszCodeNameArr_1 を使うように変更 Moca. 2002/05/26
if( -1 < pfi->m_nCharCode && pfi->m_nCharCode < CODE_CODEMAX ){
pszCodeNameCur = (char *)gm_pszCodeNameArr_1[pfi->m_nCharCode];
}
if( -1 < nCharCode && nCharCode < CODE_CODEMAX ){
pszCodeNameNew = (char *)gm_pszCodeNameArr_1[nCharCode];
}
::MYMESSAGEBOX( m_hWnd, MB_OK | MB_ICONEXCLAMATION | MB_TOPMOST, GSTR_APPNAME,
"%s\n\n既に開いているファイルを違う文字コードで開く場合は、\n一旦閉じてからでないと開けません。\n\n現在の文字コードセット=%s\n新しい文字コードセット=%s",
szPath, pszCodeNameCur, pszCodeNameNew
);
}
/* 開いているウィンドウをアクティブにする */
/* アクティブにする */
ActivateFrameWindow( hWndOwner );
}else{
if( strchr( szPath, ' ' ) ){
char szFile2[_MAX_PATH + 3];
wsprintf( szFile2, "\"%s\"", szPath );
strcpy( szPath, szFile2 );
}
/* 新たな編集ウィンドウを起動 */
CEditApp::OpenNewEditor( m_hInstance, m_hWnd, szPath, nCharCode, bReadOnly );
}
}
break;
case F_GREP_DIALOG:
/* Grep */
DoGrep(); //Stonee, 2001/03/21 Grepを別関数に
break;
case F_FILESAVEALL: // Jan. 24, 2005 genta 全て上書き保存
CShareData::getInstance()->PostMessageToAllEditors(
WM_COMMAND, MAKELONG( F_FILESAVE_QUIET, 0 ), (LPARAM)0, NULL);
break;
case F_WIN_CLOSEALL: //Oct. 17, 2000 JEPRO 名前を変更(F_FILECLOSEALL→F_WIN_CLOSEALL)
/* すべてのウィンドウを閉じる */ //Oct. 7, 2000 jepro 「編集ウィンドウの全終了」という説明を左記のように変更
CEditApp::CloseAllEditor();
break;
// case IDM_EXITALL:
case F_EXITALL: //Dec. 26, 2000 JEPRO F_に変更
/* サクラエディタの全終了 */
CEditApp::TerminateApplication();
break;
default:
if( nId - IDM_SELWINDOW >= 0 &&
nId - IDM_SELWINDOW < m_pShareData->m_nEditArrNum ){
hwndWork = m_pShareData->m_pEditArr[nId - IDM_SELWINDOW].m_hWnd;
//@@@ 2003.06.25 MIK
// ウィンドウ位置を復元
if( m_pShareData->m_TabWndWndpl.length
&& TRUE == m_pShareData->m_Common.m_bDispTabWnd
&& FALSE == m_pShareData->m_Common.m_bDispTabWndMultiWin )
{
::SetWindowPlacement( hwndWork, &(m_pShareData->m_TabWndWndpl) );
}
/* アクティブにする */
ActivateFrameWindow( hwndWork );
// if( ::IsIconic( hwndWork ) ){
// ::ShowWindow( hwndWork, SW_RESTORE );
// }else{
// ::ShowWindow( hwndWork, SW_SHOW );
// }
// ::SetForegroundWindow( hwndWork );
// ::SetActiveWindow( hwndWork );
}else
if( nId - IDM_SELMRU >= 0 &&
// nId - IDM_SELMRU < (( m_pShareData->m_nMRUArrNum < m_pShareData->m_Common.m_nMRUArrNum_MAX )?m_pShareData->m_nMRUArrNum :m_pShareData->m_Common.m_nMRUArrNum_MAX )
nId - IDM_SELMRU < 999
){
// char szPath[_MAX_PATH + 3];
// strcpy( szPath, &(m_pShareData->m_fiMRUArr[nId - IDM_SELMRU]) );
// if( strchr( szPath, ' ' ) ){
// char pszFile2[_MAX_PATH + 3];
// sprintf( pszFile2, "\"%s\"", szPath );
// strcpy( szPath, pszFile2 );
// }
/* 新しい編集ウィンドウを開く */
// From Here Oct. 27, 2000 genta カーソル位置を復元しない機能
//@@@ 2001.12.26 YAZAKI MRUリストは、CMRUに依頼する
CMRU cMRU;
FileInfo openFileInfo;
cMRU.GetFileInfo(nId - IDM_SELMRU, &openFileInfo);
if( m_pShareData->m_Common.GetRestoreCurPosition() ){
CEditApp::OpenNewEditor2( m_hInstance, m_hWnd, &openFileInfo, FALSE );
}
else {
CEditApp::OpenNewEditor( m_hInstance, m_hWnd,
openFileInfo.m_szPath,
openFileInfo.m_nCharCode,
FALSE );
}
// To Here Oct. 27, 2000 genta
}else
if( nId - IDM_SELOPENFOLDER >= 0 &&
nId - IDM_SELOPENFOLDER < 999
){
{
CDlgOpenFile cDlgOpenFile;
// char* pszMRU = NULL;;
char szPath[_MAX_PATH + 1];
int nCharCode;
BOOL bReadOnly;
HWND hWndOwner;
FileInfo* pfi;
// int i;
// int j;
char** ppszMRU;
char** ppszOPENFOLDER;
/* MRUリストのファイルのリスト */
//@@@ 2001.12.26 YAZAKI MRUリストは、CMRUに依頼する
CMRU cMRU;
ppszMRU = NULL;
ppszMRU = new char*[ cMRU.Length() + 1 ];
cMRU.GetPathList(ppszMRU);
/* OPENFOLDERリストのファイルのリスト */
//@@@ 2001.12.26 YAZAKI OPENFOLDERリストは、CMRUFolderにすべて依頼する
CMRUFolder cMRUFolder;
// ppszOPENFOLDER = NULL;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -