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

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

?? interface.cpp

?? jedit 一個小型java編譯器的源碼
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
		Start+=Container[i].GetNameLength();
	}
}
void DockCtrl::OnDraw(HDC hdc)
{
	POINT point[3];
	Draw3DBar(hdc,0,0,9+GetCtrlWndLength(),19,RGB(255,255,255),
		RGB(128,128,128));

	HBRUSH hBrush=CreateSolidBrush(RGB(0,128,0));
	if(Focus==0)
		SelectObject(hdc,hBrush);
	else
		SelectObject(hdc,(HBRUSH)GetStockObject(BLACK_BRUSH));
	if(State==STATE_IN)
	{
		point[0].x=7;
		point[0].y=5;
		point[1].x=7;
		point[1].y=15;
		point[2].x=2;
		point[2].y=10;
	}
	else
	{
		point[0].x=2;
		point[0].y=5;
		point[1].x=2;
		point[1].y=15;
		point[2].x=7;
		point[2].y=10;
	}
	Polygon(hdc,point,3);

	SetBkMode(hdc,TRANSPARENT);
	char *Name;
	RECT txtRect;
	txtRect.left=10;
	txtRect.top=0;
	txtRect.right=10;
	txtRect.bottom=20;
	for(int i=0;i<Container.length();i++)
	{
		if(Focus==i+1)
			SetTextColor(hdc,RGB(0,0,255));
		else
			SetTextColor(hdc,RGB(0,0,128));
		DrawSeparetor(hdc,txtRect.right);
		txtRect.left=txtRect.right;
		txtRect.right+=Container[i].GetNameLength();
		Name=Container[i].GetName();
		DrawText(hdc,Name,strlen(Name),&txtRect,DT_CENTER|DT_VCENTER|DT_SINGLELINE);
	}
	DeleteObject(hBrush);
}
int DockCtrl::GetCtrlWndLength()
{
	int Width=10;
	int NameWidth=0;
	for(int i=0;i<Container.length();i++)
	{
		NameWidth=Container[i].GetNameLength();
		Width+=NameWidth;
	}
	return Width;
}
void DockCtrl::PopIn(HWND hwnd)
{
	KillTimer(hwnd,1001);

	WndInfo* WI;
	WI=GetWI(hwnd);
	int i;

	RECT rect,PRect;
	GetWindowRect(hwnd,&rect);
	GetClientRect(PRect);
	POINT lt;
	lt.x=rect.left;
	lt.y=rect.top;
	ScreenToClient(Parent,&lt);

	int Height,Width;
	Height=WI->Height;
	Width=WI->Width;
	switch(WI->DockType)
	{
	case DOCK_LEFT:
		if(WI->State==DOCK_POPUP)
		{
			if(Height>PRect.bottom-lt.y)
				Height=PRect.bottom-lt.y;
			for(i= Width;i>15;i-=20)
			{
				MoveWindow(hwnd,rect.left,rect.top,i, Height,true);
				Sleep(50);
			}
			MoveWindow(hwnd,rect.left,rect.top,15, Height,true);
			WI->State=DOCK_HIDE;
		}
		break;
	case DOCK_RIGHT:
		if(WI->State==DOCK_POPUP)
		{
			if(Height>PRect.bottom-lt.y)
				Height=PRect.bottom-lt.y;
			for(i= Width;i>5;i-=20)
			{
				MoveWindow(hwnd,rect.right-i,rect.top,i, Height,true);
				Sleep(50);
			}
			MoveWindow(hwnd,rect.right-6,rect.top,5, Height,true);
			WI->State=DOCK_HIDE;
		}
		break;
	case DOCK_TOP:
		if(WI->State==DOCK_POPUP)
		{
			if(Width>PRect.right-lt.x)
			Width=PRect.right-lt.x;
			for(i= Height;i>3;i-=20)
			{
				MoveWindow(hwnd,rect.left,rect.top, Width,i,true);
				Sleep(50);
			}
			MoveWindow(hwnd,rect.left,rect.top, Width,3,true);
			WI->State=DOCK_HIDE;
		}
		break;
	case DOCK_BOTTOM:
		if(WI->State==DOCK_POPUP)
		{
			if(Width>PRect.right-lt.x)
			Width=PRect.right-lt.x;
			WI->State=DOCK_HIDE;
			for(i= Height;i>15;i-=20)
			{
				MoveWindow(hwnd,rect.left,rect.bottom-i, Width,i,true);
				Sleep(50);
			}
			MoveWindow(hwnd,rect.left,rect.bottom-15, Width,15,true);
		}
		break;
	}
	if(!WI->AutoHide)
		SendMessage(Parent,WM_DWPOSCHANGED,0,0);
	InvalidateRect(hwnd,NULL,true);
}
void DockCtrl::PopUp(HWND hwnd)
{
	WndInfo* WI;
	WI=GetWI(hwnd);
	int i;

	RECT rect,PRect;
	GetWindowRect(hwnd,&rect);
	GetClientRect(PRect);
	POINT lt;
	lt.x=rect.left;
	lt.y=rect.top;
	ScreenToClient(Parent,&lt);

	int Height,Width;
	Height=WI->Height;
	Width=WI->Width;

	switch(WI->DockType)
	{
	case DOCK_LEFT:
		if(WI->State==DOCK_HIDE)
		{
			if(Height>PRect.bottom-lt.y)
			Height=PRect.bottom-lt.y;
			for(i=0;i<Width;i+=20)
			{
				MoveWindow(hwnd,rect.left,rect.top,i,Height,true);
				Sleep(50);
			}
			MoveWindow(hwnd,rect.left,rect.top,Width,Height,true);
			WI->State=DOCK_POPUP;
		}
		break;
	case DOCK_RIGHT:
		if(WI->State==DOCK_HIDE)
		{
			if(Height>PRect.bottom-lt.y)
			Height=PRect.bottom-lt.y;
			for(i=6;i<Width;i+=20)
			{
				MoveWindow(hwnd,rect.right-i,rect.top,i,Height,true);
				Sleep(50);
			}
			MoveWindow(hwnd,rect.right-Width,rect.top,Width,Height,true);
			WI->State=DOCK_POPUP;
		}
		break;
	case DOCK_TOP:
		if(WI->State==DOCK_HIDE)
		{
			if(Width>PRect.right-lt.x)
			Width=PRect.right-lt.x;
			for(i=0;i< Height;i+=20)
			{
				MoveWindow(hwnd,rect.left,rect.top, Width,i,true);
				Sleep(50);
			}
			MoveWindow(hwnd,rect.left,rect.top, Width, Height,true);
			WI->State=DOCK_POPUP;
		}
		break;
	case DOCK_BOTTOM:
		if(WI->State==DOCK_HIDE)
		{
			if(Width>PRect.right-lt.x)
			Width=PRect.right-lt.x;
			WI->State=DOCK_POPUP;
			for(i=6;i< Height;i+=20)
			{
				MoveWindow(hwnd,rect.left,rect.bottom-i, Width,i,true);
				Sleep(50);
			}
			MoveWindow(hwnd,rect.left,rect.bottom- Height, Width, Height,true);
			InvalidateRect(hwnd,NULL,true);
		}
		break;
	}
	SetTimer(hwnd,1001,2000,NULL);
	if(!WI->AutoHide)
		SendMessage(Parent,WM_DWPOSCHANGED,0,0);
}
void DockCtrl::OnDWDraw(HDC hdc,HWND hwnd)
{
	WndInfo* WI;
	WI=GetWI(hwnd);
	POINT point[3];

	HBRUSH hBrush;
	hBrush=CreateSolidBrush(RGB(0,0,64));
	SelectObject(hdc,hBrush);
	if(WI->State==DOCK_POPUP)
	{
		Rectangle(hdc,0,0,WI->Width,20);
		SetTextColor(hdc,RGB(255,255,255));
		SetBkMode(hdc,TRANSPARENT);
		TextOut(hdc,5,0,WI->Name,strlen(WI->Name));
	}
	if(WI->State==DOCK_HIDE)
	{
		switch(WI->DockType)
		{
		case DOCK_BOTTOM:
			point[0].x=WI->Width/2-20;
			point[0].y=4;
			point[1].x=WI->Width/2+20;
			point[1].y=4;
			point[2].x=WI->Width/2;
			point[2].y=0;
			Rectangle(hdc,WI->Width/2-20,6,WI->Width/2+20,9);
			break;
		case DOCK_LEFT:
			point[0].x=5;
			point[0].y=WI->Height/2-20;
			point[1].x=5;
			point[1].y=WI->Height/2+20;
			point[2].x=9;
			point[2].y=WI->Height/2;
			Rectangle(hdc,0,WI->Height/2-20,3,WI->Height/2+20);
			break;
		}
		Polygon(hdc,point,3);
		
	}
	DeleteObject(hBrush);
}
void DockCtrl::OnDWLButtonDown(HWND hwnd,WPARAM wParam,LPARAM lParam)
{
	WndInfo *WI;
	WI=GetWI(hwnd);
	int x,y;
	POINT point;
	GetCursorPos(&point);
	ScreenToClient(hwnd,&point);
	x=point.x;
	y=point.y;
	if(WI->State==DOCK_HIDE)
	{
		switch(WI->DockType)
		{
		case DOCK_BOTTOM:
		case DOCK_TOP:
			if(x>=WI->Width/2-20&&x<=WI->Width/2+20)
				PopUp(hwnd);
			return;
		case DOCK_LEFT:
		case DOCK_RIGHT:
			if(y>=WI->Height/2-20&&y<=WI->Height/2+20)
				PopUp(hwnd);
			return;
		}
	}
	else
	{
		DWLButtonFlag=true;
		SetCapture(hwnd);

		ClientToScreen(hwnd,&point);
		DWLx=point.x;
		DWLy=point.y;
		Prevx=point.x;
		Prevy=point.y;
		DrawDragBorder(hwnd,Prevx,Prevy);
	}
}
void DockCtrl::OnDWMouseMove(HWND hwnd,WPARAM wParam,LPARAM lParam)
{
	DrawDragBorder(hwnd,Prevx,Prevy);
	
	POINT point;
	GetCursorPos(&point);
	Prevx=point.x;
	Prevy=point.y;

	DrawDragBorder(hwnd,point.x,point.y);
}
void DockCtrl::OnDWLButtonUp(HWND hwnd,WPARAM wParam,LPARAM lParam)
{
	DrawDragBorder(hwnd,Prevx,Prevy);
	
	POINT point;
	GetCursorPos(&point);

	RECT WRect;
	GetBRect(hwnd,point.x,point.y,WRect);
	MoveWindow(hwnd,WRect.left,WRect.top,
		WRect.right-WRect.left,WRect.bottom-WRect.top,true);

	WndInfo *WI;
	WI=GetWI(hwnd);
	WI->X=WRect.left;
	WI->Y=WRect.top;
	ReleaseCapture();
	DWLButtonFlag=false;
}
bool DockCtrl::GetBRect(HWND hwnd,int x,int y,RECT &Brect)
{
	bool DockFlag=true;

	RECT rect,Wrect;
	GetClientRect(rect);
	GetWindowRect(hwnd,&Wrect);

	POINT point;
	point.x=x;
	point.y=y;
	ScreenToClient(Parent,&point);

	WndInfo* WI;
	WI=GetWI(hwnd);

	if(WI->State==DOCK_HIDE)
		return true;

	POINT	p;
	if(point.x<200&&point.x>-200)
	{
		p.x=rect.left;
		p.y=0;
		ClientToScreen(Parent,&p);
		Brect.left=p.x;

		Brect.right=Brect.left+WI->Width;
	
		p.x=0;
		p.y=Wrect.top+y-DWLy;
		ScreenToClient(Parent,&p);
		if(p.y<0) p.y=0;
		if(p.y>rect.bottom-WI->Height) p.y=rect.bottom-WI->Height;
		ClientToScreen(Parent,&p);
		Brect.top=p.y;
		Brect.bottom=Brect.top+WI->Height;
		if(WI->DockStyle&DOCK_LEFT)
		{
			WI->DockType=DOCK_LEFT;
			return true;
		}
	}
	if(point.x>rect.right-200&&point.x<rect.right+200)
	{
		p.x=rect.right;
		p.y=0;
		ClientToScreen(Parent,&p);
		Brect.right=p.x;

		Brect.left=Brect.right-WI->Width;
		

		p.x=0;
		p.y=Wrect.top+y-DWLy;
		ScreenToClient(Parent,&p);
		if(p.y<0) p.y=0;
		if(p.y>rect.bottom-WI->Height) p.y=rect.bottom-WI->Height;
		ClientToScreen(Parent,&p);
		Brect.top=p.y;
		Brect.bottom=Brect.top+WI->Height;
		if(WI->DockStyle&DOCK_RIGHT)
		{
			WI->DockType=DOCK_RIGHT;
			return true;
		}
	}
	if(point.y>-200&&point.y<200)
	{
		Brect.left=Wrect.left+x-DWLx;
		Brect.right=Brect.left+WI->Width;
		
		p.y=rect.top;
		p.x=0;
		ClientToScreen(Parent,&p);
		Brect.top=p.y;

		Brect.bottom=Brect.top+WI->Height;
		if(WI->DockStyle&DOCK_TOP)
		{
			WI->DockType=DOCK_TOP;
			return true;
		}
	}
	if(point.y>rect.bottom-200&&point.y<rect.bottom+200)
	{
		p.x=0;
		p.y=0;
		ClientToScreen(Parent,&p);
		Brect.left=p.x;
		Brect.right=p.x+rect.right;
		p.x=0;
		p.y=rect.bottom;
		ClientToScreen(Parent,&p);
		Brect.bottom=p.y;

		Brect.top=Brect.bottom-WI->Height;
		if(WI->DockStyle&DOCK_BOTTOM)
		{
			WI->DockType=DOCK_BOTTOM;
			return true;
		}
	}
	
	Brect.left=Wrect.left+x-DWLx;
	Brect.right=Brect.left+WI->Width;
	Brect.top=Wrect.top+y-DWLy;
	Brect.bottom=Brect.top+WI->Height;
	if(WI->DockStyle&NODOCK)
		WI->DockType=NODOCK;
	return false;
}
void DockCtrl::DrawDragBorder(HWND hwnd,int x,int y)
{
	if(!DWLButtonFlag)
		return;
	RECT Brect;
	bool DockFlag=GetBRect(hwnd,x,y,Brect);
	
	DrawXorFrame(Brect,DockFlag);
}

