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

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

?? atltheme.h

?? 是WTL的開發包,直接包括在路徑中,最好放在VC目錄中,要更新的包請到官方網站去下載
?? H
?? 第 1 頁 / 共 2 頁
字號:
// Windows Template Library - WTL version 7.0
// Copyright (C) 1997-2002 Microsoft Corporation
// All rights reserved.
//
// This file is a part of the Windows Template Library.
// The code and information is provided "as-is" without
// warranty of any kind, either expressed or implied.

#ifndef __ATLTHEME_H__
#define __ATLTHEME_H__

#pragma once

#ifndef __cplusplus
	#error ATL requires C++ compilation (use a .cpp suffix)
#endif

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

#ifndef __ATLWIN_H__
	#error atltheme.h requires atlwin.h to be included first
#endif

#if (_WIN32_WINNT < 0x0501)
	#error atltheme.h requires _WIN32_WINNT >= 0x0501
#endif //(_WIN32_WINNT < 0x0501)

#include <tmschema.h>
#include <uxtheme.h>
#pragma comment(lib, "uxtheme.lib")

// Note: To create an application that also runs on older versions of Windows,
// use delay load of uxtheme.dll and ensure that no calls to the Theme API are
// made if theming is not supported. It is enough to check if m_hTheme is NULL.
// Example:
//	if(m_hTheme != NULL)
//	{
//		DrawThemeBackground(dc, BP_PUSHBUTTON, PBS_NORMAL, &rect, NULL);
//		DrawThemeText(dc, BP_PUSHBUTTON, PBS_NORMAL, L"Button", -1, DT_SINGLELINE | DT_CENTER | DT_VCENTER, 0, &rect);
//	}
//	else
//	{
//		dc.DrawFrameControl(&rect, DFC_BUTTON, DFCS_BUTTONPUSH);
//		dc.DrawText(_T("Button"), -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
//	}
//
// Delay load is NOT AUTOMATIC for VC++ 7, you have to link to delayimp.lib, 
// and add uxtheme.dll in the Linker.Input.Delay Loaded DLLs section of the 
// project properties.
#if (_MSC_VER < 1300) && !defined(_WTL_NO_THEME_DELAYLOAD)
#pragma comment(lib, "delayimp.lib")
#pragma comment(linker, "/delayload:uxtheme.dll")
#endif //(_MSC_VER < 1300) && !defined(_WTL_NO_THEME_DELAYLOAD)


/////////////////////////////////////////////////////////////////////////////
// Classes in this file
//
// CTheme
// CThemeImpl<T, TBase>


namespace WTL
{

/////////////////////////////////////////////////////////////////////////////
// CTheme - wrapper for theme handle

class CTheme
{
public:
// Data members
	HTHEME m_hTheme;
	static int m_nIsThemingSupported;

// Constructor
	CTheme() : m_hTheme(NULL)
	{
		IsThemingSupported();
	}

// Operators and helpers
	bool IsThemeNull() const
	{
		return (m_hTheme == NULL);
	}

	CTheme& operator =(HTHEME hTheme)
	{
		m_hTheme = hTheme;
		return *this;
	}

	operator HTHEME() const
	{
		return m_hTheme;
	}

	void Attach(HTHEME hTheme)
	{
		m_hTheme = hTheme;
	}

	HTHEME Detach()
	{
		HTHEME hTheme = m_hTheme;
		m_hTheme = NULL;
		return hTheme;
	}

// Theme support helper
	static bool IsThemingSupported()
	{
		if(m_nIsThemingSupported == -1)
		{
			::EnterCriticalSection(&_Module.m_csStaticDataInit);
			if(m_nIsThemingSupported == -1)
			{
				HMODULE hThemeDLL = ::LoadLibrary(_T("uxtheme.dll"));
				m_nIsThemingSupported = (hThemeDLL != NULL) ? 1 : 0;
				if(hThemeDLL != NULL)
					::FreeLibrary(hThemeDLL);
			}
			::LeaveCriticalSection(&_Module.m_csStaticDataInit);
		}

		ATLASSERT(m_nIsThemingSupported != -1);
		return (m_nIsThemingSupported == 1);
	}

// Operations and theme properties
	HTHEME OpenThemeData(HWND hWnd, LPCWSTR pszClassList)
	{
		if(!IsThemingSupported())
			return NULL;

		ATLASSERT(m_hTheme == NULL);
		m_hTheme = ::OpenThemeData(hWnd, pszClassList);
		return m_hTheme;
	}

