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

📄 ceditapp.cpp

📁 日本的开源编辑器源码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
			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 + -