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

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

?? ceasyhyperlink.cpp

?? windows ce ImageViewer_ScriptDriven
?? 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;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区三区观看| 欧美日韩在线亚洲一区蜜芽| 国产精品欧美一区喷水| 成人丝袜高跟foot| 亚洲天堂中文字幕| 欧美中文字幕一区| 日韩av中文字幕一区二区三区| 欧美一卡二卡三卡四卡| 久久99国产精品麻豆| 欧美激情综合网| 色噜噜狠狠一区二区三区果冻| 亚洲成人av一区二区三区| 91麻豆精品国产91久久久更新时间 | 中文幕一区二区三区久久蜜桃| 9色porny自拍视频一区二区| 亚洲精品国产无天堂网2021| 欧美日韩成人高清| 国内精品伊人久久久久av影院| 国产农村妇女毛片精品久久麻豆| 99re这里只有精品6| 亚洲成人免费看| 久久久久久久综合狠狠综合| 91视视频在线直接观看在线看网页在线看| 亚洲另类色综合网站| 日韩欧美在线网站| 成人久久视频在线观看| 亚洲小说欧美激情另类| 日韩色在线观看| 97久久超碰国产精品| 日本不卡视频在线| 国产精品毛片久久久久久久| 欧美日韩综合在线免费观看| 黑人精品欧美一区二区蜜桃| 亚洲免费观看高清完整版在线| 91精品国产高清一区二区三区蜜臀| 国产999精品久久久久久绿帽| 亚洲综合色成人| 久久久www成人免费无遮挡大片| 日本韩国一区二区| 国产毛片精品一区| 五月综合激情网| 国产精品天天看| 欧美一区二区三区四区视频| av成人动漫在线观看| 蜜桃传媒麻豆第一区在线观看| 亚洲天堂福利av| 精品成人佐山爱一区二区| 99精品欧美一区二区三区小说 | 一本到高清视频免费精品| 麻豆一区二区三| 亚洲精品成人a在线观看| 久久综合色之久久综合| 欧美三电影在线| 成人免费视频一区二区| 蜜桃久久精品一区二区| 一区二区三区在线免费视频| 国产亚洲视频系列| 欧美一区二区三区视频| 色94色欧美sute亚洲13| 国产成人在线看| 欧美aaaaaa午夜精品| 亚洲激情在线激情| 国产精品毛片a∨一区二区三区| 日韩欧美在线影院| 欧美日韩亚洲高清一区二区| 成人免费观看视频| 国模一区二区三区白浆| 日韩在线一二三区| 亚洲女人小视频在线观看| 国产网站一区二区三区| 欧美一区二区三区播放老司机| 色诱亚洲精品久久久久久| 成人一区二区三区视频| 精品在线观看视频| 日本成人在线视频网站| 亚洲一区二区免费视频| 国产精品久久久99| 久久久五月婷婷| 日韩视频免费观看高清完整版 | 日韩和欧美一区二区三区| 亚洲欧美国产毛片在线| 国产精品三级在线观看| 久久在线免费观看| 欧美一区二区黄| 6080亚洲精品一区二区| 欧美三级乱人伦电影| 日本黄色一区二区| 日本精品一级二级| 99re热视频这里只精品| 丁香五精品蜜臀久久久久99网站| 国产伦精品一区二区三区免费| 奇米影视在线99精品| 日韩高清在线不卡| 午夜精品爽啪视频| 亚洲韩国一区二区三区| 亚洲综合一二区| 一区二区三区不卡视频| 亚洲精品欧美在线| 一区二区三区欧美日韩| 亚洲精品成人悠悠色影视| 亚洲精品高清视频在线观看| 亚洲视频一区二区免费在线观看| 中文字幕一区二区三区在线播放 | 91国产免费看| 色素色在线综合| 欧洲一区二区三区在线| 欧洲精品一区二区三区在线观看| 色婷婷av一区二区三区之一色屋| 在线视频你懂得一区二区三区| 色噜噜久久综合| 欧洲国产伦久久久久久久| 欧美亚一区二区| 欧美精品在线视频| 日韩亚洲电影在线| 久久综合久久鬼色| 日本一区二区三区高清不卡| 欧美激情在线看| 自拍偷拍欧美精品| 艳妇臀荡乳欲伦亚洲一区| 亚洲亚洲人成综合网络| 天天综合色天天| 精品一区二区在线看| 国产精品一二二区| 福利一区二区在线观看| 99精品热视频| 欧美日韩1234| 欧美成人伊人久久综合网| 久久麻豆一区二区| 国产精品盗摄一区二区三区| 亚洲欧美偷拍三级| 天天影视网天天综合色在线播放| 蜜臀久久99精品久久久画质超高清 | 午夜激情一区二区| 久久精品噜噜噜成人88aⅴ| 国产一区二区视频在线播放| 成人晚上爱看视频| 在线观看日韩高清av| 日韩亚洲欧美高清| 日本一区二区久久| 亚洲一二三四在线| 久久成人久久爱| 成人av集中营| 欧美日韩国产bt| 极品少妇一区二区三区精品视频| 天天色天天爱天天射综合| 国产色综合一区| 久久91精品国产91久久小草| 国产精品一二三区在线| 色综合久久久网| 欧美一区二区在线不卡| 国产清纯美女被跳蛋高潮一区二区久久w | 极品美女销魂一区二区三区 | 精品中文字幕一区二区| 成人网男人的天堂| 欧美美女视频在线观看| 久久久久国产一区二区三区四区| 亚洲色图欧美激情| 美国一区二区三区在线播放| av不卡免费电影| 日韩一区二区三区电影在线观看| 国产日韩精品一区二区浪潮av| 99久久久久免费精品国产| 欧美三级视频在线播放| 国产视频视频一区| 婷婷中文字幕综合| 福利一区福利二区| 69久久99精品久久久久婷婷| 国产午夜亚洲精品理论片色戒 | 激情综合色丁香一区二区| 91在线视频网址| 日韩欧美一区二区视频| 成人免费小视频| 麻豆精品新av中文字幕| 91在线云播放| 精品粉嫩aⅴ一区二区三区四区| 亚洲黄色免费电影| 国产成人午夜片在线观看高清观看| 色激情天天射综合网| 欧美精品一区二区高清在线观看| 有码一区二区三区| 国产精品一区在线观看乱码| 欧美日韩一区高清| 国产精品全国免费观看高清| 欧美a级一区二区| 欧亚一区二区三区| 国产精品少妇自拍| 久久99精品视频| 欧美少妇xxx| 国产精品看片你懂得| 麻豆国产欧美一区二区三区| 色天使色偷偷av一区二区 | 久久久久国产精品麻豆ai换脸 | 国产亚洲1区2区3区| 石原莉奈一区二区三区在线观看| bt7086福利一区国产| 2023国产精品视频| 日韩精彩视频在线观看| 色系网站成人免费| 国产日韩欧美精品综合| 日韩二区三区四区|