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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? categorybar.cpp

?? 本程序是VC為平臺(tái)開(kāi)發(fā)的股票資訊系統(tǒng)
?? CPP
?? 第 1 頁(yè) / 共 4 頁(yè)
字號(hào):
								dc.DrawFrameControl(rcUpArrow, DFC_SCROLL, DFCS_SCROLLUP|DFCS_PUSHED);
								bHigh = true;
								bUpArrow = true;
								bUpPressed = true;
							}
						}
						else
						{
							if (bHigh == true)
							{
								dc.DrawFrameControl(rcUpArrow, DFC_SCROLL, DFCS_SCROLLUP);
								bHigh = false;
								bUpArrow = false;
								bUpPressed = false;
							}
						}
					}
					break;

				case WM_LBUTTONUP:
					{
						if (bHigh)
						{
							dc.DrawFrameControl(rcUpArrow, DFC_SCROLL, DFCS_SCROLLUP);
							bHigh = false;
						}
						bUpArrow = false;
						CPoint pt(msg.lParam);
						if (rcUpArrow.PtInRect(pt))
						{
							if (iFirstItem > 0 ) 
							{
								iFirstItem --;
								CRect crc;
								GetInsideRect(crc);
								InvalidateRect(crc, true);
							}
						}
					}

					goto ExitLoop;

				case WM_TIMER:
					{
						if (msg.wParam == 2)
						{
							if (bHigh)
							{
								CPoint pt(msg.pt);
								ScreenToClient(&pt);
								if (rcUpArrow.PtInRect(pt))
								{
									bUpPressed = true;
									if (iFirstItem > 0) 
									{
										iFirstItem --;
										CRect crc;
										GetInsideRect(crc);
										InvalidateRect(crc, true);
									}
									else goto ExitLoop;
								}
								else bUpPressed = false;
							}
						}
						break;
					}
				case WM_KEYDOWN:	
					if (msg.wParam != VK_ESCAPE) break;

				default:
					DispatchMessage(&msg);
					break;
				}
			}

		ExitLoop:
			KillTimer(2);
			ReleaseCapture();
			AfxUnlockTempMaps(FALSE);
			bLooping = false;
			bUpPressed = false;
			bUpArrow = false;
			CRect crc;
			GetInsideRect(crc);
			InvalidateRect(crc, true);
		}
	}
	
	CWnd::OnLButtonDown(nFlags, point);
}

int CCategoryBar::InsertItem(const int folder, const int index, LPCTSTR text, const int image, const DWORD exData)
{
	ASSERT(folder >= 0 && folder < GetFolderCount());

	CBarFolder* pbf = (CBarFolder*) arFolder.GetAt(folder);

	return pbf->InsertItem(index, text, image, exData);
}

int CCategoryBar::GetItemCount() const
{
	ASSERT(iSelFolder >= 0 && iSelFolder < GetFolderCount());
	CBarFolder * pbf = (CBarFolder *) arFolder.GetAt(iSelFolder);
	return 	pbf->GetItemCount();
}

void CCategoryBar::SetSelFolder(const int index)
{
	ASSERT(index >= 0 && index < GetFolderCount());
//	if (index == iSelFolder) return;

	CWnd * pc = GetFolderChild();
	if (pc) pc->ShowWindow(SW_HIDE);

	if (index != iSelFolder)
	{
		if (dwFlags&fAnimation && lAnimationTickCount >= 0) AnimateFolderScroll(iSelFolder, index);
	}

	iSelFolder = index;
	iFirstItem = 0;
	iLastSel = -1;

	pc = GetFolderChild();
	if (pc)
	{
		CRect rc;
		GetInsideRect(rc);
		pc->MoveWindow(rc);
		pc->ShowWindow(SW_SHOW);
	}	

	GetOwner()->SendMessage(WM_CATEGORY_NOTIFY, NM_FOLDERCHANGE, (LPARAM) iSelFolder);

	Invalidate();
}
							
int CCategoryBar::GetFolderCount() const
{
	return arFolder.GetSize();
}

int CCategoryBar::GetSelFolder() const
{
	return iSelFolder;
}

