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

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

?? rolloutctrl.cpp

?? 一款最完整的工業組態軟源代碼
?? CPP
字號:
/////////////////////////////////////////////////////
//	rolloutctrl.cpp	
//	Rollout Control implementation
//
//	Written by Alexey Shirshov (qqqaqa@mail.ru)
//	Copyright (c) 2003 Alexey Shirshov
//
//
//
//

#include "stdafx.h"
#include "rolloutctrl.h"

/////////////////////////////////////////////////////
//CRolloutHolder implementation


void AWTL::CRolloutContainerT::_DoPaint(CDCHandle dc)
{
	for(int i = 0;i < m_RolloutCtrls.GetSize();i++)
	{
		CRect r;
		Rollout& ro = *m_RolloutCtrls[i];
		::GetClientRect(ro.hWnd,&r);
		
		r.right += inner_margins.cx*2;
		
		r.OffsetRect(outer_margins.cx,GetTopForButton(i)+9);

		if (IsRolloutCollapsed(i)){
			r.bottom += inner_margins.cy*2;
		}
		else{
			r.bottom = r.top + inner_margins.cy*2;
		}

		if (fTrans)
			dc.DPtoLP(&r);
		
		dc.DrawEdge(r,BDR_SUNKENOUTER,BF_RECT);
		r.DeflateRect(1,1);
		dc.DrawEdge(r,BDR_RAISEDINNER,BF_RECT);
	}
}

int AWTL::CRolloutContainerT::GetTopForButton(int idx) const
{
	int top = outer_margins.cy+yOffset;
	
	for(int i = 0;i < idx;i++)
	{
		Rollout& ro = *m_RolloutCtrls[i];
		CRect r;

		top += 9;

		if (IsRolloutCollapsed(i)){
			::GetClientRect(ro.hWnd,&r);
		}
		else{
			r.SetRect(0,0,0,0);
		}
		
		r.bottom += inner_margins.cy*2;

		top += r.Height();

		//border 4*1
		top += 4;

		top += ySpacing;
	}

	return top;
}

int AWTL::CRolloutContainerT::RecalcButtons() const
{
	int top = outer_margins.cy+yOffset;
	
	for(int i = 0;i < m_RolloutCtrls.GetSize();i++)
	{
		Rollout& ro = *m_RolloutCtrls[i];

		ro.rloButton.SetWindowPos(NULL,
			outer_margins.cx+inner_margins.cx,top,0,0,
			SWP_NOZORDER|SWP_NOSIZE);

		CRect r;

		top += 9;

		top += inner_margins.cy;
		
		::SetWindowPos(ro.hWnd,NULL,
			outer_margins.cx+inner_margins.cx,top,0,0,
			SWP_NOZORDER|SWP_NOSIZE);

		::InvalidateRect(ro.hWnd,NULL,TRUE);
		
		if (IsRolloutCollapsed(i)){
			::GetClientRect(ro.hWnd,&r);
		}
		else{
			r.SetRect(0,0,0,0);
		}
		
		r.bottom += inner_margins.cy;

		top += r.Height();

		//berder
		top += 4;

		top += ySpacing;
	}

	return top;
}

int AWTL::CRolloutContainerT::RecalcWidth(int iWidth) const
{
	int top = outer_margins.cy+yOffset;

	for(int i = 0;i < m_RolloutCtrls.GetSize();i++)
	{
		Rollout& ro = *m_RolloutCtrls[i];
		CRect r;

		ro.rloButton.GetClientRect(&r);
		
		ro.rloButton.SetWindowPos(NULL,
			outer_margins.cx+inner_margins.cx,top,iWidth,r.Height(),
			SWP_NOZORDER);

		top += 9;

		top += inner_margins.cy;
		
		::GetClientRect(ro.hWnd,&r);

		::SetWindowPos(ro.hWnd,NULL,
			outer_margins.cx+inner_margins.cx,top,iWidth,r.Height(),
			SWP_NOZORDER);

		::InvalidateRect(ro.hWnd,NULL,TRUE);
		
		if (IsRolloutCollapsed(i)){
			::GetClientRect(ro.hWnd,&r);
		}
		else{
			r.SetRect(0,0,0,0);
		}
		
		r.bottom += inner_margins.cy;

		top += r.Height();

		//border
		top += 4;

		//spacing
		top += ySpacing;
	}

	return top;
}

