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

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

?? colorpicker.cpp

?? 【白領就業指南:Visual C++設計師之路】 全書的代碼
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
				HDC			hDC;
				hDC = ::GetWindowDC(hwndPoint);
				::GetWindowRect(hwndPoint,&rect);
				crtTMPColor = GetPixel(hDC,point.x-rect.left,point.y-rect.top);
				::ReleaseDC(hwndPoint,hDC);
				RECT redrawRect;
				redrawRect.left = 0;
				redrawRect.right = 150;
				redrawRect.top = 120;
				redrawRect.bottom = 145;
				::GetWindowRect(hWnd,&rect);
				if(!rect.PtInRect(point))//不在本窗口
				{
					crtColor = crtTMPColor;
					::InvalidateRect(hWnd,&redrawRect,TRUE);
				}
				else
				{
					rect.bottom = rect.top + 120;
					int iCurrentActiveRect;
					if(rect.PtInRect(point))///判斷鼠標是否在當前窗口的色彩區域
					{
						////計算位于哪個方框內////
						point.x -= rect.left;
						point.y -= rect.top;
						if(point.x%10 != 0 && point.y%10 != 0)
							iCurrentActiveRect = point.y/10*19 + point.x/10;
						else
							iCurrentActiveRect = -1;
					}
					else
					{
						iCurrentActiveRect = -1;
						crtColor = oldColor;
						if(hwndColorBtn == hwndPoint)
							::ReleaseCapture();
						else
							bInCtrlArea = TRUE;

					}
					if(iCurrentActiveRect != iActiveRect)
					{
						///清除原焦點
						CRect ActiveRect;
						ActiveRect.left = iActiveRect%19*10;
						ActiveRect.top = iActiveRect/19*10;
						ActiveRect.right = ActiveRect.left + 10;
						ActiveRect.bottom = ActiveRect.top + 10;
						::InvalidateRect(hWnd,&ActiveRect,TRUE);
						///新焦點
						if(iCurrentActiveRect != -1)
						{
							crtColor = crtTMPColor;
							ActiveRect.left = iCurrentActiveRect%19*10;
							ActiveRect.top = iCurrentActiveRect/19*10;
							ActiveRect.right = ActiveRect.left + 10;
							ActiveRect.bottom = ActiveRect.top + 10;
							::InvalidateRect(hWnd,&ActiveRect,TRUE);
						}
						::InvalidateRect(hWnd,&redrawRect,TRUE);
						iActiveRect = iCurrentActiveRect;
					}
				}
			}
		}
		if(bInCtrlArea)
			::PostMessage(hwndParent,WM_SETCURSOR,NULL,MAKELPARAM(1,0));
		else
			::PostMessage(hwndParent,WM_SETCURSOR,NULL,NULL);
		}
		break;
	case WM_ACTIVATE:
		if(LOWORD(wParam) != WA_INACTIVE)
			break;
	case WM_LBUTTONUP:
		point.x = LPARAM_X(lParam);
		point.y = LPARAM_Y(lParam);
		if(bMouseMoved || ( point.x == oldPoint.x && point.y == oldPoint.y ))
			::PostMessage(hwndParent,WM_LBUTTONUP,(UINT)crtColor,lParam);
		break;
	case WM_LBUTTONDOWN:
		oldPoint.x = LPARAM_X(lParam);
		oldPoint.y = LPARAM_Y(lParam);
		bMouseMoved = FALSE;
		::InvalidateRect(hWnd,&crtColorRect,TRUE);
		break;
	case WM_ERASEBKGND:
		{
		hDC = (HDC)wParam;
		HPEN oldPen = (HPEN)::SelectObject(hDC,_penB);
		for(int i=0;i<18;i++)
		{
			::MoveToEx(hDC,9+i*10,0,NULL);
			::LineTo(hDC,9+i*10,120);
		}
		for(i=0;i<12;i++)
		{
			::MoveToEx(hDC,0,9+i*10,NULL);
			::LineTo(hDC,190,9+i*10);
		}
		CRect btmRect(0,120,191,150);
		::FillRect(hDC,btmRect,(HBRUSH)::GetStockObject(LTGRAY_BRUSH));
		::Rectangle(hDC,crtColorRect.left-1,crtColorRect.top-1,crtColorRect.right + 1,crtColorRect.bottom + 1);
		::SelectObject(hDC,oldPen);
		}
		break;
	case WM_PAINT:
		{
		hDC = ::BeginPaint(hWnd,&ps);
		CDC dc;
		dc.Attach(hDC);
		CRect	rect;
		int x1,y1,i,j,k;
		UCHAR R=255,G=255,B=255;
		for(i=0;i<12;i++)
		{
			y1 = i*10;
			rect.SetRect(0,y1,9,y1+9);
			if(i == 10)
				R=G=B=0x17;
			dc.FillSolidRect(rect,RGB(R,G,B));
			R -= 0x17;
			G -= 0x17;
			B -= 0x17;
		}
		R = G = B = 0;
		for(k = 0;k < 2;k++)
		for(j = 0;j < 18;j++)
		for(i = 0;i < 6;i++)
		{
			x1 = 10+j*10;
			y1 = k*60+i*10;
			rect.SetRect(x1,y1,x1+9,y1+9);
			dc.FillSolidRect(rect,RGB(R,G,B));
			if(B == 0xff)
			{
				B = 0x00;
				if(G == 0xff)
				{
					G = 0x00;
					R += 0x33;
				}
				else
					G += 0x33;
			}
			else
				B += 0x33;
		}
		if(iActiveRect != -1)
		{
			CRect ActiveRect;
			ActiveRect.left = iActiveRect%19*10;
			ActiveRect.top = iActiveRect/19*10;
			ActiveRect.right = ActiveRect.left + 10;
			ActiveRect.bottom = ActiveRect.top + 10;
			dc.DrawFocusRect(ActiveRect);
		}
		rect.SetRect(0,y1+130,60,y1+140);
		dc.FillSolidRect(crtColorRect,crtColor);
		char strColor[8]="#";
		sprintf(strColor+1,"%02X%02X%02X",GetRValue(crtColor),GetGValue(crtColor),GetBValue(crtColor));
		HFONT hOldFont = (HFONT)dc.SelectObject(hFont);
		dc.SetBkMode(TRANSPARENT);
		dc.TextOut(80,127,strColor,7);
		dc.SelectObject(hOldFont);
		dc.Detach();
		::EndPaint(hWnd,&ps);
		}
		break;
	default:
		return(::DefWindowProc(hWnd,nMsg,wParam,lParam));
	}
	return NULL;
}