void DockCtrl::DrawXorFrame( RECT rect, BOOL fDocked)
{
	static WORD _dotPatternBmp1[] = 
	{
		0x00aa, 0x0055, 0x00aa, 0x0055, 0x00aa, 0x0055, 0x00aa, 0x0055
	};

	static WORD _dotPatternBmp2[] = 
	{
		0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff
	};

	HBITMAP hbm;
	HBRUSH  hbr;
	HANDLE  hbrushOld;
	WORD    *bitmap;

	int width, height, x, y;
	int border;

	HDC hdc = GetDC(0);

	if(fDocked)
	{
		border = 1;
		bitmap = _dotPatternBmp2;
	}
	else
	{
		border = 3;
		bitmap = _dotPatternBmp1;
	}
	
	x = rect.left;
	y = rect.top;
	width  = rect.right-rect.left;
	height = rect.bottom-rect.top;

	hbm = CreateBitmap(8, 8, 1, 1, bitmap);
	hbr = CreatePatternBrush(hbm);

	SetBrushOrgEx(hdc, x, y, 0);
	hbrushOld = SelectObject(hdc, hbr);

	PatBlt(hdc, x+border,       y,               width-border,  border,        PATINVERT);
	PatBlt(hdc, x+width-border, y+border,        border,        height-border, PATINVERT);
	PatBlt(hdc, x,              y+height-border, width-border,  border,        PATINVERT);
	PatBlt(hdc, x,              y,               border,        height-border, PATINVERT);

	SelectObject(hdc, hbrushOld);
	DeleteObject(hbr);
	DeleteObject(hbm);
	ReleaseDC(0, hdc);
}
WndInfo* DockCtrl::GetWI(char *wndname)
{
	int i;
	for(i=0;i<Container.length();i++)
		if(strcmp(wndname,Container[i].Name)==0)
			return &Container[i];
	return NULL;
}
void	DockCtrl::GetRect(RECT &rect)
{
		int i;
		for(i=0;i<Container.length();i++)
		{
			switch(Container[i].DockType)
			{
			case DOCK_LEFT:
				if(Container[i].State==DOCK_HIDE)
					rect.left+=15;
				else
				{
					if(!Container[i].AutoHide)
						rect.left+=Container[i].Width;
				}
				break;
			case DOCK_RIGHT:
				if(Container[i].State==DOCK_HIDE)
					rect.right-=6;
				else
				{
					if(!Container[i].AutoHide)
						rect.left-=Container[i].Width;
				}
				break;
			case DOCK_TOP:
				if(Container[i].State==DOCK_HIDE)
					rect.top+=6;
				else
				{
					if(!Container[i].AutoHide)
						rect.top+=Container[i].Height;
				}
				break;
			case DOCK_BOTTOM:
				if(Container[i].State==DOCK_HIDE)
					rect.bottom-=15;
				else
				{
					if(!Container[i].AutoHide)
						rect.bottom-=Container[i].Height;
				}
				break;
			}
		}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲激情综合网| 亚洲天堂网中文字| 欧美精品第1页| 欧美欧美欧美欧美首页| 欧美日韩国产精品成人| 欧美日韩在线观看一区二区| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| av毛片久久久久**hd| 99精品视频在线免费观看| av激情成人网| 欧美在线综合视频| 欧美一区二区二区| 久久网站最新地址| 国产精品久久久久久一区二区三区| 国产欧美一区二区精品忘忧草| 日本一区二区在线不卡| 国产精品福利影院| 日本亚洲三级在线| 国产成人超碰人人澡人人澡| 色综合中文字幕| 欧美一区二区三区四区五区 | 国产91丝袜在线18| 成人av网站在线观看| 欧美无砖砖区免费| 精品国产污污免费网站入口| 国产精品久久久久婷婷| 日韩精品一二三区| 成人丝袜高跟foot| 欧美午夜电影网| 中文字幕第一区综合| 亚洲电影第三页| 国产精品12区| 欧美日韩午夜在线视频| 久久久久久久久久久99999| 亚洲美女视频一区| 韩国欧美国产1区| 欧美性大战久久久久久久| 久久亚洲一区二区三区四区| 亚洲一区在线播放| 成人午夜免费视频| 日韩欧美国产1| 樱桃视频在线观看一区| 黄色日韩三级电影| 欧美综合一区二区| 国产欧美一区二区精品秋霞影院| 亚洲123区在线观看| 99久久久精品| 国产欧美一区二区精品性| 日韩激情一区二区| 欧美三级日韩三级| 亚洲天堂成人网| 不卡免费追剧大全电视剧网站| 欧美丰满少妇xxxbbb| 一区二区三区日韩精品视频| 国产寡妇亲子伦一区二区| 在线观看91av| 亚洲国产欧美一区二区三区丁香婷| 国产99久久久国产精品 | 久久er99热精品一区二区| 在线观看亚洲精品视频| ...中文天堂在线一区| 国产激情视频一区二区在线观看| 欧美妇女性影城| 亚洲 欧美综合在线网络| 91国在线观看| 亚洲一区二区三区在线| 色香色香欲天天天影视综合网| 中文字幕av不卡| 成人综合激情网| 国产精品无码永久免费888| 国产91富婆露脸刺激对白| 国产亚洲污的网站| 国产精品一区免费视频| 久久久亚洲高清| 国产91丝袜在线播放0| 中文字幕精品一区二区三区精品| 成人午夜在线播放| 国产精品嫩草99a| 99久久精品免费看| 一级日本不卡的影视| 欧美图区在线视频| 青青草伊人久久| 欧美大尺度电影在线| 国产一区二区三区高清播放| 国产午夜精品福利| 91浏览器在线视频| 亚洲国产一区在线观看| 欧美人与z0zoxxxx视频| 久久精品国产精品青草| 久久久久久久久久久久久夜| 成人深夜视频在线观看| 亚洲黄一区二区三区| 欧美美女视频在线观看| 激情综合网最新| 国产精品美女久久福利网站| 色屁屁一区二区| 免费在线欧美视频| 国产精品丝袜久久久久久app| 色综合久久久久久久久| 日韩激情视频网站| 国产欧美综合在线| 欧美特级限制片免费在线观看| 青青草国产精品亚洲专区无| 国产日韩av一区| 欧美色成人综合| 国产99久久久国产精品潘金| 亚洲国产精品久久一线不卡| 亚洲精品一线二线三线| 91老师国产黑色丝袜在线| 青青草97国产精品免费观看 | 五月婷婷综合网| 26uuu国产在线精品一区二区| 99久久99久久综合| 丝袜美腿亚洲一区| 亚洲欧洲精品一区二区三区 | 亚洲一区二区精品3399| 亚洲精品一区二区三区福利| 色8久久人人97超碰香蕉987| 国产一区久久久| 天天av天天翘天天综合网| 久久久99久久| 日韩欧美国产高清| 欧美在线观看18| 波多野洁衣一区| 国产一区二区电影| 日日摸夜夜添夜夜添精品视频 | 国产在线视频不卡二| 亚洲影视在线播放| 亚洲少妇最新在线视频| 亚洲精品一区二区三区在线观看| 欧美午夜不卡在线观看免费| 懂色av一区二区三区免费观看| 男人的天堂亚洲一区| 一区二区三区**美女毛片| 国产精品美女久久久久久久久久久| 欧美一区二区大片| 91麻豆精品国产91| 欧美日韩一区二区三区四区五区| av影院午夜一区| 成人手机在线视频| 成人夜色视频网站在线观看| 国产麻豆成人精品| 国产伦精品一区二区三区在线观看| 日韩黄色免费网站| 日本sm残虐另类| 美日韩黄色大片| 精品亚洲成a人| 加勒比av一区二区| 国产成人在线免费观看| 国产黄色成人av| 国产mv日韩mv欧美| 99综合影院在线| 一本大道久久a久久精二百| 99综合电影在线视频| 91亚洲男人天堂| 精品污污网站免费看| 欧美午夜精品理论片a级按摩| 色婷婷av久久久久久久| 在线观看免费视频综合| 欧美日韩成人在线| 91精品国产综合久久久久久久久久 | 91老师片黄在线观看| 色网站国产精品| 欧美挠脚心视频网站| 欧美一区二区三区四区高清| 欧美成人一级视频| 国产精品美女视频| 亚洲国产成人高清精品| 蜜桃av噜噜一区二区三区小说| 精品一区二区三区的国产在线播放| 精品一二三四在线| 成人黄色免费短视频| 欧美性猛交xxxx黑人交| 欧美一级一级性生活免费录像| 亚洲精品在线观看网站| 综合色天天鬼久久鬼色| 日韩激情中文字幕| 丁香激情综合国产| 欧美性感一区二区三区| 久久亚洲私人国产精品va媚药| 国产精品久久久久久久久免费丝袜 | 美女网站色91| av一区二区久久| 欧美一级久久久久久久大片| 国产清纯白嫩初高生在线观看91| **欧美大码日韩| 寂寞少妇一区二区三区| 在线国产电影不卡| 久久久久久久久久久久电影| 亚洲一级二级在线| 国产精品91xxx| 欧美人动与zoxxxx乱| 国产视频不卡一区| 日本va欧美va精品发布| 91污片在线观看| 久久蜜桃av一区精品变态类天堂 | 成人在线视频首页| 91精品国产日韩91久久久久久| 国产精品麻豆网站| 精品一区二区三区视频在线观看|