亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cdlgreplace.cpp

?? 日本的開源編輯器源碼
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
//	$Id: CDlgReplace.cpp,v 1.18 2003/01/01 01:58:15 Administrator Exp $
/*!	@file
	@brief 置換ダイアログ

	@author Norio Nakatani
	@date 2001/06/23 N.Nakatani 単語単位で検索する機能を実裝
	$Revision: 1.18 $
*/
/*
	Copyright (C) 1998-2001, Norio Nakatani
	Copyright (C) 2001, genta, Stonee, hor, YAZAKI
	Copyright (C) 2002, MIK, hor, novice, genta, aroka

	This source code is designed for sakura editor.
	Please contact the copyright holder to use this code for other purpose.
*/
#include "sakura_rc.h"
#include "CDlgReplace.h"
#include "debug.h"
#include "CEditView.h"
#include "etc_uty.h"
#include "global.h"
#include "funccode.h"		// Stonee, 2001/03/12
#include "CLayout.h"/// 2002/2/3 aroka
#include "CEditDoc.h"	//	2002/5/13 YAZAKI ヘッダ整理

//置換 CDlgReplace.cpp	//@@@ 2002.01.07 add start MIK
#include "sakura.hh"
const DWORD p_helpids[] = {	//11900
	IDC_BUTTON_SEARCHNEXT,			HIDC_REP_BUTTON_SEARCHNEXT,			//下検索
	IDC_BUTTON_SEARCHPREV,			HIDC_REP_BUTTON_SEARCHPREV,			//上検索
	IDC_BUTTON_REPALCE,				HIDC_REP_BUTTON_REPALCE,			//置換
	IDC_BUTTON_REPALCEALL,			HIDC_REP_BUTTON_REPALCEALL,			//全置換
	IDCANCEL,						HIDCANCEL_REP,						//キャンセル
	IDC_BUTTON_HELP,				HIDC_REP_BUTTON_HELP,				//ヘルプ
	IDC_CHK_PASTE,					HIDC_REP_CHK_PASTE,					//クリップボードから貼り付け
	IDC_CHK_WORD,					HIDC_REP_CHK_WORD,					//単語単位
	IDC_CHK_LOHICASE,				HIDC_REP_CHK_LOHICASE,				//大文字小文字
	IDC_CHK_REGULAREXP,				HIDC_REP_CHK_REGULAREXP,			//正規表現
	IDC_CHECK_NOTIFYNOTFOUND,		HIDC_REP_CHECK_NOTIFYNOTFOUND,		//見つからないときに通知
	IDC_CHECK_bAutoCloseDlgReplace,	HIDC_REP_CHECK_bAutoCloseDlgReplace,	//自動的に閉じる
	IDC_COMBO_TEXT,					HIDC_REP_COMBO_TEXT,				//置換前
	IDC_COMBO_TEXT2,				HIDC_REP_COMBO_TEXT2,				//置換後
	IDC_RADIO_REPLACE,				HIDC_REP_RADIO_REPLACE,				//置換対象:置換
	IDC_RADIO_INSERT,				HIDC_REP_RADIO_INSERT,				//置換対象:挿入
	IDC_RADIO_ADD,					HIDC_REP_RADIO_ADD,					//置換対象:追加
	IDC_RADIO_SELECTEDAREA,			HIDC_REP_RADIO_SELECTEDAREA,		//範囲:全體
	IDC_RADIO_ALLAREA,				HIDC_REP_RADIO_ALLAREA,				//範囲:選択範囲
	IDC_STATIC_JRE32VER,			HIDC_REP_STATIC_JRE32VER,			//正規表現バージョン
	IDC_BUTTON_SETMARK,				HIDC_REP_BUTTON_SETMARK,			//2002.01.16 hor 検索該當行をマーク
	IDC_CHECK_SEARCHALL,			HIDC_REP_CHECK_SEARCHALL,			//2002.01.26 hor 先頭(末尾)から再検索
//	IDC_STATIC,						-1,
	0, 0
};	//@@@ 2002.01.07 add end MIK