	HRESULT CloseThemeData()
	{
		HRESULT hRet = S_FALSE;
		if(m_hTheme != NULL)
		{
			hRet = ::CloseThemeData(m_hTheme);
			if(SUCCEEDED(hRet))
				m_hTheme = NULL;
		}
		return hRet;
	}

	HRESULT DrawThemeBackground(HDC hDC, int nPartID, int nStateID, LPCRECT pRect, LPCRECT pClipRect = NULL)
	{
		ATLASSERT(m_hTheme != NULL);
		return ::DrawThemeBackground(m_hTheme, hDC, nPartID, nStateID, pRect, pClipRect);
	}

	HRESULT DrawThemeText(HDC hDC, int nPartID, int nStateID, LPCWSTR pszText, int nCharCount, DWORD dwTextFlags, DWORD dwTextFlags2, LPCRECT pRect)
	{
		ATLASSERT(m_hTheme != NULL);
		return ::DrawThemeText(m_hTheme, hDC, nPartID, nStateID, pszText, nCharCount, dwTextFlags, dwTextFlags2, pRect);
	}

	HRESULT GetThemeBackgroundContentRect(HDC hDC, int nPartID, int nStateID,  LPCRECT pBoundingRect, LPRECT pContentRect) const
	{
		ATLASSERT(m_hTheme != NULL);
		return ::GetThemeBackgroundContentRect(m_hTheme, hDC, nPartID, nStateID,  pBoundingRect, pContentRect);
	}

	HRESULT GetThemeBackgroundExtent(HDC hDC, int nPartID, int nStateID, LPCRECT pContentRect, LPRECT pExtentRect) const
	{
		ATLASSERT(m_hTheme != NULL);
		return ::GetThemeBackgroundExtent(m_hTheme, hDC, nPartID, nStateID, pContentRect, pExtentRect);
	}

	HRESULT GetThemePartSize(HDC hDC, int nPartID, int nStateID, LPRECT pRect, enum THEMESIZE eSize, LPSIZE pSize) const
	{
		ATLASSERT(m_hTheme != NULL);
		return ::GetThemePartSize(m_hTheme, hDC, nPartID, nStateID, pRect, eSize, pSize);
	}

	HRESULT GetThemeTextExtent(HDC hDC, int nPartID, int nStateID, LPCWSTR pszText, int nCharCount, DWORD dwTextFlags, LPCRECT  pBoundingRect, LPRECT pExtentRect) const
	{
		ATLASSERT(m_hTheme != NULL);
		return ::GetThemeTextExtent(m_hTheme, hDC, nPartID, nStateID, pszText, nCharCount, dwTextFlags, pBoundingRect, pExtentRect);
	}

	HRESULT GetThemeTextMetrics(HDC hDC, int nPartID, int nStateID, PTEXTMETRIC pTextMetric) const
	{
		ATLASSERT(m_hTheme != NULL);
		return ::GetThemeTextMetrics(m_hTheme, hDC, nPartID, nStateID, pTextMetric);
	}

	HRESULT GetThemeBackgroundRegion(HDC hDC, int nPartID, int nStateID, LPCRECT pRect, HRGN* pRegion) const
	{
		ATLASSERT(m_hTheme != NULL);
		return ::GetThemeBackgroundRegion(m_hTheme, hDC, nPartID, nStateID, pRect, pRegion);
	}

	HRESULT HitTestThemeBackground(HDC hDC, int nPartID, int nStateID, DWORD dwOptions, LPCRECT pRect, HRGN hrgn, POINT ptTest, WORD* pwHitTestCode) const
	{
		ATLASSERT(m_hTheme != NULL);
		return ::HitTestThemeBackground(m_hTheme, hDC, nPartID, nStateID, dwOptions, pRect, hrgn, ptTest, pwHitTestCode);
	}