BOOL CColorPicker::CreatePaletteWindow()
{
	if(!m_bPaletteWndActive)
	{
		// 創建調色板子窗口
		WNDCLASS wndcls;
		wndcls.style = CS_HREDRAW | CS_VREDRAW;
		wndcls.lpfnWndProc = PaletteWndProc;
		wndcls.cbClsExtra = wndcls.cbWndExtra = 0;
		wndcls.hInstance = ::AfxGetInstanceHandle();
		wndcls.hIcon = NULL;
		wndcls.hCursor = NULL;
		wndcls.hbrBackground = (HBRUSH)::GetStockObject(WHITE_BRUSH);
		wndcls.lpszMenuName = NULL;
		wndcls.lpszClassName = "ColorPalette";
		if (!::RegisterClass(&wndcls))
			AfxThrowResourceException();
		HDC hDC = ::GetDC(m_hWnd);
		int scrWidth = ::GetDeviceCaps(hDC,HORZRES);
		int scrHeight = ::GetDeviceCaps(hDC,VERTRES);
		::ReleaseDC(m_hWnd,hDC);
		CRect		rect;
		GetWindowRect(rect);
		rect.top = rect.bottom - 1;
		if(rect.left > scrWidth-191)
			rect.left = scrWidth-191;
		else if(rect.left < 0)
			rect.left = 0;
		if(rect.top > scrHeight-150)
			rect.top = rect.top-150;
		rect.bottom = rect.top + 150;
		rect.right = rect.left + 191;

		if(!(m_hPaletteWnd = ::CreateWindowEx(WS_EX_TOPMOST,"ColorPalette","Palatte",WS_POPUP|WS_BORDER|WS_VISIBLE,rect.left,rect.top,rect.Width(),rect.Height(),m_hWnd,NULL,wndcls.hInstance,NULL)))
			return FALSE;
	}
	::PostMessage(m_hPaletteWnd,WM_SETCOLOR,(WPARAM)m_CurrentColor,NULL);
	::ShowWindow(m_hPaletteWnd,SW_SHOW);
	::SetCapture(m_hPaletteWnd);
	m_bPaletteWndActive = TRUE;
	return TRUE;
}