CDlgReplace::CDlgReplace()
{
	m_bLoHiCase = FALSE;		/* 英大文字と英小文字を區別する */
	m_bWordOnly = FALSE;		/* 一致する単語のみ検索する */
	m_bRegularExp = FALSE;		/* 正規表現 */
	m_bSelectedArea = FALSE;	/* 選択範囲內置換 */
	m_szText[0] = '\0';			/* 検索文字列 */
	m_szText2[0] = '\0';		/* 置換後文字列 */
	m_nReplaceTarget = 0;		/* 置換対象 */		// 2001.12.03 hor
	m_nPaste = FALSE;			/* 貼り付ける? */	// 2001.12.03 hor
	m_nReplaceCnt = 0;			//すべて置換の実行結果		// 2002.02.08 hor
	m_bCanceled = false;		//すべて置換を中斷したか	// 2002.02.08 hor
	return;
}

/* モードレスダイアログの表示 */
HWND CDlgReplace::DoModeless( HINSTANCE hInstance, HWND hwndParent, LPARAM lParam, BOOL bSelected )
{
	m_bRegularExp = m_pShareData->m_Common.m_bRegularExp;			/* 1==正規表現 */
	m_bLoHiCase = m_pShareData->m_Common.m_bLoHiCase;				/* 1==英大文字小文字の區別 */
	m_bWordOnly = m_pShareData->m_Common.m_bWordOnly;				/* 1==単語のみ検索 */
	m_bSelectedArea = m_pShareData->m_Common.m_bSelectedArea;		/* 選択範囲內置換 */
	m_bNOTIFYNOTFOUND = m_pShareData->m_Common.m_bNOTIFYNOTFOUND;	/* 検索/置換  見つからないときメッセージを表示 */
	m_bSelected = bSelected;
	m_nEscCaretPosX_PHY = ((CEditView*)lParam)->m_nCaretPosX_PHY;	/* 検索/置換開始時のカーソル位置退避	02/07/28 ai */
	m_nEscCaretPosY_PHY = ((CEditView*)lParam)->m_nCaretPosY_PHY;	/* 検索/置換開始時のカーソル位置退避	02/07/28 ai */
	((CEditView*)lParam)->m_bSearch = TRUE;							/* 検索/置換開始位置の登録有無			02/07/28 ai */
	return CDialog::DoModeless( hInstance, hwndParent, IDD_REPLACE, lParam, SW_SHOW );
}

/* モードレス時:置換?検索対象となるビューの変更 */
void CDlgReplace::ChangeView( LPARAM pcEditView )
{
	m_lParam = pcEditView;
	return;
}