	HRESULT DrawThemeEdge(HDC hDC, int nPartID, int nStateID, LPCRECT pDestRect, UINT uEdge, UINT uFlags, LPRECT pContentRect = NULL)
	{
		ATLASSERT(m_hTheme != NULL);
		return ::DrawThemeEdge(m_hTheme, hDC, nPartID, nStateID, pDestRect, uEdge, uFlags, pContentRect);
	}

	HRESULT DrawThemeIcon(HDC hDC, int nPartID, int nStateID, LPCRECT pRect, HIMAGELIST himl, int nImageIndex)
	{
		ATLASSERT(m_hTheme != NULL);
		return ::DrawThemeIcon(m_hTheme, hDC, nPartID, nStateID, pRect, himl, nImageIndex);
	}

	BOOL IsThemePartDefined(int nPartID, int nStateID) const
	{
		ATLASSERT(m_hTheme != NULL);
		return ::IsThemePartDefined(m_hTheme, nPartID, nStateID);
	}

	BOOL IsThemeBackgroundPartiallyTransparent(int nPartID, int nStateID) const
	{
		ATLASSERT(m_hTheme != NULL);
		return ::IsThemeBackgroundPartiallyTransparent(m_hTheme, nPartID, nStateID);
	}

	HRESULT GetThemeColor(int nPartID, int nStateID, int nPropID, COLORREF* pColor) const
	{
		ATLASSERT(m_hTheme != NULL);
		return ::GetThemeColor(m_hTheme, nPartID, nStateID, nPropID, pColor);
	}

	HRESULT GetThemeMetric(HDC hDC, int nPartID, int nStateID, int nPropID, int* pnVal) const
	{
		ATLASSERT(m_hTheme != NULL);
		return ::GetThemeMetric(m_hTheme, hDC, nPartID, nStateID, nPropID, pnVal);
	}

	HRESULT GetThemeString(int nPartID, int nStateID, int nPropID, LPWSTR pszBuff, int cchMaxBuffChars) const
	{
		ATLASSERT(m_hTheme != NULL);
		return ::GetThemeString(m_hTheme, nPartID, nStateID, nPropID, pszBuff, cchMaxBuffChars);
	}

	HRESULT GetThemeBool(int nPartID, int nStateID, int nPropID, BOOL* pfVal) const
	{
		ATLASSERT(m_hTheme != NULL);
		return ::GetThemeBool(m_hTheme, nPartID, nStateID, nPropID, pfVal);
	}

	HRESULT GetThemeInt(int nPartID, int nStateID, int nPropID, int* pnVal) const
	{
		ATLASSERT(m_hTheme != NULL);
		return ::GetThemeInt(m_hTheme, nPartID, nStateID, nPropID, pnVal);
	}

	HRESULT GetThemeEnumValue(int nPartID, int nStateID, int nPropID, int* pnVal) const
	{
		ATLASSERT(m_hTheme != NULL);
		return ::GetThemeEnumValue(m_hTheme, nPartID, nStateID, nPropID, pnVal);
	}

	HRESULT GetThemePosition(int nPartID, int nStateID, int nPropID, LPPOINT pPoint) const
	{
		ATLASSERT(m_hTheme != NULL);
		return ::GetThemePosition(m_hTheme, nPartID, nStateID, nPropID, pPoint);
	}

	HRESULT GetThemeFont(int nPartID, HDC hDC, int nStateID, int nPropID, LOGFONT* pFont) const
	{
		ATLASSERT(m_hTheme != NULL);
		return ::GetThemeFont(m_hTheme, hDC, nPartID, nStateID, nPropID, pFont);
	}

	HRESULT GetThemeRect(int nPartID, int nStateID, int nPropID, LPRECT pRect) const
	{
		ATLASSERT(m_hTheme != NULL);
		return ::GetThemeRect(m_hTheme, nPartID, nStateID, nPropID, pRect);
	}

	HRESULT GetThemeMargins(HDC hDC, int nPartID, int nStateID, int nPropID, LPRECT pRect, PMARGINS pMargins) const
	{
		ATLASSERT(m_hTheme != NULL);
		return ::GetThemeMargins(m_hTheme, hDC, nPartID, nStateID, nPropID, pRect, pMargins);
	}