void CCategoryBar::RemoveFolder(const int index)
{
	ASSERT(index >= 0 && index < GetFolderCount());
	CBarFolder * pbf = (CBarFolder *) arFolder.GetAt(index);
	delete pbf;
	arFolder.RemoveAt(index);
	if (iSelFolder >= index) iSelFolder = index - 1;
	if (iSelFolder < 0 && GetFolderCount() > 0) iSelFolder = 0;
	Invalidate();
}

int CCategoryBar::CBarFolder::InsertItem(int index, LPCTSTR text, const int image, const DWORD exData)
{
	if (index < 0 || index > GetItemCount()) index = GetItemCount();

	int c = GetItemCount();

	CBarItem* pbf = new CBarItem(text, image, exData);

	ASSERT(pbf);

	if( index < GetItemCount()) 
	{
		arItems.InsertAt(index, (void *) pbf);
	}
	else 
	{
		arItems.Add((void *) pbf);
	}

	c = GetItemCount();

	return index;
}

int CCategoryBar::GetCountPerPage() const
{
	return 0;
}

CImageList * CCategoryBar::SetImageList(CImageList * pImageList, int nImageList)
{
	CImageList * o = NULL;
	if (nImageList == fSmallIcon)
	{
		o = pSmallImageList;
		pSmallImageList = pImageList;
	}
	else if (nImageList == fLargeIcon)
	{
		o = pLargeImageList;
		pLargeImageList = pImageList;
	}
	return o;
}

//CImageList * CCategoryBar::GetImageList(CImageList* /*pImageList*/, int nImageList)
CImageList * CCategoryBar::GetImageList(int nImageList)
{
	if (nImageList == fSmallIcon) return pSmallImageList;
	else if (nImageList == fLargeIcon) return pLargeImageList;
	return NULL;
}

CImageList * CCategoryBar::SetFolderImageList(const int folder, CImageList * pImageList, int nImageList)
{
	ASSERT(folder >= 0 && folder < GetFolderCount());
	CBarFolder * pbf = (CBarFolder *) arFolder.GetAt(folder);
	CImageList * o = NULL;
	if (nImageList == fSmallIcon)
	{
		o = pbf->pSmallImageList;
		pbf->pSmallImageList = pImageList;
	}
	else if (nImageList == fLargeIcon)
	{
		o = pbf->pLargeImageList;
		pbf->pLargeImageList = pImageList;
	}
	return o;
}

CCategoryBar::CBarItem::CBarItem( LPCTSTR name, const int image, DWORD exData )
{
	cItem		= NULL;
	iImageIndex = image;
	dwData		= exData;

	if( name )
	{
		cItem = new TCHAR[ _tcslen( name ) + 1 ];
	
		ASSERT(cItem);
		
		_tcscpy( cItem, name );
	}
}

CCategoryBar::CBarItem::~CBarItem()
{
	if (cItem) delete [] cItem;
}

int CCategoryBar::CBarFolder::GetItemCount()
{
	return arItems.GetSize();
}

void CCategoryBar::PaintItems(CDC * pDC, const int iFolder, CRect rc)
{
	ASSERT(iFolder >= 0 && iFolder < GetFolderCount());
	CBarFolder * pbf = (CBarFolder *) arFolder.GetAt(iFolder);
	int max = pbf->GetItemCount(), t;
	CRect irc;
	GetInsideRect(irc);
	int isdc = pDC->SaveDC();
	CRgn itemRegion;
	itemRegion.CreateRectRgnIndirect(&irc);
	pDC->SelectClipRgn(&itemRegion);
	itemRegion.DeleteObject();
	for (t = iFirstItem; t < max; t++)
	{
		CRect itemRc;
		GetItemRect(iFolder, t, itemRc);
		if (itemRc.top > rc.bottom) break;
		else DrawItem(pDC, iFolder, itemRc, t);
	}
	pDC->RestoreDC(isdc);
}


