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

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

?? gridurlcell.cpp

?? 是一個(gè)GridTree的控件
?? CPP
字號(hào):
// GridURLCell.cpp: implementation of the CGridURLCell class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "..\Include\GridURLCell.h"
#include "..\Include\GridCtrl.h"

IMPLEMENT_DYNCREATE(CGridURLCell, CGridCell)

#ifndef _WIN32_WCE
HCURSOR CGridURLCell::g_hLinkCursor = NULL;
#endif

// Possible prefixes that indicate a hyperlink
URLStruct CGridURLCell::g_szURIprefixes[] = { 
    { _T("www."),    _tcslen(_T("www."))    },
    { _T("http:"),   _tcslen(_T("http:"))   },
    { _T("mailto:"), _tcslen(_T("mailto:")) },
    { _T("ftp:"),    _tcslen(_T("ftp:"))    },
    { _T("https:"),  _tcslen(_T("https:"))  },
    { _T("news:"),   _tcslen(_T("news:"))   },
    { _T("gopher:"), _tcslen(_T("gopher:")) },
    { _T("telnet:"), _tcslen(_T("telnet:")) },
    { _T("url:"),    _tcslen(_T("url:"))    },
    { _T("file:"),   _tcslen(_T("file:"))   },
    { _T("ftp."),    _tcslen(_T("ftp."))    }
};

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CGridURLCell::CGridURLCell()
{
#ifndef _WIN32_WCE
    g_hLinkCursor = GetHandCursor();
#endif
	m_bLaunchUrl = TRUE;
	m_clrUrl = GetSysColor(COLOR_HIGHLIGHT);
}

CGridURLCell::~CGridURLCell()
{
}

BOOL CGridURLCell::Draw(CDC* pDC, int nRow, int nCol, CRect rect, BOOL bEraseBkgnd)
{
	// If url is present then change text color
	if (HasUrl(GetText()))
		SetTextClr(m_clrUrl);

    // Good a place as any to store the bounds of the rect
    m_Rect = rect;

    return CGridCell::Draw(pDC, nRow, nCol, rect, bEraseBkgnd);
}

#pragma warning(disable:4100)
BOOL CGridURLCell::Edit(int nRow, int nCol, CRect rect, CPoint point, UINT nID, UINT nChar)
{
    return FALSE;
}
#pragma warning(default:4100)

void CGridURLCell::OnClick(CPoint PointCellRelative)
{
#ifndef _WIN32_WCE
    CString strURL;
    if (GetAutoLaunchUrl() && OverURL(PointCellRelative, strURL))
		ShellExecute(NULL, _T("open"), strURL, NULL,NULL, SW_SHOW);
#endif
}

// Return TRUE if you set the cursor
BOOL CGridURLCell::OnSetCursor()
{
#ifndef _WIN32_WCE
    CString strURL;
    CPoint pt(GetMessagePos());
    GetGrid()->ScreenToClient(&pt);
    pt = pt - m_Rect.TopLeft();

    if (OverURL(pt, strURL))
    {
        SetCursor(g_hLinkCursor);
		return TRUE;
	}
	else
#endif
		return CGridCell::OnSetCursor();
}

#ifndef _WIN32_WCE
HCURSOR CGridURLCell::GetHandCursor()
{
	if (g_hLinkCursor == NULL)		// No cursor handle - load our own
	{
        // Get the windows directory
		CString strWndDir;
		GetWindowsDirectory(strWndDir.GetBuffer(MAX_PATH), MAX_PATH);
		strWndDir.ReleaseBuffer();

		strWndDir += _T("\\winhlp32.exe");
		// This retrieves cursor #106 from winhlp32.exe, which is a hand pointer
		HMODULE hModule = LoadLibrary(strWndDir);
		if( hModule )
		{
			HCURSOR hHandCursor = ::LoadCursor(hModule, MAKEINTRESOURCE(106));
			if( hHandCursor )
			{
				g_hLinkCursor = CopyCursor(hHandCursor);
			}
		}
		FreeLibrary(hModule);
	}

	return g_hLinkCursor;
}
#endif

////////////////////////////////////////////////////////////////////////////////////////////
// Helper functions

BOOL CGridURLCell::HasUrl(CString str)
{
    int nNumPrefixes = sizeof(g_szURIprefixes) / sizeof(g_szURIprefixes[0]);
    for (int i = 0; i < nNumPrefixes; i++)
        //if (str.Left(g_szURIprefixes[i].nLength) == g_szURIprefixes[i].szURLPrefix)
        if (str.Find(g_szURIprefixes[i].szURLPrefix) >= 0)
            return TRUE;

    return FALSE;
}