	HRESULT GetThemeIntList(int nPartID, int nStateID, int nPropID, INTLIST* pIntList) const
	{
		ATLASSERT(m_hTheme != NULL);
		return ::GetThemeIntList(m_hTheme, nPartID, nStateID, nPropID, pIntList);
	}

	HRESULT GetThemePropertyOrigin(int nPartID, int nStateID, int nPropID, enum PROPERTYORIGIN* pOrigin) const
	{
		ATLASSERT(m_hTheme != NULL);
		return ::GetThemePropertyOrigin(m_hTheme, nPartID, nStateID, nPropID, pOrigin);
	}

	HRESULT GetThemeFilename(int nPartID, int nStateID, int nPropID, LPWSTR pszThemeFileName, int cchMaxBuffChars) const
	{
		ATLASSERT(m_hTheme != NULL);
		return ::GetThemeFilename(m_hTheme, nPartID, nStateID, nPropID, pszThemeFileName, cchMaxBuffChars);
	}

	COLORREF GetThemeSysColor(int nColorID) const
	{
		ATLASSERT(m_hTheme != NULL);
		return ::GetThemeSysColor(m_hTheme, nColorID);
	}

	HBRUSH GetThemeSysColorBrush(int nColorID) const
	{
		ATLASSERT(m_hTheme != NULL);
		return ::GetThemeSysColorBrush(m_hTheme, nColorID);
	}