/* ダイアログデータの設定 */
void CDlgReplace::SetData( void )
{
	int		i;
	HWND	hwndCombo;
//	m_hWnd = hwndDlg;	/* このダイアログのハンドル */

	/* 検索文字列 */
	::SetDlgItemText( m_hWnd, IDC_COMBO_TEXT, m_szText );
	hwndCombo = ::GetDlgItem( m_hWnd, IDC_COMBO_TEXT );
	for( i = 0; i < m_pShareData->m_nSEARCHKEYArrNum; ++i ){
		::SendMessage( hwndCombo, CB_ADDSTRING, 0, (LPARAM)m_pShareData->m_szSEARCHKEYArr[i] );
	}

	/* 置換後文字列 */
	::SetDlgItemText( m_hWnd, IDC_COMBO_TEXT2, m_szText2 );
	hwndCombo = ::GetDlgItem( m_hWnd, IDC_COMBO_TEXT2 );
	for( i = 0; i < m_pShareData->m_nREPLACEKEYArrNum; ++i ){
		::SendMessage( hwndCombo, CB_ADDSTRING, 0, (LPARAM)m_pShareData->m_szREPLACEKEYArr[i] );
	}

	/* 英大文字と英小文字を區別する */
	::CheckDlgButton( m_hWnd, IDC_CHK_LOHICASE, m_bLoHiCase );

	// 2001/06/23 N.Nakatani
	/* 単語単位で探す */
	::CheckDlgButton( m_hWnd, IDC_CHK_WORD, m_bWordOnly );

// From Here 2001.12.03 hor
//	/* 選択範囲內置換 */
//	if( m_pShareData->m_Common.m_bSelectedArea ){
//		::CheckDlgButton( m_hWnd, IDC_RADIO_SELECTEDAREA, TRUE );
//	}else{
//		::CheckDlgButton( m_hWnd, IDC_RADIO_ALLAREA, TRUE );
//	}
// To Here 2001.12.03 hor

	// From Here Jun. 29, 2001 genta
	// 正規表現ライブラリの差し替えに伴う処理の見直し
	// 処理フロー及び判定條件の見直し。必ず正規表現のチェックと
	// 無関係にCheckRegexpVersionを通過するようにした。
	if( CheckRegexpVersion( m_hWnd, IDC_STATIC_JRE32VER, false )
		&& m_bRegularExp){
		/* 英大文字と英小文字を區別する */
		::CheckDlgButton( m_hWnd, IDC_CHK_REGULAREXP, 1 );
		//	正規表現のときも選択できるように。
//		::CheckDlgButton( m_hWnd, IDC_CHK_LOHICASE, 1 );
//		::EnableWindow( ::GetDlgItem( m_hWnd, IDC_CHK_LOHICASE ), FALSE );

		// 2001/06/23 N.Nakatani
		/* 単語単位で探す */
		::EnableWindow( ::GetDlgItem( m_hWnd, IDC_CHK_WORD ), FALSE );
	}
	else {
		::CheckDlgButton( m_hWnd, IDC_CHK_REGULAREXP, 0 );
	}
	// To Here Jun. 29, 2001 genta

	/* 検索/置換  見つからないときメッセージを表示 */
	::CheckDlgButton( m_hWnd, IDC_CHECK_NOTIFYNOTFOUND, m_bNOTIFYNOTFOUND );


	/* 置換 ダイアログを自動的に閉じる */
	::CheckDlgButton( m_hWnd, IDC_CHECK_bAutoCloseDlgReplace, m_pShareData->m_Common.m_bAutoCloseDlgReplace );

	/* 先頭(末尾)から再検索 2002.01.26 hor */
	::CheckDlgButton( m_hWnd, IDC_CHECK_SEARCHALL, m_pShareData->m_Common.m_bSearchAll );

	// From Here 2001.12.03 hor
	// クリップボードから貼り付ける?
	::CheckDlgButton( m_hWnd, IDC_CHK_PASTE, m_nPaste );
	// 置換対象
	if(m_nReplaceTarget==0){
		::CheckDlgButton( m_hWnd, IDC_RADIO_REPLACE, TRUE );
	}else
	if(m_nReplaceTarget==1){
		::CheckDlgButton( m_hWnd, IDC_RADIO_INSERT, TRUE );
	}else
	if(m_nReplaceTarget==2){
		::CheckDlgButton( m_hWnd, IDC_RADIO_ADD, TRUE );
	}
	// To Here 2001.12.03 hor

	return;
}




