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

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

?? tlhdragwnd.cpp

?? 一個關于數據結結的
?? CPP
字號:
// TLHDragWnd.cpp : implementation file
//

#include "stdafx.h"
#include "TreeListHeaderCtrl.h"
#include "TreeListTipCtrl.h"
#include "TreeListStaticCtrl.h"
#include "TreeListEditCtrl.h"
#include "TreeListComboCtrl.h"
#include "TreeListCtrl.h"
#include "TreeListDC.h"
#include "TLHDragWnd.h"

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

/////////////////////////////////////////////////////////////////////////////
// CTLHDragWnd
static lpfnUpdateLayeredWindow g_lpfnUpdateLayeredWindow = NULL;
static lpfnSetLayeredWindowAttributes g_lpfnSetLayeredWindowAttributes = NULL;

CTLHDragWnd::CTLHDragWnd() :
	m_pTreeListHeaderCtrl( NULL )
{
	// register the window class
	WNDCLASS wndclass;
	HINSTANCE hInst = AfxGetInstanceHandle();

	if(!(::GetClassInfo(hInst, TLHDRAGWND_CLASSNAME, &wndclass)))
	{
		wndclass.style = CS_HREDRAW | CS_VREDRAW ; //CS_SAVEBITS ;
		wndclass.lpfnWndProc = ::DefWindowProc;
		wndclass.cbClsExtra = wndclass.cbWndExtra = 0;
		wndclass.hInstance = hInst;
		wndclass.hIcon = NULL;
		wndclass.hCursor = LoadCursor( hInst, IDC_ARROW);
		wndclass.hbrBackground = (HBRUSH)(COLOR_3DFACE + 1); 
		wndclass.lpszMenuName = NULL;
		wndclass.lpszClassName = TLHDRAGWND_CLASSNAME;
		if (!AfxRegisterClass(&wndclass))
			AfxThrowResourceException();
	}

	// default color
	m_cr3DFace		= GetSysColor( COLOR_3DFACE );
	m_cr3DLight		= GetSysColor( COLOR_3DHILIGHT );
	m_cr3DShadow	= GetSysColor( COLOR_3DSHADOW );
	m_crText		= GetSysColor( COLOR_BTNTEXT );

	// get layer window
	if( g_lpfnUpdateLayeredWindow == NULL || g_lpfnSetLayeredWindowAttributes == NULL )
	{
		HMODULE hUser32 = GetModuleHandle(_T("USER32.DLL"));

		g_lpfnUpdateLayeredWindow =	(lpfnUpdateLayeredWindow)GetProcAddress( hUser32, _T("UpdateLayeredWindow") );
		g_lpfnSetLayeredWindowAttributes = (lpfnSetLayeredWindowAttributes)GetProcAddress( hUser32, _T("SetLayeredWindowAttributes") );

		if( g_lpfnUpdateLayeredWindow == NULL || g_lpfnSetLayeredWindowAttributes == NULL )
			m_bLayeredWindows = FALSE;
		else
			m_bLayeredWindows = TRUE;
	}
}

CTLHDragWnd::~CTLHDragWnd()
{
}


BEGIN_MESSAGE_MAP(CTLHDragWnd, CWnd)
	//{{AFX_MSG_MAP(CTLHDragWnd)
	ON_WM_ERASEBKGND()
	ON_WM_PAINT()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()


/////////////////////////////////////////////////////////////////////////////
// CTLHDragWnd message handlers
BOOL CTLHDragWnd::Create(CRect rcHeader, CTreeListHeaderCtrl* pTreeListHeaderCtrl, int iCol )
{
	ASSERT_VALID( pTreeListHeaderCtrl );
	
	m_pTreeListHeaderCtrl = pTreeListHeaderCtrl;
	m_iCol = iCol;

	DWORD dwStyle	= WS_POPUP | WS_DISABLED;
	DWORD dwExStyle = WS_EX_TOOLWINDOW | WS_EX_TOPMOST;

	if( m_bLayeredWindows )
		dwExStyle |= WS_EX_LAYERED;

	if( !CreateEx( dwExStyle, TLHDRAGWND_CLASSNAME, NULL, dwStyle, 
		rcHeader.left, rcHeader.top, rcHeader.Width(), rcHeader.Height(), NULL, NULL, NULL ) )
		return FALSE;

	return TRUE;
}

BOOL CTLHDragWnd::OnEraseBkgnd(CDC* pDC) 
{
	return TRUE;
}

void CTLHDragWnd::OnPaint() 
{
	CPaintDC dc(this); // device context for painting

    if( m_pTreeListHeaderCtrl->m_bOffScreenBuffer )
    {
        CTreeListDC MemDC(&dc);
        DrawWnd(&MemDC);
    }
    else
	{
        DrawWnd(&dc);
	}
}

