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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ceasyhyperlink.cpp

?? windows ce imageviewer_customized
?? CPP
字號:
//
// CEasyHyperlink.cpp
//
// --------------------------------------------------------
// A Practical Guide to Script-Driven Software Development
// Author: Qiming Lu                        Date: 6/1/2006
// MSN Messager: luqiming26@hotmail.com
// MSN Blog: http://spaces.msn.com/jemylu
// --------------------------------------------------------

#include "stdafx.h"
#include "stdafx.h"
#include "CEasyHyperlink.h"
#include "shellapi.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

#define STATIC_HYPER_WINDOW_CLASS "STATIC_HYPER"

////////////////////////////////////////////////////////////////////////////
CEasyHyperlink::_autoinitializer::_autoinitializer() : hModule(NULL)
{
	// First, let's register the window class
	WNDCLASS hc;
	hc.style = 0;
	hc.lpfnWndProc = (WNDPROC)CEasyHyperlink::WndProc;
	hc.cbClsExtra = 0;
	hc.cbWndExtra = sizeof(CEasyHyperlink*);
	hc.hInstance = NULL;
	hc.hIcon = NULL;
	hc.hCursor = NULL;
	hc.hbrBackground = NULL;
	hc.lpszMenuName = NULL;
	hc.lpszClassName = STATIC_HYPER_WINDOW_CLASS;
	RegisterClass(&hc);

	// Now, try to find a hand icon...
	CEasyHyperlink::handcursor = ::LoadCursor(NULL, MAKEINTRESOURCE(32649)); //32649 == IDC_HAND
	if (CEasyHyperlink::handcursor == NULL)
	{
		TCHAR szWindowsDir[MAX_PATH];
		GetWindowsDirectory(szWindowsDir ,MAX_PATH);
		strcat(szWindowsDir,"\\winhlp32.exe");
		hModule = LoadLibrary(szWindowsDir);		
		if (hModule) 
			CEasyHyperlink::handcursor = ::LoadCursor(hModule, MAKEINTRESOURCE(106));
	}
}

CEasyHyperlink::_autoinitializer::~_autoinitializer()
{
	if (hModule != NULL)
		FreeLibrary(hModule);
}


CEasyHyperlink::_autoinitializer CEasyHyperlink::__autoinitializer;
HCURSOR CEasyHyperlink::handcursor = NULL;
////////////////////////////////////////////////////////////////////////////
CEasyHyperlink::CEasyHyperlink() : m_hWnd(NULL)
{
}

CEasyHyperlink::~CEasyHyperlink()
{
	if (m_hWnd)
		::DestroyWindow(m_hWnd);
}


void CEasyHyperlink::ScreenToClient(HWND hwnd, RECT& rect) const
{
	POINT pos;
	pos.x = rect.left;
	pos.y = rect.top;		
	::ScreenToClient(hwnd, &pos);
	rect.left = pos.x; 
	rect.top  = pos.y;

	pos.x = rect.right;
	pos.y = rect.bottom;
	::ScreenToClient(hwnd, &pos);
	rect.right  = pos.x;
	rect.bottom = pos.y;
}

bool CEasyHyperlink::create(int resourceid, HWND parent)
{
	HWND old = ::GetDlgItem(parent, resourceid);
	if (old != NULL)
	{ 
		char url[256];
		::GetWindowText(old, url, sizeof(url));

		// GetWindowRect return bounding box in screen coordinates.
		RECT rect;
		::GetWindowRect(old, &rect);

		// calculate them down to client coordinates of the according dialog box...
		ScreenToClient(parent, rect);

		// finally, destroy the old label
		if (create(rect, url, parent))
			::DestroyWindow(old);
	}
	return (m_hWnd != NULL);
}

bool CEasyHyperlink::create(RECT& rect, const char *url, HWND parent)
{
	if (url != NULL)
		m_Url = url;

	m_hWnd = ::CreateWindow( STATIC_HYPER_WINDOW_CLASS, m_Url.c_str(), WS_CHILD | WS_VISIBLE, 
									rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, 
									parent, NULL, NULL, NULL);

	::SetWindowLong( m_hWnd, GWL_USERDATA, (LONG)this);

	return (m_hWnd != NULL);
}

bool CEasyHyperlink::create(int x1, int y1, int x2, int y2, const char *url, HWND parent)
{
	RECT rect; 
	rect.left = x1;
	rect.top = y1;
	rect.right = x2;
	rect.bottom = y2;
	return create(rect, url, parent);
}