/* ダイアログデータの取得 */
/* 0==條件未入力  0より大きい==正常   0より小さい==入力エラー */
int CDlgReplace::GetData( void )
{
//	int			i;
//	int			j;
//	CMemory*	pcmWork;

	/* 英大文字と英小文字を區別する */
	m_bLoHiCase = ::IsDlgButtonChecked( m_hWnd, IDC_CHK_LOHICASE );

	// 2001/06/23 N.Nakatani
	/* 単語単位で探す */
	m_bWordOnly = ::IsDlgButtonChecked( m_hWnd, IDC_CHK_WORD );

	/* 正規表現 */
	m_bRegularExp = ::IsDlgButtonChecked( m_hWnd, IDC_CHK_REGULAREXP );
	/* 選択範囲內置換 */
	m_bSelectedArea = ::IsDlgButtonChecked( m_hWnd, IDC_RADIO_SELECTEDAREA );
	/* 検索/置換  見つからないときメッセージを表示 */
	m_bNOTIFYNOTFOUND = ::IsDlgButtonChecked( m_hWnd, IDC_CHECK_NOTIFYNOTFOUND );

	m_pShareData->m_Common.m_bRegularExp = m_bRegularExp;			/* 1==正規表現 */
	m_pShareData->m_Common.m_bLoHiCase = m_bLoHiCase;				/* 1==英大文字小文字の區別 */
	m_pShareData->m_Common.m_bWordOnly = m_bWordOnly;				/* 1==単語のみ検索 */
	m_pShareData->m_Common.m_bSelectedArea = m_bSelectedArea;		/* 選択範囲內置換 */
	m_pShareData->m_Common.m_bNOTIFYNOTFOUND = m_bNOTIFYNOTFOUND;	/* 検索/置換  見つからないときメッセージを表示 */

	/* 検索文字列 */
	::GetDlgItemText( m_hWnd, IDC_COMBO_TEXT, m_szText, sizeof( m_szText ));
	/* 置換後文字列 */
	::GetDlgItemText( m_hWnd, IDC_COMBO_TEXT2, m_szText2, sizeof( m_szText2 ));

	/* 置換 ダイアログを自動的に閉じる */
	m_pShareData->m_Common.m_bAutoCloseDlgReplace = ::IsDlgButtonChecked( m_hWnd, IDC_CHECK_bAutoCloseDlgReplace );

	/* 先頭(末尾)から再検索 2002.01.26 hor */
	m_pShareData->m_Common.m_bSearchAll = ::IsDlgButtonChecked( m_hWnd, IDC_CHECK_SEARCHALL );

	if( 0 < lstrlen( m_szText ) ){
		/* 正規表現? */
		// From Here Jun. 26, 2001 genta
		//	正規表現ライブラリの差し替えに伴う処理の見直し
		int nFlag = 0x00;
		nFlag |= m_bLoHiCase ? 0x01 : 0x00;
		if( m_bRegularExp && !CheckRegexpSyntax( m_szText, m_hWnd, true, nFlag ) ){
			return -1;
		}
		// To Here Jun. 26, 2001 genta 正規表現ライブラリ差し替え

		/* 検索文字列 */
		//@@@ 2002.2.2 YAZAKI CShareData.AddToSearchKeyArr()追加に伴う変更
		CShareData::getInstance()->AddToSearchKeyArr( m_szText );

		/* 置換後文字列 */
		//@@@ 2002.2.2 YAZAKI CShareData.AddToReplaceKeyArr()追加に伴う変更
		CShareData::getInstance()->AddToReplaceKeyArr( m_szText2 );

		// From Here 2001.12.03 hor
		// クリップボードから貼り付ける?
		m_nPaste=IsDlgButtonChecked( m_hWnd, IDC_CHK_PASTE );
		::EnableWindow( ::GetDlgItem( m_hWnd, IDC_COMBO_TEXT2 ), !m_nPaste );
		// 置換対象
		m_nReplaceTarget=0;
		if(::IsDlgButtonChecked( m_hWnd, IDC_RADIO_INSERT )){
			m_nReplaceTarget=1;
		}else
		if(::IsDlgButtonChecked( m_hWnd, IDC_RADIO_ADD )){
			m_nReplaceTarget=2;
		}
		// To Here 2001.12.03 hor

		return 1;
	}else{
		return 0;
	}
}