BOOL CTLHDragWnd::DrawWnd( CDC* pDC )
{
	CPtrArray&			Columns = m_pTreeListHeaderCtrl->m_pTreeListCtrl->m_arColumns;
	CArray<int, int>&	Shows	= m_pTreeListHeaderCtrl->m_pTreeListCtrl->m_arShows;
	CArray<int, int>&	Sorts	= m_pTreeListHeaderCtrl->m_pTreeListCtrl->m_arSorts;
	CTreeListColumnInfo* pColumnInfo = (CTreeListColumnInfo*)Columns[m_iCol];

	CImageList&	imgSort		= m_pTreeListHeaderCtrl->m_imgSort;
	CImageList* pImageList	= m_pTreeListHeaderCtrl->m_pImageList ;

	CRect rcClient;
	GetClientRect( rcClient );
	CRect rcHeader;
	rcHeader = rcClient;

	// draw background
	if( !m_bLayeredWindows )
		pDC->FillSolidRect( rcHeader, m_cr3DFace );
	else
		pDC->FillSolidRect( rcHeader, m_cr3DShadow );

	// draw 3d rect;
	if( !m_bLayeredWindows )
		pDC->Draw3dRect( rcHeader, m_cr3DLight, m_cr3DShadow );

	rcHeader.DeflateRect( 2, 0, 3, 0 );
	if( rcHeader.Width() <= 0 )
		return TRUE;

	// draw sort arrow;
	int iSort = m_pTreeListHeaderCtrl->GetSortIndex( m_iCol );
	if( pColumnInfo->m_dwFormat&TLF_CAPTION_SORT && Sorts.GetSize()>0 )
	{
		CRect rcSort;
		rcSort = rcHeader;
		rcSort.left = rcSort.right - TLL_WIDTH/2;

		POINT pt;
		pt.x = rcSort.left;
		pt.y = rcSort.top + ( rcSort.Height() - TLL_HEIGHT )/2;

		pDC->IntersectClipRect( rcHeader );
		pDC->IntersectClipRect( rcSort );

		if( iSort == 0 )
		{
			// first sort column
			ASSERT( pColumnInfo->m_dwFormat&TLF_SORT_MASK );

			if( pColumnInfo->m_dwFormat&TLF_SORT_ASC )
				imgSort.Draw( pDC, TLH_SORT_ASC, pt, ILD_TRANSPARENT );
			else
				imgSort.Draw( pDC, TLH_SORT_DESC, pt, ILD_TRANSPARENT );
		}
		else if( iSort > 0 )
		{
			// other sort column
			ASSERT( pColumnInfo->m_dwFormat&TLF_SORT_MASK );

			if( pColumnInfo->m_dwFormat&TLF_SORT_ASC )
				imgSort.Draw( pDC, TLH_SORT_ASC2, pt, ILD_TRANSPARENT );
			else
				imgSort.Draw( pDC, TLH_SORT_DESC2, pt, ILD_TRANSPARENT );
		}
		else
		{
			// can sort column
			ASSERT( !(pColumnInfo->m_dwFormat&TLF_SORT_MASK) );

			imgSort.Draw( pDC, TLH_SORT_NO, pt, ILD_TRANSPARENT );				
		}

		::ExtSelectClipRgn( pDC->m_hDC, DEFAULT_HRGN, RGN_COPY );

		rcHeader.DeflateRect( 0, 0, TLL_WIDTH/2, 0 );
	}

	if( rcHeader.Width() <= 0 )
		return TRUE;

	// draw image
	if( pColumnInfo->m_dwFormat&TLF_CAPTION_IMAGE && pColumnInfo->m_iImage>=0 )
	{
		pDC->IntersectClipRect( rcHeader );

		CRect rcImage;
		if( pColumnInfo->m_dwFormat&TLF_IMAGEALIGN_LEFT )
		{
			rcImage			= rcHeader;
			rcImage.right	= rcHeader.left + TLL_WIDTH;
			rcHeader.left	= rcHeader.left + TLL_WIDTH;
		}
		else if( pColumnInfo->m_dwFormat&TLF_IMAGEALIGN_RIGHT )
		{
			rcImage = rcHeader;
			rcImage.left	= rcHeader.right - TLL_WIDTH;
			rcHeader.right	= rcHeader.right - TLL_WIDTH;
		}
		else if( pColumnInfo->m_dwFormat&TLF_IMAGEALIGN_CENTER )
		{
			rcImage			= rcHeader;
			rcHeader.left	= rcHeader.right;
		}
		else
		{
			rcImage			= rcHeader;
			rcImage.right	= rcHeader.left + TLL_WIDTH;
			rcHeader.left	= rcHeader.left + TLL_WIDTH;
		}

		POINT pt;
		if( !(pColumnInfo->m_dwFormat&TLF_IMAGEALIGN_CENTER) )
		{
			pt.x = rcImage.left;
			pt.y = rcImage.top + ( rcImage.Height() - TLL_HEIGHT )/2;
		}
		else
		{
			pt.x = rcImage.left + ( rcImage.Width() - TLL_WIDTH )/2;
			pt.y = rcImage.top + ( rcImage.Height() - TLL_HEIGHT )/2;
		}

		pDC->IntersectClipRect( rcImage );
		pImageList->Draw( pDC, pColumnInfo->m_iImage, pt, ILD_TRANSPARENT );
		::ExtSelectClipRgn( pDC->m_hDC, DEFAULT_HRGN, RGN_COPY );
	}

	rcHeader.DeflateRect( 1, 0, 1, 0 );
	if( rcHeader.Width() <= 0 )
		return TRUE;

	// draw text
	if( pColumnInfo->m_dwFormat&TLF_CAPTION_TEXT )
	{
		pDC->IntersectClipRect( rcHeader );

		int nOldMode = pDC->SetBkMode( TRANSPARENT );
		CFont* pOldFont = pDC->SelectObject( m_pTreeListHeaderCtrl->GetHeaderFont() );
		pDC->DrawText( pColumnInfo->m_strCaption, rcHeader, pColumnInfo->GetCaptionFormat() );
		pDC->SelectObject( pOldFont );
		pDC->SetBkMode( nOldMode );

		::ExtSelectClipRgn( pDC->m_hDC, DEFAULT_HRGN, RGN_COPY );
	}		

	return TRUE;
}