	int GetThemeSysSize(int nSizeID) const
	{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品人人做| 国产美女娇喘av呻吟久久| 99re在线视频这里只有精品| 美女一区二区视频| 一区二区激情小说| 欧美一区二区三区免费观看视频| 国产亚洲欧洲一区高清在线观看| 国产福利电影一区二区三区| 亚洲欧洲精品一区二区精品久久久| 在线亚洲精品福利网址导航| 色噜噜夜夜夜综合网| 亚洲国产精品麻豆| 国产亚洲精品超碰| 久久久久久久精| 亚洲国产综合91精品麻豆| 国产精品一线二线三线| 91精品免费观看| 一区二区三区日韩在线观看| 成av人片一区二区| 国产清纯在线一区二区www| 首页综合国产亚洲丝袜| 色一情一伦一子一伦一区| 中文字幕高清一区| 国产黄色成人av| 久久男人中文字幕资源站| 美女网站色91| 日韩欧美中文一区二区| 日本一区二区在线不卡| 91丨porny丨在线| 喷水一区二区三区| 中文字幕一区二区三区在线不卡 | 国产精品亚洲专一区二区三区| 国产999精品久久久久久| 亚洲欧美激情一区二区| 欧美一区二区视频网站| 波多野结衣视频一区| 日本美女一区二区三区| 1区2区3区欧美| 2020国产精品自拍| 精品国产青草久久久久福利| 99久久久无码国产精品| 久色婷婷小香蕉久久| 亚洲图片欧美激情| 亚洲精品一区二区三区精华液 | 久久99精品国产麻豆婷婷洗澡| 欧美国产精品久久| 日韩亚洲欧美高清| 91猫先生在线| 精品国精品国产尤物美女| 日日欢夜夜爽一区| 欧美成人一级视频| 成人激情av网| 夜夜精品浪潮av一区二区三区| 日本道免费精品一区二区三区| 亚洲精品国产品国语在线app| 91国偷自产一区二区使用方法| 亚洲妇女屁股眼交7| 欧美一区二区三区视频免费| 久久成人综合网| 欧美国产精品一区二区三区| 色8久久精品久久久久久蜜 | 国产精品理伦片| 91亚洲大成网污www| 亚洲一区中文日韩| 精品日韩一区二区三区免费视频| 国产精品资源在线| 亚洲欧美一区二区三区极速播放 | 一区二区免费视频| 国产亚洲欧美激情| 国产裸体歌舞团一区二区| 精品伦理精品一区| 91免费视频观看| 美女看a上一区| 亚洲欧洲日韩一区二区三区| 欧美片在线播放| 大白屁股一区二区视频| 一区二区免费在线| 欧美变态凌虐bdsm| 在线观看免费亚洲| 国产成人激情av| 日韩黄色在线观看| 久久久久国产一区二区三区四区| 欧美色偷偷大香| 欧美男人的天堂一二区| 欧美精品视频www在线观看| 欧美午夜理伦三级在线观看| 亚洲成人激情社区| 日韩女优毛片在线| 在线观看网站黄不卡| 国产电影一区二区三区| 日韩国产精品久久久| 国产精品第13页| 久久综合九色综合97_久久久| 一本到高清视频免费精品| 国产自产视频一区二区三区| 亚洲午夜久久久久久久久久久| 国产精品色哟哟网站| 精品免费日韩av| 欧美日韩三级一区| 色婷婷精品大在线视频| 成人少妇影院yyyy| 国产乱子伦视频一区二区三区 | 精品动漫一区二区三区在线观看| 国产一区二三区| 久久激情综合网| 成人免费高清在线| 在线精品视频一区二区三四| 欧美日韩精品福利| 日韩亚洲欧美一区| 国产精品你懂的在线欣赏| 亚洲精品va在线观看| 喷白浆一区二区| 国产成人精品免费| 91久久一区二区| 精品伊人久久久久7777人| 亚洲色图欧美在线| 亚洲欧美日韩国产手机在线| 国产精品久久久久三级| 国产精品欧美久久久久一区二区| 久久先锋影音av鲁色资源网| 精品国产精品网麻豆系列| 亚洲精品一区二区三区四区高清| 中文字幕中文字幕在线一区 | 亚洲国产精品久久不卡毛片| 亚洲色图视频免费播放| 日韩美女视频一区二区| 亚洲精品乱码久久久久久日本蜜臀 | 国产不卡视频在线播放| 在线精品视频免费观看| 精品久久人人做人人爽| 秋霞电影网一区二区| 久久精品国产精品亚洲红杏| 精品在线亚洲视频| 国产精品资源站在线| a亚洲天堂av| 日本电影亚洲天堂一区| 欧美区在线观看| 精品免费99久久| 国产精品人成在线观看免费| 亚洲女与黑人做爰| 亚洲成人精品影院| 久久99热这里只有精品| 国产福利一区二区| 91老司机福利 在线| 欧美美女视频在线观看| 精品国产三级a在线观看| 中文字幕亚洲视频| 亚洲二区视频在线| 国产综合色视频| 99视频精品在线| 欧美二区在线观看| 国产性色一区二区| 亚洲国产精品久久人人爱蜜臀| 免费美女久久99| 99久久精品国产麻豆演员表| 欧美三级乱人伦电影| 久久亚洲一区二区三区明星换脸 | 欧美三级一区二区| 欧美va亚洲va在线观看蝴蝶网| 国产精品久久777777| 日韩高清欧美激情| 大尺度一区二区| 日韩欧美高清在线| 亚洲精品va在线观看| 久久精品国产精品亚洲精品 | 国产成人免费网站| 色婷婷精品久久二区二区蜜臀av | 欧洲国内综合视频| 久久九九久精品国产免费直播| 一区二区三区 在线观看视频| 精品一区二区av| 欧美性大战久久久久久久| 国产婷婷一区二区| 日本一区中文字幕| 在线看国产日韩| 亚洲欧美综合另类在线卡通| 免费在线看成人av| 欧美视频在线一区| 国产欧美日韩视频在线观看| 青青青伊人色综合久久| 一本久久精品一区二区| 国产午夜一区二区三区| 美国三级日本三级久久99| 欧美性生活影院| 亚洲欧美成人一区二区三区| 国产精品乡下勾搭老头1| 欧美一级黄色大片| 午夜久久电影网| 色播五月激情综合网| 中文字幕亚洲欧美在线不卡| 国产精品一二三四五| 精品日韩在线观看| 麻豆国产欧美日韩综合精品二区 | 26uuu精品一区二区| 免费黄网站欧美| 欧美巨大另类极品videosbest | 成人美女视频在线观看18| 久久美女艺术照精彩视频福利播放| 天天色天天操综合| 欧美精品v国产精品v日韩精品 |