BOOL CDlgReplace::OnInitDialog( HWND hwndDlg, WPARAM wParam, LPARAM lParam )
{
	m_hWnd = hwndDlg;
	//	Jun. 26, 2001 genta
	//	この位置で正規表現の初期化をする必要はない
	//	他との一貫性を保つため削除

	/* ユーザーがコンボ ボックスのエディット コントロールに入力できるテキストの長さを制限する */
	::SendMessage( ::GetDlgItem( m_hWnd, IDC_COMBO_TEXT ), CB_LIMITTEXT, (WPARAM)_MAX_PATH - 1, 0 );
	::SendMessage( ::GetDlgItem( m_hWnd, IDC_COMBO_TEXT2 ), CB_LIMITTEXT, (WPARAM)_MAX_PATH - 1, 0 );

	/* コンボボックスのユーザー インターフェイスを拡張インターフェースにする */
	::SendMessage( ::GetDlgItem( m_hWnd, IDC_COMBO_TEXT ), CB_SETEXTENDEDUI, (WPARAM) (BOOL) TRUE, 0 );
	::SendMessage( ::GetDlgItem( m_hWnd, IDC_COMBO_TEXT2 ), CB_SETEXTENDEDUI, (WPARAM) (BOOL) TRUE, 0 );


	/* テキスト選択中か */
	if( m_bSelected ){

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品一区二区久久婷婷| 欧美日韩一区二区在线视频| 26uuu精品一区二区在线观看| 久久精品国产精品亚洲综合| 国产午夜亚洲精品羞羞网站| 成人av资源下载| 亚洲欧美电影院| 91精品欧美福利在线观看| 韩国av一区二区| 国产精品久久久久久久蜜臀| 91年精品国产| 日韩黄色在线观看| 久久蜜桃av一区精品变态类天堂 | 在线观看91精品国产麻豆| 午夜欧美在线一二页| 欧美电影免费观看高清完整版在线观看 | 婷婷六月综合亚洲| 精品粉嫩aⅴ一区二区三区四区| 国产精品1区二区.| 亚洲一区二区三区免费视频| 欧美成人一区二区三区片免费| 岛国av在线一区| 亚洲第一精品在线| 久久丝袜美腿综合| 色女孩综合影院| 麻豆精品在线视频| 日韩毛片高清在线播放| 欧美一卡二卡在线| 91一区二区在线| 久久精品国产99国产| 亚洲视频1区2区| 精品国产区一区| 色综合一个色综合亚洲| 激情av综合网| 亚洲与欧洲av电影| 久久精品视频在线看| 欧美日韩国产另类一区| 国产98色在线|日韩| 午夜精品aaa| 国产精品国产三级国产有无不卡| 欧美一区二区三区四区视频| 91在线观看污| 国产综合久久久久影院| 午夜精品在线看| 国产精品成人午夜| 国产性天天综合网| 日韩免费高清av| 欧美日韩国产首页| 在线免费观看日本一区| 成人在线一区二区三区| 国产在线视视频有精品| 轻轻草成人在线| 亚洲一区二区三区视频在线| 综合色天天鬼久久鬼色| 国产欧美日产一区| 日韩欧美国产一区二区三区| 欧美色涩在线第一页| 一本大道久久a久久精二百| 菠萝蜜视频在线观看一区| 国产精品1区2区3区| 久久av中文字幕片| 青青草国产成人99久久| 五月激情六月综合| 亚洲成a人v欧美综合天堂下载| 亚洲靠逼com| 亚洲视频中文字幕| 亚洲视频一区在线观看| 国产精品成人一区二区三区夜夜夜| 国产女主播视频一区二区| xnxx国产精品| www欧美成人18+| 久久亚洲综合色一区二区三区| 欧美电影免费提供在线观看| 日韩午夜av一区| 亚洲精品在线免费播放| 精品久久人人做人人爱| 欧美zozo另类异族| 国产日韩欧美a| 国产精品乱子久久久久| 亚洲欧美激情小说另类| 亚洲综合在线免费观看| 午夜欧美大尺度福利影院在线看| 亚洲成av人片www| 免费成人在线观看视频| 狠狠色丁香婷婷综合| 国产一区二区三区在线观看免费 | 3d动漫精品啪啪一区二区竹菊| 欧美日韩国产中文| 日韩美女在线视频| 精品福利在线导航| 国产人久久人人人人爽| 中文字幕一区二区三区色视频| 亚洲色图色小说| 一区二区三区四区av| 午夜av电影一区| 九九精品视频在线看| 高清成人在线观看| 欧美在线观看你懂的| 56国语精品自产拍在线观看| 久久免费的精品国产v∧| 国产精品久久久久久久久久免费看 | 精品一二三四在线| 成人福利在线看| 欧美性生活一区| 日韩欧美黄色影院| 一色桃子久久精品亚洲| 亚洲国产另类av| 国产乱码精品一区二区三| 成人h动漫精品一区二| 欧美日韩精品免费| 国产午夜精品一区二区三区视频| 最新不卡av在线| 美腿丝袜亚洲综合| 99久久精品免费看国产免费软件| 欧美色手机在线观看| 国产日韩欧美综合一区| 亚洲一区二区在线观看视频| 美国三级日本三级久久99 | 韩国中文字幕2020精品| 91亚洲国产成人精品一区二区三| 在线成人av网站| 国产欧美精品国产国产专区| 亚洲国产欧美一区二区三区丁香婷| 国产一区二区三区日韩| 欧美日韩一区二区在线观看视频| 国产亚洲精品中文字幕| 丝瓜av网站精品一区二区| 成人污污视频在线观看| 欧美一区二区三区人| 亚洲欧洲av色图| 国产一区欧美一区| 欧美人牲a欧美精品| 中文字幕一区日韩精品欧美| 精品一区二区三区久久| 欧美丝袜自拍制服另类| 国产精品青草久久| 老司机精品视频导航| 欧美日韩成人在线| 亚洲日本青草视频在线怡红院| 国产精品一区二区果冻传媒| 欧美一区二区三区影视| 日韩一区二区在线观看视频| 色综合一区二区| 5月丁香婷婷综合| 国产精品污污网站在线观看| 久久精工是国产品牌吗| 欧美日韩三级一区| 亚洲精品免费一二三区| 成人动漫一区二区| 久久久久久久久久美女| 国产中文字幕精品| 欧美成人一级视频| 蜜臀va亚洲va欧美va天堂| 精品视频一区二区三区免费| 亚洲黄色小说网站| 色婷婷av一区| 亚洲六月丁香色婷婷综合久久| 99这里只有久久精品视频| 国产精品欧美久久久久无广告 | 91蜜桃网址入口| 国产精品国产三级国产aⅴ原创| 国产精品一卡二卡| 26uuu久久天堂性欧美| 国产美女久久久久| 久久久久88色偷偷免费| 国产成人精品亚洲午夜麻豆| 久久久不卡影院| 成人精品国产免费网站| 国产精品日韩成人| 91丨porny丨首页| 亚洲色图.com| 欧美吞精做爰啪啪高潮| 亚洲成av人片观看| 欧美一区二区三区婷婷月色| 人妖欧美一区二区| 精品三级在线观看| 丁香婷婷综合五月| 国产精品盗摄一区二区三区| 一本大道av伊人久久综合| 亚洲最大成人网4388xx| 欧美一级二级在线观看| 国产精品一区免费在线观看| 欧美国产综合色视频| 91蜜桃网址入口| 视频一区视频二区在线观看| 日韩精品自拍偷拍| 国产精品18久久久| 一区二区三区不卡在线观看 | 黄色小说综合网站| 中文字幕精品一区二区三区精品| 91亚洲午夜精品久久久久久| 亚洲第四色夜色| 久久亚洲一级片| 91猫先生在线| 日韩1区2区3区| 久久久精品tv| 欧美性xxxxxxxx| 精品一区二区影视| 亚洲四区在线观看| 精品区一区二区|