int CEasyHyperlink::WndProc(HWND hwnd, WORD wMsg, WPARAM wParam, LPARAM lParam)
{
	CEasyHyperlink *hl = (CEasyHyperlink*)GetWindowLong(hwnd, GWL_USERDATA);

	switch (wMsg)  
	{
	case WM_LBUTTONDOWN:
		if (((UINT)::ShellExecute(NULL, _T("open"), hl->m_Url.c_str(), NULL, NULL, SW_SHOWNORMAL)) <= 32)
			MessageBeep(0);
		break;

	case WM_MOUSEMOVE:
		break;

	case WM_PAINT:
		{
			HDC hDC; PAINTSTRUCT ps;
			hDC = ::BeginPaint(hwnd, &ps);
			if (hl == NULL)
				return 0;

			RECT rect;
			::GetClientRect(hwnd, &rect);

			HFONT font = ::CreateFont( 16, //height
										7, //average char width
										0, //angle of escapement
										0, //base-line orientation angle
										FW_NORMAL,	//font weight
										FALSE,		//italic
										TRUE,		//underline
										FALSE,		//strikeout
										ANSI_CHARSET,			//charset identifier
										OUT_DEFAULT_PRECIS,		//ouput precision
										CLIP_DEFAULT_PRECIS,	//clipping precision
										DEFAULT_QUALITY,	//output quality
										DEFAULT_PITCH,			//pitch and family
										"Arial");
				
			::SelectObject(hDC, font);
			::SetTextColor(hDC, RGB(0,0,200));
			::SetBkMode(hDC, TRANSPARENT);
			::DrawText(hDC, hl->m_Url.c_str(), int(hl->m_Url.length()), &rect, DT_VCENTER | DT_CENTER);
			::DeleteObject(font);

			::EndPaint(hwnd, &ps);
						
			return TRUE;
		}

		case WM_SETCURSOR:
		{
			if (CEasyHyperlink::handcursor)
				::SetCursor(CEasyHyperlink::handcursor);
			break;
		}

		default:
			DefWindowProc(hwnd, wMsg, wParam, lParam);
	}

	return TRUE;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美在线视频你懂得| 成人免费毛片app| 欧美三级资源在线| 亚洲国产视频在线| 日韩三级视频在线看| 久久99热狠狠色一区二区| 久久尤物电影视频在线观看| 国产伦理精品不卡| 亚洲视频精选在线| 91精品国产综合久久久蜜臀图片 | 日韩专区中文字幕一区二区| 欧美精品第1页| 韩国理伦片一区二区三区在线播放| 精品日韩一区二区三区免费视频| 丰满白嫩尤物一区二区| 亚洲精品日韩专区silk| 欧美一区二区视频在线观看2020| 国产精品一线二线三线| 亚洲乱码日产精品bd| 91麻豆精品国产综合久久久久久| 精品午夜一区二区三区在线观看| 中文字幕在线不卡一区二区三区 | 成人午夜看片网址| 亚洲一区二区三区四区五区黄| 欧美一级片免费看| aa级大片欧美| 久久99精品国产麻豆不卡| 亚洲人亚洲人成电影网站色| 91超碰这里只有精品国产| 成人午夜精品一区二区三区| 日韩精品1区2区3区| 国产精品美女久久久久高潮| 91精品欧美综合在线观看最新| 盗摄精品av一区二区三区| 亚洲午夜在线观看视频在线| 国产亚洲成aⅴ人片在线观看| 欧美亚洲综合另类| 成人丝袜视频网| 日韩精品亚洲一区| 亚洲猫色日本管| 久久精品男人的天堂| 欧美日韩精品高清| 91在线视频观看| 国产激情精品久久久第一区二区| 天天综合色天天综合色h| 国产精品久久久久7777按摩 | 国产午夜亚洲精品理论片色戒| 在线观看国产一区二区| 国产成人在线免费| 美国十次综合导航| 丝袜诱惑制服诱惑色一区在线观看| 亚洲精品成a人| 久久九九久精品国产免费直播| 51精品秘密在线观看| 在线亚洲精品福利网址导航| 成人免费视频国产在线观看| 韩国v欧美v亚洲v日本v| 日本成人中文字幕| 丝袜国产日韩另类美女| 亚洲一区二区三区四区在线免费观看 | 精品国产乱码久久久久久浪潮| 欧美群妇大交群中文字幕| 色婷婷综合久久久久中文一区二区| 国产成人精品1024| 精品在线你懂的| 男男gaygay亚洲| 美女在线观看视频一区二区| 日韩成人午夜电影| 婷婷丁香激情综合| 日韩和欧美一区二区| 日韩精品色哟哟| 日韩电影免费在线看| 天天操天天干天天综合网| 亚洲午夜精品久久久久久久久| 亚洲主播在线观看| 五月天一区二区| 日本中文字幕不卡| 麻豆传媒一区二区三区| 黄页网站大全一区二区| 国产一区二区在线看| 国产美女视频一区| www.久久精品| 色猫猫国产区一区二在线视频| 色狠狠色狠狠综合| 欧美日韩黄视频| 日韩欧美在线一区二区三区| 欧美tickle裸体挠脚心vk| 久久精品人人做人人综合| 日本一区二区久久| 亚洲黄色尤物视频| 日韩有码一区二区三区| 毛片不卡一区二区| 成人免费视频免费观看| 在线亚洲一区观看| 91精品国产一区二区三区香蕉| 日韩免费观看高清完整版在线观看| 亚洲精品一区二区三区影院 | 欧美在线免费观看亚洲| 欧美二区三区91| 久久久99免费| 亚洲尤物在线视频观看| 奇米影视一区二区三区| 国产成+人+日韩+欧美+亚洲| 在线观看亚洲a| 欧美成人性福生活免费看| 中文字幕一区二区三区四区| 亚洲大片一区二区三区| 国产一区二区三区视频在线播放| av一区二区不卡| 日韩一级片网址| 亚洲欧美区自拍先锋| 看片网站欧美日韩| 99久久er热在这里只有精品15| 欧美精品乱人伦久久久久久| 久久久久久久久久久久电影| 亚洲精品美腿丝袜| 久久 天天综合| 日韩一区二区在线观看视频播放| 久久久噜噜噜久噜久久综合| 一区二区三区欧美视频| 精品一区在线看| 在线观看91精品国产入口| 久久精品人人做人人综合 | 99久久精品免费观看| 欧美一区二区三区视频免费| 国产精品麻豆视频| 久久66热re国产| 欧美美女喷水视频| 国产精品成人在线观看 | 成人毛片视频在线观看| 91精品麻豆日日躁夜夜躁| 亚洲同性同志一二三专区| 国模无码大尺度一区二区三区| 欧美三级电影在线看| 国产精品视频线看| 国产一区二区免费在线| 91精品国产黑色紧身裤美女| 亚洲婷婷综合色高清在线| 国产麻豆视频精品| 日韩欧美在线网站| 日韩中文字幕av电影| 91日韩在线专区| 欧美韩日一区二区三区| 国产在线精品不卡| 欧美一二三区精品| 日本aⅴ免费视频一区二区三区| 在线观看一区日韩| 亚洲免费视频中文字幕| 99国产精品国产精品毛片| 国产精品美日韩| 从欧美一区二区三区| 久久精品人人做人人爽人人| 美国三级日本三级久久99| 在线不卡中文字幕播放| 亚洲福利视频导航| 欧美日韩激情一区二区| 亚洲成人免费在线观看| 欧美色图片你懂的| 亚洲一区二区三区三| 欧美性猛交xxxx黑人交| 亚洲国产日日夜夜| 欧美性猛交一区二区三区精品| 一区二区三区在线免费播放| 91色.com| 亚洲va欧美va天堂v国产综合| 欧美三级日韩三级国产三级| 亚洲一区二区影院| 欧美日韩中文国产| 日本视频中文字幕一区二区三区| 欧美老女人第四色| 琪琪一区二区三区| 久久久久久久久久久电影| 国产高清无密码一区二区三区| 国产精品无圣光一区二区| a美女胸又www黄视频久久| 亚洲色图在线看| 欧美日韩视频一区二区| 日韩福利视频导航| 日韩亚洲欧美在线| 成人综合激情网| 亚洲黄色av一区| 欧美一区二区三区四区久久| 狠狠色狠狠色综合| 中文字幕av一区 二区| 一本色道久久综合狠狠躁的推荐| 亚洲一区二区视频在线观看| 在线成人av影院| 国产精品综合网| 一二三区精品视频| 欧美一卡2卡3卡4卡| 成人性生交大片免费| 亚洲永久免费av| 日韩美女视频在线| 成人三级伦理片| 亚洲电影激情视频网站| 欧美电影免费观看高清完整版 | 日本中文在线一区| 久久久www成人免费无遮挡大片| 99视频在线精品| 日韩激情一二三区|