// here we figure out if we are over a URL or not
BOOL CGridURLCell::OverURL(CPoint& pt, CString& strURL)
{
    //TRACE2("Checking point %d,%d\n",pt.x,pt.y);

	BOOL bOverURL = FALSE;
	CSize size = GetTextExtent(GetText());

	// Add left of cell so we know if we clicked on text or not
	pt.x += m_Rect.left;
	CPoint center = m_Rect.CenterPoint();

	if ((m_nFormat & DT_RIGHT) && pt.x >= (m_Rect.right - size.cx))
	{
		bOverURL = TRUE;
	}	
	else if ((m_nFormat & DT_CENTER) && 
             ((center.x - (size.cx/2)) <= pt.x) && (pt.x <= (center.x + (size.cx/2))) )
	{
		bOverURL = TRUE;
	}
	else if (pt.x <= (size.cx + m_Rect.left))
	{
		bOverURL = TRUE;
	}

    if (!bOverURL)
        return FALSE;

    // We are over text - but are we over a URL?
	bOverURL = FALSE;
	strURL = GetText();

	// Use float, otherwise we get an incorrect letter from the point
	float width = (float)size.cx/(float)strURL.GetLength();

	// remove left of cell so we have original point again 
	pt.x -= m_Rect.left;
	if (m_nFormat & DT_RIGHT)
	{
		int wide = m_Rect.Width() - size.cx;
		pt.x -= wide;
		if (pt.x <= 0)
			return FALSE;
	}

	if (m_nFormat & DT_CENTER)
	{
		int wide = m_Rect.Width() - size.cx;
		pt.x -= (wide/2);
		if (pt.x <= 0 || pt.x > (size.cx + (wide/2)))
			return FALSE;
	}

	// Turn point into a letter
	int ltrs = (int)((float)pt.x/width);
#if  !defined(_WIN32_WCE) || (_WIN32_WCE > 210)
	// Find spaces before and after letter, process text between
	int endSpace = strURL.Find(_T(' '), ltrs);
	if (endSpace != -1)
		strURL.Delete(endSpace, strURL.GetLength()-endSpace);

	int beginSpace = strURL.ReverseFind(_T(' '));
	if (beginSpace != -1)
		strURL.Delete(0, ++beginSpace);
#endif

	// Does text have url
	return HasUrl(strURL);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区影院| 视频在线观看91| 亚洲激情六月丁香| 国产.欧美.日韩| 91视频一区二区| 欧美日韩国产高清一区二区三区| 欧洲日韩一区二区三区| 日韩成人av影视| 亚洲成人tv网| 国产一区美女在线| 色偷偷88欧美精品久久久| 91麻豆精品国产91| 欧美国产国产综合| 偷拍日韩校园综合在线| 国产精品一线二线三线精华| 色天天综合色天天久久| 欧美一区二区美女| 亚洲图片你懂的| 老汉av免费一区二区三区| 99久久精品国产一区二区三区| 欧美剧情片在线观看| 国产欧美日韩亚州综合| 亚洲va欧美va天堂v国产综合| 国产乱一区二区| 欧美日韩久久一区| 中文字幕在线一区二区三区| 欧美aaaaa成人免费观看视频| 99久久国产免费看| www国产亚洲精品久久麻豆| 尤物av一区二区| 国产成人精品免费视频网站| 欧美日本视频在线| 亚洲欧美日韩久久| 国产精品一区在线| 91精品国产全国免费观看 | 日韩国产高清影视| 91视频你懂的| 国产日韩在线不卡| 蜜桃精品视频在线| 欧美三级在线看| 中文字幕亚洲成人| 国产久卡久卡久卡久卡视频精品| 欧美精品色综合| 亚洲精品日韩一| 成人免费视频一区二区| 欧美不卡一区二区| 日韩av电影免费观看高清完整版| 色婷婷国产精品| 综合久久给合久久狠狠狠97色| 国产成人av在线影院| 91麻豆精品国产91久久久久久久久| 亚洲精品国产一区二区三区四区在线| 国产黑丝在线一区二区三区| 日韩亚洲欧美在线观看| 日本中文在线一区| 欧美性视频一区二区三区| 国产精品国产自产拍高清av王其| 国产一区二区三区电影在线观看| 日韩一级视频免费观看在线| 亚洲图片欧美综合| 一本大道久久a久久精品综合 | 99国产一区二区三精品乱码| 国产日本亚洲高清| 极品销魂美女一区二区三区| 日韩欧美视频在线| 日韩高清在线一区| 91精品国产色综合久久| 日本女优在线视频一区二区| 4438x亚洲最大成人网| 亚洲成人免费视| 欧美优质美女网站| 亚洲一本大道在线| 欧洲国内综合视频| 亚洲午夜日本在线观看| 欧美主播一区二区三区美女| 亚洲欧美日韩小说| 欧美唯美清纯偷拍| 亚洲成人在线免费| 欧美一区二区美女| 精品一区二区日韩| 久久毛片高清国产| 国产91丝袜在线18| 17c精品麻豆一区二区免费| 9i在线看片成人免费| 亚洲欧美欧美一区二区三区| 91浏览器入口在线观看| 一区二区三区不卡视频在线观看| 在线视频欧美精品| 天天影视网天天综合色在线播放| 91精品一区二区三区久久久久久| 毛片不卡一区二区| 久久久久久久av麻豆果冻| 懂色中文一区二区在线播放| 中文字幕在线观看不卡| 欧美亚洲尤物久久| 免费成人你懂的| 国产欧美在线观看一区| 99re66热这里只有精品3直播 | 在线观看三级视频欧美| 香蕉久久夜色精品国产使用方法| 欧美高清视频不卡网| 国内精品写真在线观看| 中文av一区特黄| 欧美午夜精品久久久久久超碰| 美女网站色91| 国产精品色哟哟| 欧美三级电影网站| 男女激情视频一区| 中文字幕的久久| 欧美日韩精品欧美日韩精品一| 久久99久久精品欧美| 国产午夜久久久久| 在线免费视频一区二区| 捆绑紧缚一区二区三区视频| 国产精品久久久久久久第一福利| 欧美视频一区二区| 久久精品国产一区二区三区免费看 | 中文一区二区完整视频在线观看 | 亚欧色一区w666天堂| 久久午夜老司机| 精品视频全国免费看| 国产久卡久卡久卡久卡视频精品| 一区二区三区在线观看网站| 日韩精品中文字幕一区二区三区 | 亚洲一区二区高清| 国产亚洲一本大道中文在线| 在线精品视频免费播放| 国内精品免费**视频| 一区二区三区美女视频| 久久精品免视看| 欧美日韩激情一区二区三区| 国产成人av资源| 美女一区二区久久| 夜夜操天天操亚洲| 国产精品丝袜91| 日韩视频一区二区在线观看| 色94色欧美sute亚洲13| 国产一区二区中文字幕| 午夜视频在线观看一区二区 | 91久久国产综合久久| 国产在线日韩欧美| 奇米四色…亚洲| 亚洲一区二区三区视频在线 | 99视频有精品| 久久91精品国产91久久小草| 一区二区三区高清不卡| 国产欧美精品日韩区二区麻豆天美| 欧美精三区欧美精三区| 99久久国产免费看| 成人综合婷婷国产精品久久蜜臀| 美女免费视频一区| 午夜影院在线观看欧美| 国产精品白丝在线| 国产欧美日韩在线| 久久女同互慰一区二区三区| 91精品国产91综合久久蜜臀| 欧美影院精品一区| 91官网在线免费观看| 99精品国产91久久久久久| 国产ts人妖一区二区| 精品一区二区免费视频| 免费观看久久久4p| 天堂在线一区二区| 夜夜嗨av一区二区三区网页| 亚洲欧美另类久久久精品| 国产精品乱码妇女bbbb| 久久精品日产第一区二区三区高清版| 91精品国产综合久久福利| 欧美日韩亚洲国产综合| 91麻豆swag| 91美女在线看| 91丨九色丨蝌蚪富婆spa| 国产成+人+日韩+欧美+亚洲| 国产一区二区三区在线观看精品| 男男视频亚洲欧美| 狂野欧美性猛交blacked| 奇米影视一区二区三区小说| 日韩成人午夜电影| 日韩成人午夜精品| 美洲天堂一区二卡三卡四卡视频| 日韩精品一级二级| 日本不卡一区二区三区高清视频| 天堂久久久久va久久久久| 五月综合激情婷婷六月色窝| 亚洲国产成人porn| 三级影片在线观看欧美日韩一区二区 | 精品久久五月天| 精品久久久久久综合日本欧美| 日韩免费一区二区三区在线播放| 欧美xxxxxxxx| 精品动漫一区二区三区在线观看| 精品欧美一区二区久久| 国产欧美视频一区二区三区| 国产精品人成在线观看免费| 中文字幕一区二区三区色视频| 国产精品久久久久久久久图文区| 中文字幕在线不卡一区 | 欧美视频第二页| 在线电影院国产精品| 日韩免费视频一区|