bool AWTL::CRolloutContainerT::Expand(int idx)
{
	_DASSERT(idx >= 0 && idx < m_RolloutCtrls.GetSize()){
		return false;
	}

	ExpandRollout(idx,true);
	_Invalidate();

	::ShowWindow(m_RolloutCtrls[idx]->hWnd,SW_SHOWNORMAL);
	
	RecalcButtons();
	return true;
}

bool AWTL::CRolloutContainerT::Collapse(int idx)
{
	_DASSERT(idx >= 0 && idx < m_RolloutCtrls.GetSize()){
		return false;
	}

	ExpandRollout(idx,false);
	_Invalidate();

	::ShowWindow(m_RolloutCtrls[idx]->hWnd,SW_HIDE);
	RecalcButtons();
	return true;
}

void AWTL::C3DStudioRolloutContainer::DoPaint(CDCHandle dc)
{
	CRect rc(GetSliderRect());
	
	dc.DrawEdge(&rc, BDR_SUNKENOUTER, BF_RECT);

	rc.DeflateRect(2,2);

	CRect r;
	GetClientRect(&r);

	double k = double(rc.Height())/_height;
	if (_height > r.Height()){
		rc.bottom = long(r.Height()*k);
		rc.OffsetRect(0,_ptOffset.y);
	}
	
//	if (rc.bottom <= 0)
//		rc.bottom = rc.top+2;

	dc.FillRect(&rc, clrActiveCaption);

	dc.SetViewportOrg(-_ptOffset.x, -long(_ptOffset.y/k));

	_DoPaint(dc);
}

LRESULT AWTL::C3DStudioRolloutContainer::OnMouseMove(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& bHandled)
{
	CPoint p(lParam);
	if (GetCapture() == m_hWnd){
		Scroll(p.y-_ptStartDrag.y);
	}
	else{
		CRect r(GetSliderRect());
		r.InflateRect(4,0);
		if (r.PtInRect(p)){
			SetCursor(_hCursorHand);
		}
	}
	return 1;
}

void AWTL::C3DStudioRolloutContainer::Scroll(int newY)
{
	CRect r;
	GetClientRect(&r);

	CRect rc(GetSliderRect());
	rc.DeflateRect(2,2);
	double k = double(rc.Height())/_height;
	rc.bottom = long(r.Height()*k);

	rc.OffsetRect(0,prev+newY);

	bool b = false;
	r.right = GetWidth()+outer_margins.cx*2+
		inner_margins.cx*2+4;

	static bool in_t = false;
	static bool in_b = false;

	if (rc.top >= 4){
		in_t = false;
		if (rc.bottom <= r.Height()-4){			
			in_b = false;
			yOffset = -long((prev+newY)/k);

			//CSize p(0,long((cur-newY)/k));
			//CWindowDC dc(m_hWnd);
			//dc.DPtoLP(&p);
			//ScrollWindowEx(p.cx,p.cy,
			//	SW_SCROLLCHILDREN|SW_INVALIDATE|SW_ERASE);
			
			//for(int i = 0;i < m_RolloutCtrls.GetSize();i++)
			//	m_RolloutCtrls[i]->Move(long((cur-newY)/k));

			_ptOffset.y = prev+newY;
			cur = newY;
			
			RecalcButtons();
			InvalidateRect(&r);
			InvalidateSlider();
		}
		else if (!in_b){
			const int d = rc.bottom-r.Height()+4;
			const int y = rc.top-d-4;
	
			yOffset = -long(y/k);
			_ptOffset.y = y;
			cur = y;
			
			RecalcButtons();
			InvalidateRect(&r);
			InvalidateSlider();

			in_b = true;
		}
	}
	else if (!in_t){
		yOffset = 0;

		_ptOffset.y = 0;
		cur = 0;
		
		RecalcButtons();
		InvalidateRect(&r);
		InvalidateSlider();
		in_t = true;
	}
	
	//if (b){
	//}
}