void CColorPicker::DestroyPaletteWindow()
{
	::DestroyWindow(m_hPaletteWnd);
	::UnregisterClass("ColorPalette",::AfxGetInstanceHandle());
	m_bPaletteWndActive = FALSE;
	m_hPaletteWnd = NULL;
}

BOOL CColorPicker::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) 
{
	if(m_bPaletteWndActive && m_hCursorStraw && nHitTest != 1)
		::SetCursor(m_hCursorStraw);
	else
		::SetCursor(AfxGetApp()->LoadStandardCursor(IDC_ARROW));
	return TRUE;
}

void CColorPicker::GetColor(CString& strColor)
{
	char cColor[8]="#";
	sprintf(cColor+1,"%02X%02X%02X",GetRValue(m_CurrentColor),GetGValue(m_CurrentColor),GetBValue(m_CurrentColor));
	strColor = cColor;
}

COLORREF CColorPicker::GetColor()
{
	return m_CurrentColor;
}

LRESULT CColorPicker::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam) 
{
	if(message == WM_COLORDLG)
	{
		DestroyPaletteWindow();
		CColorDialog dlg;
		dlg.m_cc.Flags |= CC_FULLOPEN;
		if(dlg.DoModal() == IDOK)
			SetColor(dlg.GetColor());
		return TRUE;
	}
	else
		return CButton::DefWindowProc(message, wParam, lParam);
}

void CColorPicker::SetBuddy(HWND hWnd)
{
	m_hwndBuddy = hWnd;
}

