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

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

?? fedit.cpp

?? jedit 一個小型java編譯器的源碼
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
	Width=rect.right-rect.left;
	Height=rect.bottom-rect.top;
	if(m_BmpBack!=NULL)
		DeleteObject(m_BmpBack);
	m_BmpBack=CreateCompatibleBitmap(hdc,Width,Height);
	SetScrollBar(hWnd);
	ReleaseDC(hWnd,hdc);
}
void FEdit::OnKeyDown(HWND hWnd,WPARAM wParam,LPARAM lParam)
{
	switch(LOWORD(wParam))
	{
	case VK_UP:
		HideCaret(hWnd);
		Str.EmptySel();
		Str.MoveToPreviousLine();
		AdjustCaretPos();
		SetScrollBar(hWnd);
		InvalidateRect(hWnd,NULL,false);
		break;
	case VK_DOWN:
		HideCaret(hWnd);
		Str.EmptySel();
		Str.MoveToNextLine();
		AdjustCaretPos();
		SetScrollBar(hWnd);
		InvalidateRect(hWnd,NULL,false);
		break;
	case VK_LEFT:
		HideCaret(hWnd);
		Str.EmptySel();
		Str.MoveToPrevious();
		AdjustCaretPos();
		SetScrollBar(hWnd);
		InvalidateRect(hWnd,NULL,false);
		break;
	case VK_RIGHT:
		HideCaret(hWnd);
		Str.EmptySel();
		Str.MoveToNext();
		AdjustCaretPos();
		SetScrollBar(hWnd);
		InvalidateRect(hWnd,NULL,false);
		break;
	case VK_HOME:
		HideCaret(hWnd);
		Str.EmptySel();
		Str.MoveToStart();
		AdjustCaretPos();
		SetScrollBar(hWnd);
		InvalidateRect(hWnd,NULL,false);
		break;
	case VK_END:
		HideCaret(hWnd);
		Str.EmptySel();
		Str.MoveToEnd();
		AdjustCaretPos();
		SetScrollBar(hWnd);
		InvalidateRect(hWnd,NULL,false);
		break;
	case VK_DELETE:
		HideCaret(hWnd);
		if(!Str.IsSelEmpty())
			Str.DeleteSel();
		else
			Str.Delete();
		AdjustCaretPos();
		SetScrollBar(hWnd);
		InvalidateRect(hWnd,NULL,false);
		SaveFlag=false;
		break;
	case VK_PRIOR:
		HideCaret(hWnd);
		Str.EmptySel();
		OnVScroll(SB_PAGEUP,0);
		ShowCaret(hWnd);
		break;
	case VK_NEXT:
		HideCaret(hWnd);
		Str.EmptySel();
		OnVScroll(SB_PAGEDOWN,0);
		ShowCaret(hWnd);
		break;
	}
}
bool FEdit::PosInRect(int x,int y)
{
	if(x>=5&&x<Width-cWidth&&
		y>=5&&y<Height)
		return true;
	return false;
}
void FEdit::OnVScroll(WPARAM wParam,LPARAM lParam)
{
	SCROLLINFO si;
	int nMaxPos;

	si.cbSize = sizeof (si);
	si.fMask  = SIF_ALL;
	// Save the position for comparison later o
	GetScrollInfo (m_hWnd, SB_VERT, &si);

	nMaxPos=si.nMax-si.nPage+1;

	switch(LOWORD(wParam))
	{
		case SB_LINEUP: 
			si.nPos -= 1;
			Y+=cHeight;
			break;
		case SB_LINEDOWN: 
			si.nPos += 1;
			Y-=cHeight;
			break;
		case SB_PAGEUP:
			si.nPos-=si.nPage;
			Y+=Height-5;
			break;
		case SB_PAGEDOWN:
			si.nPos+=si.nPage;
			Y-=Height-5;
			break;
		case SB_THUMBTRACK:
            Y+=(si.nPos-si.nTrackPos)*cHeight;
            si.nPos = si.nTrackPos;
            break;      
	}
	if(Y>5) Y=5;
	if(si.nPos>nMaxPos)
	{
		Y+=(si.nPos-nMaxPos)*cHeight;
		si.nPos=nMaxPos;
	}
	if(si.nPos<si.nMin) si.nPos=si.nMin;

	si.fMask = SIF_POS;
	SetScrollInfo(m_hWnd,SB_VERT,&si,true);
	InvalidateRect(m_hWnd,NULL,false);
}
void FEdit::OnHScroll(WPARAM wParam,LPARAM lParam)
{
	SCROLLINFO si;
	int nMaxPos;

	si.cbSize = sizeof (si);
	si.fMask  = SIF_ALL;
	// Save the position for comparison later o
	GetScrollInfo (m_hWnd, SB_HORZ, &si);

	nMaxPos=si.nMax-si.nPage+1;

	switch(LOWORD(wParam))
	{
		case SB_LINELEFT: 
			si.nPos -= 1;
			X+=cWidth;
			break;
		case SB_LINERIGHT: 
			si.nPos += 1;
			X-=cWidth;
			break;
		case SB_PAGELEFT:
			si.nPos-=si.nPage;
			X+=Width-cWidth;;
			break;
		case SB_PAGERIGHT:
			si.nPos+=si.nPage;
			X-=Width-cWidth;
			break;
		case SB_THUMBTRACK:
            X+=(si.nPos-si.nTrackPos)*cWidth;
            si.nPos = si.nTrackPos;
            break; 
	}
	if(X>5) X=5;
	if(si.nPos>nMaxPos)
	{
		X+=(si.nPos-nMaxPos)*cWidth;
		si.nPos=nMaxPos;
	}
	if(si.nPos<si.nMin) si.nPos=si.nMin;

	si.fMask = SIF_POS;
    SetScrollInfo(m_hWnd,SB_HORZ,&si,true);
	InvalidateRect(m_hWnd,NULL,false);
}
void FEdit::OnLButtonDown(HWND hWnd)
{
	HideCaret(hWnd);
	SetCapture(hWnd);
	LBDownFlag=true;

	int CursorX,CursorY;
	int Line,Column;
	int TotalLine,LineWidth;
	POINT p;
	GetCursorPos(&p);
	ScreenToClient(hWnd,&p);
	CursorX=p.x+cWidth/2;
	CursorY=p.y;

	Line=(CursorY-Y)/cHeight+1;
	Column=(CursorX-X)/cWidth+1;

	TotalLine=Str.GetTotalLine();
	if(Line>TotalLine) Line=TotalLine;
	LineWidth=Str.GetLineWidth(Line);
	if(Column>LineWidth) Column=LineWidth;

	Str.MoveSelStart(Line,Column);
	Str.MoveSelEnd(Line,Column);
	Str.MoveToPos(Line,Column);

	SetCaretPos(X+(Str.GetPos()-1)*cWidth,
		Y+(Str.GetLine()-1)*cHeight);
	ShowCaret(hWnd);
	if(!Str.IsSelEmpty())
	Str.EmptySel();
	InvalidateRect(hWnd,NULL,false);
	SetTimer(hWnd,1001,100,NULL);
	SendMessage(GetParent(hWnd),WM_LCCHANGED,0l,0l);
	SendMessage(hWnd,WM_LCCHANGED,0l,0l);
}
void FEdit::OnMouseMove(HWND hWnd)
{
	HideCaret(hWnd);

	int CursorX,CursorY;
	int Line,Column;
	int TotalLine,LineWidth;
	POINT p;
	GetCursorPos(&p);
	ScreenToClient(hWnd,&p);
	CursorX=p.x+cWidth/2;
	CursorY=p.y;

	Line=(CursorY-Y)/cHeight+1;
	Column=(CursorX-X)/cWidth+1;

	if(Line<1) Line=1;
	if(Column<1) Column=1;

	TotalLine=Str.GetTotalLine();
	if(Line>TotalLine) Line=TotalLine;
	LineWidth=Str.GetLineWidth(Line);
	if(Column>LineWidth) Column=LineWidth;

	Str.MoveSelEnd(Line,Column);
	Str.MoveToPos(Line,Column);

	if(X+(Str.GetPos()-1)*cWidth<5)
		OnHScroll(SB_LINELEFT,0);
	if(X+(Str.GetPos()-1)*cWidth>Width-cWidth)
		OnHScroll(SB_LINERIGHT,0);

	if(Y+(Str.GetLine()-1)*cHeight<5)
		OnVScroll(SB_LINEUP,0);
	if(Y+(Str.GetLine()-1)*cHeight>Height-cHeight)
		OnVScroll(SB_LINEDOWN,0);
	SetCaretPos(X+(Str.GetPos()-1)*cWidth,
		Y+(Str.GetLine()-1)*cHeight);
	ShowCaret(hWnd);
	InvalidateRect(hWnd,NULL,false);
	SendMessage(GetParent(hWnd),WM_LCCHANGED,0l,0l);
}
void FEdit::AdjustCaretPos()
{
	while(X+(Str.GetPos()-1)*cWidth<5)
		X+=cWidth;
	while(X+(Str.GetPos()-1)*cWidth>=Width)
		X-=cWidth;

	while(Y+(Str.GetLine()-1)*cHeight<5)
		Y+=cHeight;
	while(Y+(Str.GetLine()-1)*cHeight>Height-cHeight)
		Y-=cHeight;
	SetCaretPos(X+(Str.GetPos()-1)*cWidth,
		Y+(Str.GetLine()-1)*cHeight);
	ShowCaret(m_hWnd);
}
bool FEdit::CopySel()
{
	char *Sel;
	Sel=Str.GetSelect();

	int nlen = strlen(Sel);
	if (nlen == 0)
		return false;

	// 將sztext中的內容復制到剪貼板
	HGLOBAL hglbcopy;
	LPTSTR lptstrcopy;

	if (!OpenClipboard(m_hWnd))
		return false;

	hglbcopy = GlobalAlloc(GMEM_DDESHARE, 
            (nlen + 1) * sizeof(char)); 
 
	if (hglbcopy == NULL) 
	{ 
		CloseClipboard(); 
		return false;
	} 

	EmptyClipboard();

	lptstrcopy = (LPTSTR)GlobalLock(hglbcopy); 
    memcpy(lptstrcopy, Sel, nlen);
    lptstrcopy[nlen] = (TCHAR) 0;    // null character 
    GlobalUnlock(lptstrcopy); 
  
	SetClipboardData(CF_TEXT, hglbcopy);
	CloseClipboard();
	return true;
}
bool FEdit::PasteChar()
{
	HGLOBAL   hglb;
	LPTSTR    lptstr;
	if (!IsClipboardFormatAvailable(CF_TEXT)) 
        return false; 
    if (!OpenClipboard(m_hWnd)) 
        return false; 
 
    hglb = GetClipboardData(CF_TEXT); 
    if (hglb != NULL) 
    { 
        lptstr =(LPTSTR) GlobalLock(hglb); 
        if (lptstr != NULL) 
        { 
            Str.Insert(lptstr);
            GlobalUnlock(hglb); 
        } 
    } 
    CloseClipboard();
	SaveFlag=false;
	HideCaret(m_hWnd);
	AdjustCaretPos();
	SetScrollBar(m_hWnd);
	InvalidateRect(m_hWnd,NULL,false);
    return true; 
}
bool FEdit::Find(char* content,bool up,bool icmp)
{
	int pos;
	if(up)
	{
		if(Str.FindPrev(content,pos,icmp))
		{
			HideCaret(m_hWnd);
			Str.MoveToPos(pos);
			Str.MoveSelStart(pos);
			Str.MoveSelEnd(pos+strlen(content));
			AdjustCaretPos();
			SetScrollBar(m_hWnd);
			InvalidateRect(m_hWnd,NULL,false);
			return true;
		}
	}
	else
	{
		if(Str.FindNext(content,pos,icmp))
		{
			HideCaret(m_hWnd);
			Str.MoveToPos(pos);
			Str.MoveSelStart(pos);
			Str.MoveSelEnd(pos+strlen(content));
			AdjustCaretPos();
			SetScrollBar(m_hWnd);
			InvalidateRect(m_hWnd,NULL,false);
			return true;
		}
	}
	return false;
}
bool FEdit::Replace(char *src,char *dst,bool icmp)
{
	if(!Str.Replace(src,dst,Str.GetCur(),icmp))
		return false;
	InvalidateRect(m_hWnd,NULL,false);
	return true;
}
bool FEdit::ReplaceAll(char *src,char *dst,bool icmp)
{
	if(!Str.ReplaceAll(src,dst,icmp))
		return false;
	InvalidateRect(m_hWnd,NULL,false);
	return true;
}
void FEdit::SetBackGround()
{
	if(hBackGround==NULL)
		return;
	RECT ClientRect;
	BITMAP bi;
	HDC hDC,hImageDC;
	GetObject(hBackGround,sizeof(BITMAP),(LPVOID)&bi);
	int i,j;

	GetClientRect(m_hWnd,&ClientRect);
	hDC=GetDC(m_hWnd);
	hImageDC=CreateCompatibleDC(hDC);
	SelectObject(hImageDC,hBackGround);
	for(i=0;i<ClientRect.right;i+=bi.bmWidth)
		for(j=0;j<ClientRect.bottom;j+=bi.bmHeight)
			BitBlt(m_hdcBack,i,j,bi.bmWidth,bi.bmHeight,hImageDC,0,0,SRCCOPY);

	DeleteObject(hImageDC);
	DeleteObject(hDC);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久综合九色综合97_久久久| 日韩电影在线免费| 丝袜a∨在线一区二区三区不卡| 国产一区二区成人久久免费影院 | 日本美女视频一区二区| 不卡一区二区三区四区| 91精品蜜臀在线一区尤物| 一区在线观看免费| 国产精品18久久久久| 欧美一区二区三区免费大片| 亚洲精品成人天堂一二三| 国产黑丝在线一区二区三区| 欧美一级欧美一级在线播放| 夜夜精品视频一区二区| 色综合久久综合网欧美综合网 | 欧美日韩午夜影院| 亚洲欧美韩国综合色| 不卡影院免费观看| 欧美极品美女视频| 国产成a人亚洲精品| 精品久久一区二区三区| 免费一级欧美片在线观看| 欧美日韩一区二区在线观看| 亚洲素人一区二区| 99re视频精品| 亚洲精品视频免费观看| 91麻豆视频网站| 中文字幕一区二区三区在线观看| 国产成人精品三级麻豆| 国产精品乱码一区二区三区软件| 国产一区二区久久| 国产欧美综合在线观看第十页| 韩国毛片一区二区三区| 久久网站最新地址| 国产成人综合视频| 国产精品国模大尺度视频| 不卡的av网站| 亚洲欧美日韩精品久久久久| 欧洲一区在线电影| 午夜免费久久看| 欧美电视剧免费观看| 激情久久五月天| 日本一区二区免费在线| 91亚洲精品久久久蜜桃网站| 亚洲午夜久久久久| 日韩欧美国产电影| 成人免费看的视频| 亚洲另类在线视频| 日韩一级大片在线观看| 国产电影一区二区三区| 亚洲精品综合在线| 91精品蜜臀在线一区尤物| 国产乱淫av一区二区三区| 中文av一区二区| 在线亚洲一区二区| 久久精品国产澳门| 亚洲品质自拍视频网站| 欧美区一区二区三区| 国产老肥熟一区二区三区| 国产精品国产成人国产三级 | 久久综合狠狠综合久久激情| 9久草视频在线视频精品| 午夜a成v人精品| 久久久蜜桃精品| 91福利社在线观看| 国产一区二区精品久久99| 亚洲欧美日本韩国| 26uuu亚洲| 欧美日韩精品一区二区| 国产呦精品一区二区三区网站 | 国产精品国产三级国产三级人妇| 欧美最猛性xxxxx直播| 国产一区二三区| 亚洲电影一级片| 国产精品美女一区二区| 日韩三级在线观看| 99麻豆久久久国产精品免费优播| 日本在线不卡视频一二三区| 国产精品国产三级国产a| 日韩一级高清毛片| 欧洲精品一区二区| 成人免费毛片aaaaa**| 美女网站在线免费欧美精品| 亚洲色欲色欲www| 久久久久久97三级| 日韩一区二区麻豆国产| 欧美在线看片a免费观看| 国产成人自拍高清视频在线免费播放| 午夜欧美电影在线观看| 一区二区三区欧美日| 国产蜜臀av在线一区二区三区| 欧美一区二区三区日韩视频| 色狠狠av一区二区三区| 99视频在线精品| 国产成人无遮挡在线视频| 免费欧美日韩国产三级电影| 亚洲丶国产丶欧美一区二区三区| 日韩一区在线免费观看| 国产欧美日韩另类视频免费观看| 精品日韩成人av| 欧美一区二区三区免费大片| 777色狠狠一区二区三区| 欧洲亚洲精品在线| 欧美视频日韩视频在线观看| 色综合久久久久综合| 99精品欧美一区| 成人av在线一区二区| 成人久久视频在线观看| 国产91精品在线观看| 成人高清在线视频| 成人97人人超碰人人99| 91原创在线视频| 91一区一区三区| 91亚洲精品乱码久久久久久蜜桃| 成人18视频日本| 91久久人澡人人添人人爽欧美 | 亚洲成人动漫在线免费观看| 一区二区三区 在线观看视频| 一二三四区精品视频| 亚洲高清免费一级二级三级| 亚洲第一av色| 蜜桃久久精品一区二区| 精品一区二区三区影院在线午夜| 国产又黄又大久久| 丁香婷婷综合色啪| av一区二区久久| 日本精品一区二区三区高清| 欧洲亚洲精品在线| 欧美一区二区三区在| 久久久久久久久久电影| 日韩理论片中文av| 日韩精品一区第一页| 国产揄拍国内精品对白| av毛片久久久久**hd| 欧美色老头old∨ideo| 日韩女优视频免费观看| 国产午夜精品理论片a级大结局| 国产精品欧美经典| 亚洲一二三四久久| 精品在线免费视频| 99久久精品情趣| 91精品国产入口| 国产精品伦理在线| 五月天激情综合| 国产激情偷乱视频一区二区三区| 99精品视频中文字幕| 欧美久久久一区| 欧美国产1区2区| 亚洲第一主播视频| 国产成人综合在线观看| 欧美性猛交一区二区三区精品| 欧美不卡激情三级在线观看| 亚洲欧洲精品天堂一级| 久久不见久久见免费视频1| 成人看片黄a免费看在线| 555夜色666亚洲国产免| 中文字幕一区二区三区在线不卡| 日韩不卡免费视频| av电影在线观看一区| 精品久久久久久综合日本欧美| 1000部国产精品成人观看| 免费日韩伦理电影| 色哟哟欧美精品| 国产午夜精品久久久久久免费视| 一区二区在线观看不卡| 激情综合网av| 欧美日韩一级二级| 亚洲色图制服丝袜| 高清在线不卡av| 26uuu久久综合| 日韩精品亚洲专区| 91行情网站电视在线观看高清版| 亚洲图片激情小说| 久久精品久久精品| 欧美精品色综合| 亚洲免费观看在线视频| 国产91精品精华液一区二区三区 | 中文字幕欧美激情一区| 捆绑调教一区二区三区| 欧美日韩国产美| 亚洲一区二区在线视频| 91在线小视频| 国产精品久久夜| 成人永久aaa| 欧美激情中文字幕| 国产69精品久久久久毛片| 精品国产免费久久| 免费观看30秒视频久久| 欧美精品视频www在线观看| 亚洲国产精品一区二区久久恐怖片 | 亚洲乱码国产乱码精品精可以看| 国产成人精品免费视频网站| 欧美变态tickling挠脚心| 日本中文在线一区| 91精品国产91久久久久久最新毛片 | 国产盗摄一区二区| 国产欧美综合在线| a在线欧美一区| 亚洲日本丝袜连裤袜办公室| 色综合久久99|