CSize CCategoryBar::GetItemSize(const int iFolder, const int index, const int type)
{
	ASSERT(iFolder >= 0 && iFolder < GetFolderCount());
	CBarFolder * pbf = (CBarFolder *) arFolder.GetAt(iFolder);

	ASSERT(index >= 0 && index < pbf->GetItemCount());
	CBarItem * pi = (CBarItem *) pbf->arItems.GetAt(index);

	CSize szImage(0,0);
	CSize szLabel(0,0);
	CSize szAll(0,0);

	if (pi->iImageIndex >= 0)
	{
		if (type != ircLabel)
		{
			CImageList * il = GetFolderImageList(iFolder, IsSmallIconView());
			ASSERT(il);
			if (il)
			{
				IMAGEINFO ii;
				il->GetImageInfo(pi->iImageIndex, &ii);
				szImage = CRect(ii.rcImage).Size();
			}
		}
	}
	if (pi->cItem)
	{
		if (type != ircIcon)
		{
			CClientDC dc(this);
			CFont * oft = (CFont *) dc.SelectObject(CFont::FromHandle((HFONT)GetStockObject(DEFAULT_GUI_FONT)));
			if (IsSmallIconView())
			{
				szLabel = dc.GetTextExtent(pi->cItem, lstrlen(pi->cItem));
			}
			else
			{
				CRect rc;
				GetInsideRect(rc);
				rc.bottom = rc.top;
				dc.DrawText(pi->cItem, lstrlen(pi->cItem), rc, DT_CALCRECT|DT_CENTER|DT_WORDBREAK);
				szLabel = rc.Size();
			}
			dc.SelectObject(oft);
		}
	}
	if (IsSmallIconView())
	{
		if (type == ircIcon) szAll = szImage;
		else if (type == ircLabel) szAll = szLabel;
		else if (type == ircAll) szAll = CSize(szImage.cx + szLabel.cx + xSmallIconLabelOffset, szImage.cy > szLabel.cy ? szImage.cy : szLabel.cy);
	}
	else
	{
		if (type == ircIcon) szAll = szImage;
		else if (type == ircLabel) szAll = szLabel;
		else if (type == ircAll) 
		{
			szAll = CSize(szImage.cx > szLabel.cx ? szImage.cx : szLabel.cx, szLabel.cy + szImage.cy + yLargeIconLabelOffset + yLargeIconSpacing);
		}
	}
	return szAll;
}

CImageList * CCategoryBar::GetFolderImageList(const int index, const bool bSmall) const
{
	ASSERT(index >= 0 && index < GetFolderCount());
	CBarFolder * pbf = (CBarFolder *) arFolder.GetAt(index);
	if (bSmall)
	{
		if (pbf->pSmallImageList) return pbf->pSmallImageList; else return pSmallImageList;
	}
	if (pbf->pLargeImageList) return pbf->pLargeImageList; else return pLargeImageList;
}

void CCategoryBar::DrawItem(CDC * pDC, const int iFolder, CRect rc, const int index, const bool bOnlyImage)
{
	CImageList * ima = GetFolderImageList(iFolder, IsSmallIconView());

	ASSERT(iFolder >= 0 && iFolder < GetFolderCount());
	CBarFolder * pbf = (CBarFolder *) arFolder.GetAt(iFolder);

	ASSERT(index >= 0 && index < pbf->GetItemCount());
	CBarItem * pi = (CBarItem *) pbf->arItems.GetAt(index);

	ASSERT(pi && ima);

	CFont * oft = (CFont *) pDC->SelectObject(CFont::FromHandle((HFONT)GetStockObject(DEFAULT_GUI_FONT)));
	COLORREF ocr = pDC->SetTextColor(crTextColor);
	int obk = pDC->SetBkMode(TRANSPARENT);

	if (IsSmallIconView())
	{
		if (ima)
		{
			IMAGEINFO ii;
			ima->GetImageInfo(pi->iImageIndex, &ii);
			CSize szImage = CRect(ii.rcImage).Size();
			CPoint pt;
			pt.x = rc.left + 2;
			pt.y = rc.top + (rc.Height() - szImage.cy) / 2;
			ima->Draw(pDC, pi->iImageIndex, pt, ILD_NORMAL);

			if (!bOnlyImage)
			{
				rc.left += szImage.cx + xSmallIconLabelOffset;
				pDC->TextOut(rc.left, rc.top, CString(pi->cItem));
			}
			
		}
	}
	else
	{
		if (ima)
		{
			IMAGEINFO ii;
			ima->GetImageInfo(pi->iImageIndex, &ii);
			CSize szImage = CRect(ii.rcImage).Size();
			CPoint pt;
			pt.x = rc.left + (rc.Width() - szImage.cx) / 2;
			pt.y = rc.top;// + (rc.Height() - szImage.cy) / 2;
			ima->Draw(pDC, pi->iImageIndex, pt, ILD_NORMAL);
			if (!bOnlyImage)
			{
				rc.top += szImage.cy + yLargeIconLabelOffset;
				pDC->DrawText(pi->cItem, lstrlen(pi->cItem), rc, DT_CENTER|DT_WORDBREAK);
			}
		}
	}
	
	if (dwFlags&fSelHighlight && iLastSel == index && iLastSel >= 0)
	{
		CRect rc;
		GetIconRect(iSelFolder, iLastSel, rc);
		rc.InflateRect(1,1);
		pDC->Draw3dRect(rc, crDkShadowBorder, cr3dFace);
	}

	pDC->SetTextColor(ocr);
	pDC->SelectObject(oft);
	pDC->SetBkMode(obk);

}