void CColorPicker::SetColor(COLORREF ref)
{
	m_CurrentColor = ref;
	::PostMessage(GetParent()->m_hWnd,WM_COMMAND,MAKELPARAM(::GetWindowLong(m_hWnd,GWL_ID),BN_CLICKED),(LPARAM)m_hWnd);
	if(m_hwndBuddy)
	{
		CString strColor;
		GetColor(strColor);
		::SetWindowText(m_hwndBuddy,strColor);
	}
	Invalidate();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品一区二区三区影院| 蜜桃视频第一区免费观看| 亚洲色图一区二区| 亚洲女与黑人做爰| 亚洲综合在线电影| 亚洲成人福利片| 免费成人结看片| 精彩视频一区二区| 国产v日产∨综合v精品视频| 成人网男人的天堂| 欧美综合亚洲图片综合区| 7777精品伊人久久久大香线蕉 | 蜜桃精品视频在线观看| 久久成人av少妇免费| 福利视频网站一区二区三区| 91在线你懂得| 欧美日韩色综合| 精品久久久久一区| 国产精品区一区二区三区| 日韩美女啊v在线免费观看| 夜夜操天天操亚洲| 激情五月激情综合网| 99国产精品99久久久久久| 欧美三级韩国三级日本三斤| 欧美xxxxx牲另类人与| 中文字幕制服丝袜成人av | 欧美视频完全免费看| 欧美一级高清片在线观看| 国产精品人妖ts系列视频| 亚洲成av人片一区二区三区| 国产一区 二区 三区一级| 99国产精品久| 精品久久国产字幕高潮| 亚洲天堂成人在线观看| 裸体在线国模精品偷拍| 92精品国产成人观看免费 | 亚洲国产日韩一区二区| 国产最新精品精品你懂的| 91年精品国产| 久久人人97超碰com| 一区二区三区加勒比av| 国产一区二区三区精品视频| 在线日韩av片| 中文字幕av不卡| 免费看黄色91| 欧美伊人久久大香线蕉综合69 | 精品一区二区三区欧美| 欧美巨大另类极品videosbest| 国产欧美一区二区精品性色超碰| 亚洲va国产va欧美va观看| 成人99免费视频| 欧美videos大乳护士334| 综合精品久久久| 国产乱淫av一区二区三区| 欧美男人的天堂一二区| 亚洲欧美在线高清| 日日欢夜夜爽一区| 99久久亚洲一区二区三区青草| 欧美mv日韩mv国产网站app| 亚洲免费在线视频| 韩国欧美国产1区| 欧美日韩三级一区| 亚洲美女视频一区| 成人av综合一区| 久久久国产精华| 久久99精品久久久久| 欧美日韩激情在线| 一区二区三区四区亚洲| 成人听书哪个软件好| 国产亚洲综合在线| 久久99精品视频| 日韩视频在线永久播放| 亚州成人在线电影| 欧美系列在线观看| 亚洲综合成人在线视频| 91麻豆精品视频| 国产精品不卡在线| av激情成人网| 成人免费小视频| jlzzjlzz国产精品久久| 国产精品狼人久久影院观看方式| 国产乱码精品一区二区三区忘忧草 | 4438x亚洲最大成人网| 亚洲va韩国va欧美va精品| 欧美少妇xxx| 午夜精品久久久久久不卡8050| 色丁香久综合在线久综合在线观看| 亚洲丝袜另类动漫二区| 91影视在线播放| 亚洲综合一区二区三区| 欧洲亚洲精品在线| 亚洲h在线观看| 91精品蜜臀在线一区尤物| 日韩电影在线观看电影| 91麻豆精品国产综合久久久久久| 免费在线看成人av| 日韩欧美中文字幕制服| 精品一区二区日韩| 久久久久久亚洲综合影院红桃 | 91精品国产综合久久婷婷香蕉| 日韩国产欧美在线视频| 日韩亚洲欧美在线观看| 韩国av一区二区三区四区| 久久精品欧美一区二区三区不卡| 国产成都精品91一区二区三| 亚洲国产精品精华液2区45| 99这里只有精品| 一级女性全黄久久生活片免费| 欧美日韩免费电影| 蜜桃久久精品一区二区| 久久老女人爱爱| 91污在线观看| 日韩和欧美一区二区| 精品日韩在线一区| 国产乱一区二区| 亚洲视频资源在线| 欧美丰满少妇xxxbbb| 国产一区二区三区四 | 亚洲福利一二三区| 欧美mv日韩mv亚洲| 成人国产精品免费| 亚洲国产一区二区三区| 日韩欧美一二区| av亚洲精华国产精华精华| 午夜欧美电影在线观看| 久久精品视频免费| 欧美三级韩国三级日本一级| 久久99久久精品欧美| 国产精品美女久久久久av爽李琼| 色狠狠av一区二区三区| 理论片日本一区| ...av二区三区久久精品| 91女厕偷拍女厕偷拍高清| 日日夜夜免费精品| 久久综合久久综合久久| av亚洲精华国产精华精华| 亚洲精品日韩专区silk| 日韩精品中文字幕在线不卡尤物| av不卡在线播放| 免费国产亚洲视频| 亚洲青青青在线视频| 欧美大片免费久久精品三p | 国产欧美一区二区三区在线老狼| 色婷婷综合久久久久中文一区二区| 蜜桃av噜噜一区二区三区小说| 中文字幕乱码亚洲精品一区| 欧美亚洲自拍偷拍| 国产精品一级在线| 无码av中文一区二区三区桃花岛| 国产婷婷色一区二区三区四区| 在线亚洲一区二区| 国产成人一级电影| 日本中文字幕一区二区有限公司| 1区2区3区欧美| 久久综合九色综合97_久久久| 欧美视频精品在线| 成年人国产精品| 久久99精品国产.久久久久| 亚洲精品乱码久久久久久久久| 久久久影院官网| 欧美一区二区三区四区视频| 成人18精品视频| 国产精品资源在线观看| 日本亚洲免费观看| 一区二区三区不卡在线观看| 中文字幕乱码日本亚洲一区二区| 日韩女优视频免费观看| 欧美色网站导航| 99久久精品国产毛片| 国产精品资源在线观看| 美女脱光内衣内裤视频久久网站| 亚洲精品v日韩精品| 国产日韩欧美精品综合| 91精品国产色综合久久ai换脸| 一本一本大道香蕉久在线精品 | 国产成人在线视频网址| 久久电影国产免费久久电影| 午夜精品视频一区| 亚洲黄色av一区| 亚洲色图另类专区| 国产精品高清亚洲| 国产精品女上位| 国产色产综合色产在线视频| 久久久噜噜噜久久中文字幕色伊伊| 欧美不卡一区二区三区四区| 日韩亚洲国产中文字幕欧美| 日韩午夜激情av| 久久看人人爽人人| 中文字幕欧美三区| 中文字幕佐山爱一区二区免费| 亚洲精品乱码久久久久久久久 | 欧美一区欧美二区| 欧美v日韩v国产v| 国产欧美日韩三区| 自拍偷自拍亚洲精品播放| 亚洲欧美日韩国产成人精品影院| 亚洲乱码日产精品bd| 天天操天天干天天综合网| 免费成人美女在线观看.| 国产精品亚洲午夜一区二区三区 |