LRESULT AWTL::C3DStudioRolloutContainer::OnSize(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& bHandled)
{
	const int y = HIWORD(lParam);
	
	CRect rc(GetSliderRect());	
	rc.DeflateRect(2,2);

	double k = double(y)/_height;
	if (_height > y){
		rc.bottom = long(y*k);
		rc.OffsetRect(0,_ptOffset.y);
	}

	if (rc.bottom > y){
		const int dy = rc.bottom-y;
		
		CRect r(0,0,GetWidth()+outer_margins.cx*2+
				inner_margins.cx*2+4,_height);
		
		//ScrollWindowEx(0, long(dy/k),
		//	SW_SCROLLCHILDREN|SW_INVALIDATE|SW_ERASE);
		
		_ptOffset.y -= dy;
		yOffset = -long(_ptOffset.y/k);
		
		RecalcButtons();
		InvalidateRect(&r);
		//Invalidate();
	}

	InvalidateSlider();
	return 1;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品久久一区二区三区| 91行情网站电视在线观看高清版| 国产精品你懂的在线欣赏| 9191久久久久久久久久久| 99精品视频中文字幕| 国产电影一区在线| 蜜臀久久99精品久久久久宅男| 中文字幕不卡一区| 欧美成人精品二区三区99精品| 欧美伊人久久久久久久久影院| 成人精品国产免费网站| 国产精品自拍在线| 久久国产免费看| 美女在线视频一区| 国产精品丝袜一区| 91精品国产福利在线观看 | 国产目拍亚洲精品99久久精品| 91 com成人网| 91精品国产乱| 欧美一区二区福利在线| 欧美日韩国产一级二级| 99国产一区二区三精品乱码| 五月激情六月综合| 日韩成人av影视| 另类专区欧美蜜桃臀第一页| 精品无人码麻豆乱码1区2区 | 韩国理伦片一区二区三区在线播放| 欧美国产一区二区在线观看| 国产日韩欧美a| 国产无遮挡一区二区三区毛片日本| 2023国产精品自拍| 欧美激情中文不卡| 久久久高清一区二区三区| 26uuu亚洲综合色| 国产精品久久毛片a| 国产丝袜在线精品| 综合久久久久久| 亚洲午夜精品久久久久久久久| 亚洲成人1区2区| 欧美在线播放高清精品| 国内精品伊人久久久久av一坑| 国产成人自拍在线| 色丁香久综合在线久综合在线观看| 91免费国产在线| 欧美日韩精品系列| 欧美不卡一区二区| 国产精品美女久久久久久久久久久| 日韩精品视频网站| 色综合久久中文字幕综合网 | 国产一区二区伦理| 欧美在线免费观看亚洲| 国产肉丝袜一区二区| 免费高清成人在线| 欧美日本在线观看| 亚洲精品水蜜桃| 不卡欧美aaaaa| 国产亲近乱来精品视频| 久久99国产精品麻豆| 欧美高清视频在线高清观看mv色露露十八| 国产午夜精品理论片a级大结局| 免费高清视频精品| 欧美日韩成人综合在线一区二区| 亚洲人成影院在线观看| 北条麻妃国产九九精品视频| 欧美国产精品中文字幕| 精品一区二区三区免费| 日韩欧美亚洲国产精品字幕久久久| 亚洲国产精品一区二区久久| 在线亚洲人成电影网站色www| 中文字幕在线不卡视频| 不卡一区二区三区四区| 专区另类欧美日韩| 99国产精品久| 亚洲综合一区在线| 欧美最猛性xxxxx直播| 亚洲综合清纯丝袜自拍| 欧美综合在线视频| 亚洲成a人片在线观看中文| 欧美在线free| 亚洲成人综合网站| 91精品国产色综合久久不卡电影| 午夜一区二区三区视频| 欧美日韩不卡视频| 日韩在线一二三区| 日韩欧美中文一区| 韩国一区二区在线观看| 国产欧美一区二区精品仙草咪| 国产精品影视天天线| 久久精品亚洲乱码伦伦中文| 国产成人午夜精品影院观看视频| 久久久www免费人成精品| 国产宾馆实践打屁股91| 国产精品妹子av| 91黄视频在线观看| 丝袜亚洲另类丝袜在线| 欧美一级片在线| 东方aⅴ免费观看久久av| 国产精品对白交换视频| 欧美亚洲日本一区| 蜜臀av性久久久久av蜜臀妖精| 久久精品在这里| 色999日韩国产欧美一区二区| 亚洲电影视频在线| 精品国产一区二区三区久久影院| 国产成人在线视频网站| 亚洲精品成人在线| 欧美一级精品大片| av网站免费线看精品| 亚洲国产成人高清精品| 久久久精品国产免大香伊| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 一区二区三区中文字幕精品精品| 在线综合亚洲欧美在线视频| 国产精品18久久久久| 亚洲一区电影777| 久久午夜色播影院免费高清| 色综合久久综合| 国内成+人亚洲+欧美+综合在线| 自拍偷拍亚洲欧美日韩| 欧美成人一区二区三区片免费| 成人午夜视频免费看| 免费在线观看一区| 日韩伦理免费电影| 久久久久综合网| 欧美精品视频www在线观看| av在线不卡免费看| 久久精品99久久久| 午夜伊人狠狠久久| 亚洲视频你懂的| 国产欧美日本一区二区三区| 717成人午夜免费福利电影| av中文字幕在线不卡| 韩国女主播成人在线观看| 视频一区二区欧美| 亚洲色图20p| 国产午夜精品一区二区三区视频 | 国产精品自拍网站| 日本成人在线看| 亚洲一区二区三区不卡国产欧美| 久久久久久久久久久久电影| 欧美一区二区免费观在线| 在线观看日产精品| 91在线精品一区二区| 成人精品一区二区三区中文字幕| 老鸭窝一区二区久久精品| 亚洲一区二区三区小说| 亚洲精品少妇30p| 亚洲欧美另类久久久精品| 中文字幕不卡在线| 国产精品国产三级国产aⅴ无密码| 久久久夜色精品亚洲| 久久婷婷成人综合色| 精品国产麻豆免费人成网站| 精品久久久久久久久久久久包黑料| 欧美剧情片在线观看| 欧美日韩亚洲综合在线| 欧美影片第一页| 在线观看日韩电影| 欧美性猛片aaaaaaa做受| 欧洲亚洲国产日韩| 欧美日韩免费观看一区二区三区| 在线观看日韩精品| 在线精品观看国产| 色88888久久久久久影院按摩| 在线看一区二区| 91精品在线免费观看| 精品久久免费看| 国产情人综合久久777777| 中文字幕亚洲欧美在线不卡| 国产精品美女久久久久高潮| 亚洲情趣在线观看| 午夜精品久久久久久久蜜桃app| 丝袜诱惑亚洲看片| 久久99蜜桃精品| 国产在线精品一区二区不卡了| 国产盗摄女厕一区二区三区| 99久久免费精品高清特色大片| 在线精品视频免费观看| 欧美精品18+| 国产精品天干天干在观线| 亚洲激情五月婷婷| 精品亚洲成a人在线观看| 国产福利一区二区三区视频在线| 99久久伊人久久99| 欧美精品九九99久久| 久久久精品一品道一区| 亚洲精品国产精华液| 精品一区二区三区免费| 91香蕉国产在线观看软件| 欧美日韩美女一区二区| 日韩一区二区三区电影| 久久久久久久网| 亚洲午夜精品在线| 高清在线成人网| 欧美日韩亚洲高清一区二区| 久久日韩精品一区二区五区| 亚洲一区二区三区四区的| 国产精品亚洲午夜一区二区三区| 在线免费观看日本欧美| 久久综合中文字幕|