BOOL CTLHDragWnd::Show()
{
	SetWindowPos( &wndTop, 0, 0, 0, 0, SWP_NOOWNERZORDER | SWP_SHOWWINDOW | SWP_NOACTIVATE | SWP_NOSIZE | SWP_NOMOVE );

	if( m_bLayeredWindows )
		g_lpfnSetLayeredWindowAttributes( GetSafeHwnd(), 0x000000, 160, ULW_ALPHA );

	return TRUE;
}

BOOL CTLHDragWnd::Hide()
{
	SetWindowPos( &wndTop, 0, 0, 0, 0, SWP_NOOWNERZORDER | SWP_HIDEWINDOW | SWP_NOACTIVATE | SWP_NOSIZE | SWP_NOMOVE );

	return TRUE;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美夫妻性生活| 亚洲成人免费看| 丝袜诱惑亚洲看片| 成人亚洲精品久久久久软件| 欧美日韩成人在线| 国产欧美日韩久久| 精彩视频一区二区三区| 欧美日韩精品欧美日韩精品| 亚洲三级在线免费观看| 国产精品99精品久久免费| 51精品国自产在线| 亚洲一区中文在线| 99re亚洲国产精品| 中文在线一区二区| 国产精品一区二区果冻传媒| 日韩美女在线视频 | 久久精品人人做人人综合 | 欧美中文字幕不卡| 中文字幕av资源一区| 国产精品一区一区| 精品国精品国产尤物美女| 日韩在线a电影| 69堂精品视频| 五月婷婷激情综合| 欧美日韩视频一区二区| 亚洲宅男天堂在线观看无病毒| 99久久99久久免费精品蜜臀| 国产欧美精品一区| 国产91精品入口| 中文字幕欧美国产| 成人av电影在线| 亚洲色图在线播放| 一本到不卡免费一区二区| 综合激情成人伊人| 日本韩国欧美一区| 亚洲成人av电影在线| 精品视频免费在线| 日韩电影一区二区三区四区| 91精品国产综合久久久久| 免费一级片91| 久久蜜臀精品av| 国产成人小视频| 亚洲女人的天堂| 欧美综合色免费| 全国精品久久少妇| 久久婷婷成人综合色| 成人蜜臀av电影| 亚洲国产欧美一区二区三区丁香婷| 欧美日韩综合色| 蜜臀av国产精品久久久久| 精品动漫一区二区三区在线观看| 国产福利一区二区三区视频 | 97se亚洲国产综合自在线观| 一区二区不卡在线视频 午夜欧美不卡在| 一本一道综合狠狠老| 日日夜夜免费精品| 久久先锋资源网| 99精品黄色片免费大全| 亚洲18影院在线观看| 久久久久久久久一| 色94色欧美sute亚洲线路一ni| 日日摸夜夜添夜夜添国产精品| 久久色成人在线| 91国产精品成人| 六月丁香婷婷色狠狠久久| 国产精品美女久久久久高潮| 91麻豆精品国产91久久久使用方法| 国产综合久久久久久久久久久久| 中文字幕一区二区三区视频| 制服丝袜亚洲精品中文字幕| 成人高清视频在线| 五月综合激情婷婷六月色窝| 国产亚洲欧美中文| 欧美久久高跟鞋激| 99国产麻豆精品| 精品一区二区综合| 玉足女爽爽91| 国产三级欧美三级日产三级99 | 99久久久精品免费观看国产蜜| 天堂在线亚洲视频| 亚洲欧洲99久久| 久久久蜜桃精品| 日韩视频免费直播| 在线免费亚洲电影| 成人污污视频在线观看| 久久99久久精品| 偷拍亚洲欧洲综合| 亚洲美女在线国产| 国产人成亚洲第一网站在线播放| 91精品国产入口在线| 欧美私人免费视频| www.亚洲激情.com| 国产大陆a不卡| 久久福利资源站| 日韩有码一区二区三区| 一区二区三区日韩欧美| 欧美国产1区2区| 精品国产露脸精彩对白| 在线综合视频播放| 在线一区二区三区做爰视频网站| 粉嫩av一区二区三区在线播放| 久久精品国产99国产| 男男视频亚洲欧美| 五月天激情综合| 视频在线观看国产精品| 亚洲成人激情av| 亚洲大片精品永久免费| 一区二区欧美精品| 亚洲一区影音先锋| 亚洲综合免费观看高清完整版在线 | 日韩中文字幕91| 亚洲午夜久久久久久久久电影网| 日韩毛片精品高清免费| 成人免费一区二区三区视频| 国产精品视频免费| 国产精品你懂的在线| 国产精品国产三级国产普通话99| 国产亚洲综合色| 国产精品久久久久久福利一牛影视| 中文字幕国产精品一区二区| 国产欧美一区二区精品性色| 中文乱码免费一区二区| 亚洲欧洲日本在线| 亚洲黄色尤物视频| 五月天亚洲精品| 韩国精品主播一区二区在线观看| 国产乱一区二区| 99视频精品全部免费在线| 99视频一区二区三区| 欧美午夜一区二区三区免费大片| 欧美日本不卡视频| 欧美大片日本大片免费观看| 中文字幕精品三区| 一区二区三区四区视频精品免费| 丝袜亚洲另类丝袜在线| 国产在线日韩欧美| av不卡在线播放| 欧美日韩国产首页| 亚洲精品在线一区二区| 国产精品少妇自拍| 亚洲影视在线播放| 国产在线视频精品一区| 91在线视频观看| 777午夜精品免费视频| 久久亚洲精品国产精品紫薇| 亚洲欧美日韩中文播放 | 欧美一二三四区在线| 久久亚洲一区二区三区明星换脸| 亚洲日韩欧美一区二区在线| 天堂一区二区在线免费观看| 国产精品一品视频| 欧美日免费三级在线| 国产区在线观看成人精品| 一卡二卡欧美日韩| 国产精品一区二区你懂的| 欧美少妇一区二区| 久久精品一区二区三区四区| 一级女性全黄久久生活片免费| 狠狠色伊人亚洲综合成人| 欧美亚洲尤物久久| 国产日韩精品一区| 日韩1区2区日韩1区2区| 91在线看国产| 亚洲精品一区二区三区四区高清| 亚洲一区在线观看免费观看电影高清 | 日日欢夜夜爽一区| 99久久免费精品| 26uuu另类欧美| 性久久久久久久久| 91麻豆国产香蕉久久精品| 久久久久久久电影| 免费视频最近日韩| 色综合久久88色综合天天| 久久久久久9999| 免费久久精品视频| 在线观看av不卡| 综合激情成人伊人| 成人深夜在线观看| 精品国产乱子伦一区| 五月婷婷久久综合| 色猫猫国产区一区二在线视频| 欧美韩日一区二区三区| 黄色日韩三级电影| 欧美tickling网站挠脚心| 丝袜国产日韩另类美女| 欧美午夜精品久久久久久超碰 | 国产精品国产三级国产普通话99| 国产米奇在线777精品观看| 91精品国产综合久久久久| 午夜欧美电影在线观看| 欧美日韩电影一区| 亚洲午夜日本在线观看| 欧美日韩在线免费视频| 亚洲高清免费观看高清完整版在线观看| 91亚洲精品乱码久久久久久蜜桃| 国产视频视频一区| 高清久久久久久| 亚洲天堂精品在线观看| 91麻豆国产精品久久| 一二三四社区欧美黄|