BOOL CCategoryBar::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) 
{
	// TODO: Add your message handler code here and/or call default
	CPoint pt(GetMessagePos());
	ScreenToClient(&pt);
	int index, ht = HitTestEx(pt, index);
	if (ht == htFolder)
		return true;
	
	return CWnd::OnSetCursor(pWnd, nHitTest, message);
}

void CCategoryBar::GetVisibleRange(const int iFolder, int & first, int & last)
{
	first = iFirstItem;
	CRect rc;
	GetInsideRect(rc);

	CBarFolder * pbf = (CBarFolder *) arFolder.GetAt(iFolder);
	int max = pbf->GetItemCount(), t;
	for (t = iFirstItem; t < max; t++)
	{
		CRect itemRc;
		GetItemRect(iFolder, t, itemRc);
		if (itemRc.bottom > rc.bottom) 
		{
			last = t - 1;
			break;
		}
		else last = t;
	}
}

void CCategoryBar::OnSize(UINT nType, int cx, int cy) 
{
	bUpArrow = bDownArrow = false;

	CWnd::OnSize(nType, cx, cy);
	
	// TODO: Add your message handler code here
	int t, max = GetFolderCount();
	CRect rc;
	GetInsideRect(rc);

	for (t = 0; t < max; t++)
	{
		CWnd * pc = GetFolderChild(t);
		if (pc) pc->SetWindowPos(0, rc.left, rc.top, rc.Width(), rc.Height(), SWP_NOZORDER);
	}
}

void CCategoryBar::HighlightItem(const int index, const bool bPressed)
{
	CWnd * pf = GetFocus();
	if (pf != NULL && pf != this && IsChild(pf)) return;

	static bool bOldPressed = false;
	if (iLastItemHighlighted == index && bOldPressed == bPressed) return;

	bOldPressed = bPressed;

	CClientDC dc(this);

	CRect irc;
	GetInsideRect(irc);
	int isdc = dc.SaveDC();
	CRgn itemRegion;
	itemRegion.CreateRectRgnIndirect(&irc);
	dc.SelectClipRgn(&itemRegion);
	itemRegion.DeleteObject();


	if (iLastItemHighlighted >= 0 && IsValidItem(iLastItemHighlighted))
	{
		CRect rc;
//		GetIconRect(iSelFolder, iLastItemHighlighted, rc);
//		rc.InflateRect(1,1);
		GetHighItemRect(rc);
		dc.Draw3dRect(rc, crBackGroundColor, crBackGroundColor);
	}
	if (iSelAnimTiming > 0 && index == iLastSel)
	{
		iLastItemHighlighted = -1;
		return;
	}
	if (dwFlags&fSelHighlight && iLastSel == index)
	{
		iLastItemHighlighted = -1;
		return;
	}

	iLastItemHighlighted = index;
	if (iLastItemHighlighted >= 0 && IsValidItem(iLastItemHighlighted))
	{
		CRect rc;
//		GetIconRect(iSelFolder, iLastItemHighlighted, rc);
//		rc.InflateRect(1,1);
		GetHighItemRect(rc);

		if (bPressed)
			dc.Draw3dRect(rc, crDkShadowBorder, cr3dFace);
		else
			dc.Draw3dRect(rc, cr3dFace, crDkShadowBorder);
	}
	dc.RestoreDC(isdc);
	GetOwner()->SendMessage(WM_CATEGORY_NOTIFY,NM_OB_ITEMHOVER,index);
}

