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

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

?? gridurlcell.cpp

?? freescale atk source code
?? CPP
字號:
// GridURLCell.cpp: implementation of the CGridURLCell class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "GridURLCell.h"
#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);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色婷婷综合五月| 久久er99精品| 亚洲永久免费视频| 亚洲国产一二三| 久草在线在线精品观看| av亚洲精华国产精华精华| 色视频成人在线观看免| 亚洲乱码一区二区三区在线观看| 一个色在线综合| 国产高清成人在线| 日韩色视频在线观看| 亚洲欧洲国产日韩| 免费成人美女在线观看| 色美美综合视频| 国产亚洲女人久久久久毛片| 亚洲国产另类精品专区| 777xxx欧美| 亚洲色图19p| 成人小视频免费在线观看| 欧美巨大另类极品videosbest| 久久久亚洲精品石原莉奈| 一卡二卡三卡日韩欧美| 欧美丰满美乳xxx高潮www| 国产一区二区在线看| 在线观看91精品国产麻豆| 久草在线在线精品观看| 亚洲日本在线a| 7777精品伊人久久久大香线蕉超级流畅| 久久精品久久综合| 亚洲色欲色欲www在线观看| 欧美一区午夜精品| 男人的j进女人的j一区| 国产欧美精品在线观看| 国产精品99久久久久| 久久综合成人精品亚洲另类欧美| 免费成人av在线| 最新久久zyz资源站| 91精品国产欧美一区二区18 | 欧美视频精品在线观看| 亚洲精品日产精品乱码不卡| 欧美一二三区在线| 91老司机福利 在线| 亚洲免费电影在线| 在线视频一区二区免费| 亚洲国产欧美日韩另类综合| 久久网站最新地址| 8x8x8国产精品| 色综合av在线| 成人视屏免费看| 蜜臀av一区二区在线观看| 欧美xxxxx裸体时装秀| 久久国产三级精品| 亚洲一区二区三区精品在线| 久久久国产午夜精品| 日韩亚洲国产中文字幕欧美| 91久久精品国产91性色tv| 国产成人精品免费在线| 精品一区二区久久| 青青青伊人色综合久久| 亚洲综合一区二区三区| 亚洲免费在线电影| 中文字幕中文字幕一区二区| 99re成人精品视频| 婷婷综合另类小说色区| 欧美另类高清zo欧美| 91国产免费看| 91香蕉视频污在线| 91免费精品国自产拍在线不卡| 国产精品一二三四| 蜜臀99久久精品久久久久久软件| 亚洲第一二三四区| 久久久久国产精品麻豆| 日韩欧美一二区| 99久久亚洲一区二区三区青草| 国产一区二区三区免费看| 久久av老司机精品网站导航| 日本午夜精品一区二区三区电影| 国产日韩av一区| 久久久www成人免费毛片麻豆| 欧美成人vps| 久久网站热最新地址| 久久久久久久综合狠狠综合| 欧美精品一区二区三区在线| 色噜噜偷拍精品综合在线| 91美女在线视频| 欧美视频精品在线观看| 91精品国产综合久久久久久漫画| 欧美日韩精品一区视频| av在线这里只有精品| 99久久精品国产麻豆演员表| av中文字幕一区| 欧美四级电影网| 在线综合视频播放| 91精品国产综合久久久久| 欧美哺乳videos| 国产精品久久久久影院| 一区二区三区中文在线观看| 视频一区二区欧美| 亚洲欧美日韩国产一区二区三区| 亚洲黄色免费电影| 无吗不卡中文字幕| 韩国v欧美v日本v亚洲v| 亚洲mv在线观看| 久久精品99国产国产精| 成人免费视频一区二区| 一本一本大道香蕉久在线精品 | 日韩黄色免费网站| 国产一区二区三区四| www.亚洲色图| 欧美片在线播放| 久久综合国产精品| 亚洲综合色噜噜狠狠| 久久国产精品99久久人人澡| 成人黄色a**站在线观看| 国产成人午夜99999| 日本久久一区二区| 精品福利在线导航| 亚洲精品国产品国语在线app| 日韩成人午夜电影| 成人午夜激情在线| 制服丝袜中文字幕一区| 国产欧美一区二区三区沐欲| 亚洲午夜精品网| 国产精品一区一区| 欧美伦理影视网| 国产精品视频一二三| 亚洲国产精品国自产拍av| 亚洲国产精品99久久久久久久久| 亚洲国产精品久久人人爱| 国产在线一区二区综合免费视频| 色综合天天天天做夜夜夜夜做| 欧美成人精品二区三区99精品| 亚洲欧美福利一区二区| 精品综合久久久久久8888| 色综合天天性综合| 99久久综合狠狠综合久久| 777欧美精品| 亚洲另类在线一区| 国产成人综合自拍| 在线综合+亚洲+欧美中文字幕| 亚洲欧洲国产日本综合| 国产一区日韩二区欧美三区| 欧美伊人久久久久久久久影院| 欧美国产视频在线| 美女视频黄a大片欧美| 欧美性猛交xxxxxxxx| 国产精品久久久久毛片软件| 国产自产v一区二区三区c| 7777精品久久久大香线蕉| 亚洲美女区一区| 972aa.com艺术欧美| 亚洲国产精品t66y| 国产成人精品aa毛片| 久久蜜桃av一区二区天堂| 麻豆精品视频在线观看| 6080午夜不卡| 亚洲h动漫在线| 欧美午夜不卡视频| 一区二区三区四区不卡在线 | 韩国女主播成人在线观看| 日韩视频在线你懂得| 日韩高清在线电影| 欧美日本高清视频在线观看| 亚洲国产另类av| 欧美色图12p| 久久蜜桃av一区二区天堂| 国产一区激情在线| 久久综合网色—综合色88| 国产一区二区在线免费观看| 2020国产成人综合网| 国产精品99久久久久| 国产精品美女一区二区| 99精品久久99久久久久| 亚洲欧美激情在线| 在线精品视频一区二区| 亚洲图片自拍偷拍| 91精品国产欧美一区二区成人 | 国产精品资源网| 久久一区二区三区国产精品| 国产精品一二三区在线| 中文成人av在线| 不卡一二三区首页| 亚洲激情中文1区| 欧美午夜不卡在线观看免费| 五月天中文字幕一区二区| 欧美一区二区三区免费| 久久国产精品一区二区| 国产三级三级三级精品8ⅰ区| 成人理论电影网| 亚洲综合清纯丝袜自拍| 欧美麻豆精品久久久久久| 国产呦萝稀缺另类资源| 中文字幕二三区不卡| 色综合天天综合| 日本不卡在线视频| 亚洲精品一区二区三区在线观看| 高清不卡一区二区在线| 精品日产卡一卡二卡麻豆| 国产成人夜色高潮福利影视| 亚洲蜜臀av乱码久久精品|