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

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

?? listviewnoflicker.h

?? 一款最完整的工業組態軟源代碼
?? H
字號:

#ifndef __LIST_VIEW_NO_FLICKER_H__
#define __LIST_VIEW_NO_FLICKER_H__

// CListViewNoFlickerT is meant as a mix-in class to
//  help reduce flicker of a SysListView32.
//
// You can use CListViewNoFlickerT for a class that is
//  superclassing or subclassing a SysListView32.
//
// You can use CListViewNoFlicker as-is if you don't
//  need to specialize the list view

// If you can require Windows XP at a minimum, you should
//  use the extended style LVS_EX_DOUBLEBUFFER instead.
//  LVS_EX_DOUBLEBUFFER will also give you an alpha-blended
//  drag selection like windows explorer has in its file list views.

#ifndef __ATLAPP_H__
  #error ListViewNoFlicker.h requires atlapp.h to be included first
#endif

#ifndef __ATLGDIX_H__
  #error ListViewNoFlicker.h requires atlgdix.h to be included first
#endif

template <class T>
class CListViewNoFlickerT
{
protected:
	typedef CListViewNoFlickerT<T> thisClass;

protected:
	CWindow m_headerCtrl;

public:
	CListViewNoFlickerT() : m_headerCtrl(NULL)
	{
	}

	// We don't have a virtual destructor because this is a mix-in class
	~CListViewNoFlickerT()
	{
	}

public:
	// Call in WM_CREATE handler or SubclassWindow
	void Initialize(HWND hWndHeaderCtrl)
	{
		m_headerCtrl = hWndHeaderCtrl;
	}

	// Call in WM_DESTROY handler or UnsubclassWindow
	void Uninitialize(void)
	{
		m_headerCtrl = NULL;
	}

public:
	BEGIN_MSG_MAP(thisClass)
	ALT_MSG_MAP(1)
		MESSAGE_HANDLER(WM_ERASEBKGND, OnEraseBackground)
		MESSAGE_HANDLER(WM_PAINT, OnPaint)
		MESSAGE_HANDLER(WM_PRINTCLIENT, OnPaint)
	END_MSG_MAP()