void CCategoryBar::GetIconRect(const int iFolder, const int iIndex, CRect & rect)
{
	CRect rc;
	GetInsideRect(rc);
	int top = rc.top;
	CSize sz(0,0);
	int y = 0;
	int spacing = IsSmallIconView() ? ySmallIconSpacing : yLargeIconSpacing;

	for (int t = 0; t < iIndex; t++)
	{
		sz = GetItemSize(iFolder, t, ircAll);
		top += sz.cy;
		top += spacing;
		if (t == iFirstItem - 1) y = top - rc.top;
	}
	top += spacing;

	sz = GetItemSize(iFolder, iIndex, ircIcon);
	if (IsSmallIconView())
	{
		rect.SetRect(rc.left, top, rc.left + sz.cx, top + sz.cy);
		rect.left += xLeftMargin + 2;
		rect.right += xLeftMargin + 2;
		rect.top -= yTopMargin;

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久人人爽人人爽| 欧美人与禽zozo性伦| 色婷婷av一区二区三区大白胸| 欧美在线观看禁18| 日韩一区二区高清| 亚洲国产精品ⅴa在线观看| 一区二区三区久久| 久久成人免费电影| av亚洲产国偷v产偷v自拍| 欧美日韩精品一区二区三区| 欧美精品一区二区三区高清aⅴ| 中文字幕一区二区三区精华液 | 国产真实乱偷精品视频免| 成av人片一区二区| 在线综合视频播放| 国产精品天美传媒沈樵| 日韩av电影免费观看高清完整版在线观看 | 国内久久精品视频| 91久久免费观看| 精品成人佐山爱一区二区| 一卡二卡欧美日韩| 国产91精品一区二区| 欧美一区二区福利视频| 亚洲男人的天堂在线aⅴ视频| 久久国产视频网| 欧洲生活片亚洲生活在线观看| 久久久蜜桃精品| 日韩1区2区日韩1区2区| 91麻豆精品秘密| 久久这里只有精品6| 日韩精品久久久久久| 99久久久久免费精品国产| 日韩欧美一级二级| 亚洲观看高清完整版在线观看| av网站免费线看精品| 久久久欧美精品sm网站| 日本麻豆一区二区三区视频| 在线影院国内精品| 国产精品天美传媒沈樵| 国产伦精品一区二区三区视频青涩| 欧美浪妇xxxx高跟鞋交| 亚洲乱码国产乱码精品精98午夜 | 中文字幕av一区 二区| 久久aⅴ国产欧美74aaa| 777奇米成人网| 亚洲制服丝袜av| 91日韩精品一区| 国产精品人成在线观看免费| 激情亚洲综合在线| 日韩亚洲欧美在线| 日韩福利视频导航| 制服丝袜亚洲色图| 亚洲一二三四在线| 日本精品免费观看高清观看| 中文字幕一区二区三区四区| 成人v精品蜜桃久久一区| 国产性做久久久久久| 国产一区二区调教| 精品国产一区二区三区久久久蜜月| 三级欧美韩日大片在线看| 精品婷婷伊人一区三区三| 一区二区三区国产| 日本韩国一区二区三区| 亚洲精品国产视频| 色婷婷精品久久二区二区蜜臀av | 欧美日韩久久不卡| 亚洲国产精品综合小说图片区| 欧美自拍丝袜亚洲| 亚洲午夜精品网| 欧美男人的天堂一二区| 日韩高清电影一区| 日韩免费高清视频| 久久疯狂做爰流白浆xx| 久久久久久久精| 成人精品在线视频观看| 成人免费视频在线观看| 色女孩综合影院| 亚洲国产综合91精品麻豆| 欧美日韩国产系列| 日本欧美一区二区| 2020国产精品| 成人性生交大片免费看在线播放 | 91丝袜国产在线播放| 亚洲欧洲日韩av| 欧洲国内综合视频| 婷婷成人综合网| 精品国产伦一区二区三区观看体验 | 色婷婷精品大在线视频 | 日韩欧美中文一区二区| 国内精品嫩模私拍在线| 国产色91在线| 一本久道久久综合中文字幕| 午夜精品久久久久久| 欧美白人最猛性xxxxx69交| 国产精品亚洲专一区二区三区| 中文字幕av一区二区三区免费看 | 亚洲一二三专区| 欧美一级片在线| 国产成人综合视频| 亚洲美女免费视频| 欧美一区二视频| 国产成人无遮挡在线视频| 亚洲人成网站色在线观看| 欧美美女一区二区三区| 韩国精品主播一区二区在线观看| 中文字幕av一区 二区| 精品视频123区在线观看| 激情六月婷婷久久| 亚洲乱码国产乱码精品精可以看| 91精品国产综合久久久久久久| 国产乱妇无码大片在线观看| 亚洲另类在线视频| 欧美成人精品1314www| 99riav一区二区三区| 日韩vs国产vs欧美| 国产精品欧美一区喷水| 91精品一区二区三区在线观看| 国产又粗又猛又爽又黄91精品| 日韩理论片网站| 日韩精品一区二区三区三区免费| 91在线你懂得| 蜜桃av一区二区三区| 亚洲视频小说图片| 精品国产99国产精品| 色婷婷综合久色| 国产精品1024久久| 日韩va欧美va亚洲va久久| 中文字幕一区二区三区在线播放| 日韩一区二区不卡| 色噜噜狠狠成人中文综合 | 国产亚洲一区二区三区四区| 欧美在线你懂的| 国产91丝袜在线播放| 免费观看在线综合色| 一区二区三区在线视频播放| 精品国产凹凸成av人网站| 欧美三区在线观看| 不卡欧美aaaaa| 韩国三级中文字幕hd久久精品| 亚洲一区国产视频| 国产精品伦一区二区三级视频| 欧美一级精品在线| 在线免费观看日韩欧美| 高清视频一区二区| 狠狠色丁香久久婷婷综| 午夜视频一区二区三区| 亚洲人成精品久久久久久| 国产片一区二区| 精品美女在线观看| 欧美精品1区2区3区| 色哟哟精品一区| 成人三级在线视频| 国产激情精品久久久第一区二区| 日韩经典一区二区| 午夜视频久久久久久| 亚洲最新视频在线观看| 自拍视频在线观看一区二区| 久久久久久久久久久电影| 日韩三区在线观看| 欧美精品xxxxbbbb| 欧美日韩精品福利| 欧美性色黄大片手机版| 色婷婷精品久久二区二区蜜臂av | 亚洲狼人国产精品| 一区在线中文字幕| 国产精品乱码人人做人人爱| 久久天天做天天爱综合色| 日韩美一区二区三区| 日韩一区二区三免费高清| 制服丝袜av成人在线看| 欧美三级资源在线| 欧美日韩电影一区| 欧美日产国产精品| 正在播放亚洲一区| 欧美一区二区三区视频免费 | 国内成人精品2018免费看| 麻豆精品在线播放| 麻豆精品在线观看| 激情欧美一区二区三区在线观看| 久久国产福利国产秒拍| 国产自产高清不卡| 国产电影精品久久禁18| 处破女av一区二区| 波多野洁衣一区| 91一区二区在线观看| 色呦呦日韩精品| 欧美日韩精品一区二区三区| 69久久夜色精品国产69蝌蚪网| 欧美一区二区网站| 精品奇米国产一区二区三区| 久久久国产精品不卡| 国产精品乱人伦中文| 亚洲精品成人在线| 日韩主播视频在线| 精品一二三四区| 丁香婷婷综合色啪| 91啦中文在线观看| 欧美日韩情趣电影| 欧美videofree性高清杂交| 久久精品亚洲精品国产欧美kt∨ |