	LRESULT OnEraseBackground(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
	{
		// Erase the background in OnPaint.
		// This is part of the key to flicker free drawing.
		return 1;
	}

	LRESULT OnPaint(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
	{
		T* pT = static_cast<T*>(this);
		if( wParam != NULL )
		{
			CMemDC memdc((HDC)wParam, NULL);
			pT->DoPaint(memdc.m_hDC, memdc.m_rc);
		}
		else
		{
			CPaintDC dc(pT->m_hWnd);
			CMemDC memdc(dc.m_hDC, &dc.m_ps.rcPaint);
			pT->DoPaint(memdc.m_hDC, dc.m_ps.rcPaint);
		}
		return 0;
	}

	inline void DoPaint(CDCHandle dc, RECT& rcClip)
	{
		T* pT = static_cast<T*>(this);

		// We'll let the list view's WM_ERASEBKGND message draw
		// into our offscreen buffer in case its doing
		// something more than filling the area with COLOR_WINDOW
		//memdc.FillSolidRect(&memdc.m_rc, ::GetSysColor(COLOR_WINDOW));
		pT->DefWindowProc( WM_ERASEBKGND, (WPARAM)(HDC)dc, 0);
		pT->DefWindowProc( WM_PAINT, (WPARAM)(HDC)dc, 0);

		if(m_headerCtrl.IsWindow())
		{
			// The "erase background" will have already been taken
			// care of with the list view's erasing
			m_headerCtrl.SendMessage(WM_PAINT, (WPARAM)(HDC)dc, 0);
			m_headerCtrl.ValidateRect(&rcClip);
		}
	}

};

typedef CWinTraits<
			WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN |
			LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SHAREIMAGELISTS,
			WS_EX_CLIENTEDGE> CListViewNoFlickerWinTraits;

class CListViewNoFlicker :
	public CWindowImpl<CListViewNoFlicker, CListViewCtrl, CListViewNoFlickerWinTraits>,
	public CListViewNoFlickerT<CListViewNoFlicker>
{
protected:
	typedef CListViewNoFlicker thisClass;
	typedef CWindowImpl<CListViewNoFlicker, CListViewCtrl, CListViewNoFlickerWinTraits> baseClass;
	typedef CListViewNoFlickerT<CListViewNoFlicker> noFlickerClass;

// Constructors
public:
	CListViewNoFlicker() { }

// Base Class overrides
public:
	BOOL SubclassWindow(HWND hWnd)
	{
		BOOL bRet = baseClass::SubclassWindow(hWnd);
		if(bRet)
		{
			noFlickerClass::Initialize(this->GetHeader());
		}
		return bRet;
	}

	HWND UnsubclassWindow(BOOL bForce = FALSE)
	{
		noFlickerClass::Uninitialize();

		return baseClass::UnsubclassWindow(bForce);
	}

// Message Handling
public:
	BEGIN_MSG_MAP(thisClass)
		MESSAGE_HANDLER(WM_CREATE, OnCreate)
		MESSAGE_HANDLER(WM_DESTROY, OnDestroy)

		CHAIN_MSG_MAP_ALT(noFlickerClass, 1)
		DEFAULT_REFLECTION_HANDLER()  // Just in case
	END_MSG_MAP()

	LRESULT OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
	{
		LRESULT lRet = DefWindowProc(uMsg, wParam, lParam);

		noFlickerClass::Initialize(this->GetHeader());

		// We've already called DefWindowProc
		bHandled = TRUE;

		return lRet;
	}

	LRESULT OnDestroy(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
	{
		noFlickerClass::Uninitialize();

		// Let anyone else (including DefWindowProc) see the message
		bHandled = FALSE;
		return 0;
	}
};

#endif //__LIST_VIEW_NO_FLICKER_H__

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
|精品福利一区二区三区| 欧美日韩一区二区三区四区五区 | 亚洲激情六月丁香| 99精品欧美一区| 国产成人午夜片在线观看高清观看| 91精品中文字幕一区二区三区| 亚洲人成7777| 欧美日韩亚洲综合在线| 免费看黄色91| 国产精品不卡在线| 欧美影院精品一区| 青娱乐精品视频| 欧美电影精品一区二区| 风间由美一区二区av101| 亚洲成av人在线观看| 欧美一区二区私人影院日本| 韩国女主播一区二区三区| 国产精品久久夜| 91亚洲国产成人精品一区二区三| 综合久久给合久久狠狠狠97色 | 精品久久久久久综合日本欧美| 日韩一区和二区| a级高清视频欧美日韩| 亚洲人成影院在线观看| 日韩午夜激情av| 欧美色倩网站大全免费| av不卡在线播放| 美女爽到高潮91| 亚洲精品中文在线观看| 日本一区二区在线不卡| 欧美精品xxxxbbbb| 国产69精品一区二区亚洲孕妇 | 91精品国产综合久久国产大片| 精品亚洲国内自在自线福利| 欧美aaa在线| 亚洲成av人片在线观看无码| 亚洲欧美日韩久久精品| 国产精品成人免费在线| 亚洲欧洲99久久| 国产人成亚洲第一网站在线播放| 中文字幕不卡一区| 亚洲精品免费在线观看| 国产精品久久久久久久午夜片| 久久综合久久综合亚洲| 亚洲精品一区二区三区福利| 国产日产欧美一区二区视频| 天天综合天天综合色| 亚洲成人av一区二区三区| 精品无人区卡一卡二卡三乱码免费卡| 激情深爱一区二区| 成人精品在线视频观看| 欧美日韩日日摸| 国产亚洲欧美一区在线观看| 亚洲另类中文字| 国产综合色在线视频区| 亚洲国产va精品久久久不卡综合| 有坂深雪av一区二区精品| 国产亚洲成av人在线观看导航| 日本电影亚洲天堂一区| 久久免费美女视频| 久久夜色精品国产欧美乱极品| 精品国免费一区二区三区| 欧美亚洲自拍偷拍| 亚洲黄色录像片| 91影视在线播放| 亚洲免费在线视频一区 二区| 粉嫩绯色av一区二区在线观看| 日韩欧美一区二区久久婷婷| 国产欧美日韩不卡免费| 亚洲精品国产高清久久伦理二区| 日本不卡的三区四区五区| www.av亚洲| 久久久久久久久久美女| 国产欧美一区二区三区在线老狼| 五月天亚洲婷婷| 亚洲国产成人高清精品| 亚洲综合在线视频| 国产高清亚洲一区| 日韩一二在线观看| 亚洲三级电影网站| 日韩电影免费一区| 色伊人久久综合中文字幕| 欧美成人性战久久| 亚洲专区一二三| 97精品久久久午夜一区二区三区 | 国产一区二区在线视频| 欧美日韩一区二区电影| 亚洲视频在线一区观看| 成人99免费视频| 亚洲丝袜自拍清纯另类| 国产成人激情av| 日韩欧美在线影院| 久久99久久久久久久久久久| 26uuu国产日韩综合| 97久久久精品综合88久久| 亚洲精品久久嫩草网站秘色| 欧美性猛交xxxx乱大交退制版| 综合色中文字幕| 在线成人av网站| 尤物av一区二区| 欧美日韩一区二区三区视频| 蜜臀久久99精品久久久久宅男| 久久蜜桃av一区精品变态类天堂| 精品在线一区二区三区| 久久人人超碰精品| 成人精品一区二区三区中文字幕 | 自拍偷拍亚洲欧美日韩| 在线免费一区三区| 日韩高清不卡在线| 日韩一区二区在线看| 国产超碰在线一区| 免费在线观看视频一区| 国产精品久久久久久久久动漫| 欧美综合在线视频| 国内成人精品2018免费看| 亚洲精品亚洲人成人网在线播放| 狠狠狠色丁香婷婷综合激情| 7777女厕盗摄久久久| 麻豆高清免费国产一区| 夜夜揉揉日日人人青青一国产精品| 日韩欧美一区中文| 欧美日韩精品电影| 色婷婷av一区二区三区大白胸| 国产在线视频精品一区| 美女一区二区久久| 午夜久久久久久久久久一区二区| 亚洲一区在线观看免费| 久久久精品tv| 国产精品色呦呦| 国产精品久久久久久久岛一牛影视 | 91丨九色丨蝌蚪富婆spa| 欧美伦理视频网站| 亚洲综合免费观看高清完整版| 国内精品在线播放| 欧美一二三区精品| 秋霞电影网一区二区| 欧美大片在线观看一区二区| 麻豆91在线观看| 欧美精品一级二级三级| 国产精品的网站| av电影在线观看一区| 中文字幕一区二区不卡 | 精品日韩成人av| 亚洲妇熟xx妇色黄| 欧美欧美欧美欧美| 亚洲国产欧美日韩另类综合| gogo大胆日本视频一区| 中文字幕在线不卡视频| 色综合久久久久综合体| 亚洲免费视频成人| 99视频精品全部免费在线| 中文字幕一区二区不卡| 色婷婷久久综合| 日韩国产一二三区| 精品国产成人系列| 亚洲视频网在线直播| 18欧美乱大交hd1984| ㊣最新国产の精品bt伙计久久| 极品少妇一区二区| 久久影院视频免费| 国产麻豆成人传媒免费观看| 欧美zozozo| 国产精选一区二区三区| 亚洲成av人片一区二区| 亚洲国产欧美日韩另类综合| 成人av午夜影院| 亚洲综合免费观看高清完整版| 一本到一区二区三区| 午夜伦欧美伦电影理论片| 日韩精品一区二区三区视频在线观看 | 亚洲精品在线三区| 国产精品一区二区三区99| 92国产精品观看| 国产欧美日韩中文久久| 欧美在线观看一区| 国产一区在线精品| 亚洲一区二区三区国产| 精品久久久网站| 97久久超碰国产精品| 天天影视涩香欲综合网| 欧美韩国日本不卡| 欧美日韩一二三区| 91亚洲精品久久久蜜桃网站| 国产成人午夜精品5599| 日本亚洲三级在线| 亚洲欧洲日韩综合一区二区| 精品福利一区二区三区免费视频| 欧美色综合影院| 91一区二区三区在线观看| 国产精品综合在线视频| 免费看欧美女人艹b| 日本女人一区二区三区| 亚洲日本青草视频在线怡红院| 久久久久国产精品厨房| 91精品国产综合久久香蕉麻豆| 日本韩国一区二区三区| 国产黄色成人av| 亚洲国产成人91porn| 亚洲伊人色欲综合网| 亚洲综合区在线|