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

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

?? coolbar.cpp

?? 對c++類庫cj60的簡化包裝
?? CPP
字號:
////////////////////////////////////////////////////////////////
// Copyright 1998 Paul DiLascia
// If this code works, it was written by Paul DiLascia.
// If not, I don't know who wrote it.
//
// CCoolBar implements coolbars for MFC.
//
#include "StdAfx.h"
#include "CoolBar.h"
#include "ModulVer.h"

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

// if you want to see extra TRACE diagnostics, set below to TRUE
BOOL CCoolBar::bTRACE = FALSE;

#ifdef _DEBUG
#define CBTRACEFN			\
	CTraceFn __fooble;	\
	if (bTRACE)				\
		TRACE
#define CBTRACE			\
	if (bTRACE)				\
		TRACE
#else
#define CBTRACEFN TRACE
#define CBTRACE   TRACE
#endif

IMPLEMENT_DYNAMIC(CCoolBar, CControlBar)

BEGIN_MESSAGE_MAP(CCoolBar, CControlBar)
	//{{AFX_MSG_MAP(CCoolBar)
	ON_WM_CREATE()
	ON_WM_PAINT()
	ON_WM_ERASEBKGND()
	ON_NOTIFY_REFLECT(RBN_HEIGHTCHANGE, OnHeightChange)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

CCoolBar::CCoolBar()
{
}

CCoolBar::~CCoolBar()
{
}

//////////////////
// Create coolbar
//
BOOL CCoolBar::Create(CWnd* pParentWnd, DWORD dwStyle,
	DWORD dwAfxBarStyle, UINT nID)
{
	ASSERT_VALID(pParentWnd);   // must have a parent

	// dynamic coolbar not supported
	dwStyle &= ~CBRS_SIZE_DYNAMIC;

	// save the style (this code copied from MFC--probably unecessary)
	m_dwStyle = dwAfxBarStyle;
	if (nID == AFX_IDW_TOOLBAR)
		m_dwStyle |= CBRS_HIDE_INPLACE;

	// MFC requires these:
	dwStyle |= CCS_NODIVIDER|CCS_NOPARENTALIGN;

	// initialize cool common controls
	static BOOL bInit = FALSE;
	if (!bInit) {
		HMODULE h = ::GetModuleHandle(_T("ComCtl32"));
		ASSERT(h);

		typedef BOOL (CALLBACK* INITCC)(INITCOMMONCONTROLSEX*);
		INITCC pfn = (INITCC)GetProcAddress(h, _T("InitCommonControlsEx"));
		if (pfn) {
			INITCOMMONCONTROLSEX sex;
			sex.dwSize = sizeof(INITCOMMONCONTROLSEX);
			sex.dwICC = ICC_COOL_CLASSES;
			(*pfn)(&sex);
		}
		bInit = TRUE;
	}

	// Finally create the cool bar using given style and parent.
	CRect rc;
	rc.SetRectEmpty();
	return CWnd::CreateEx(WS_EX_TOOLWINDOW, REBARCLASSNAME, NULL,
		dwStyle, rc, pParentWnd, nID);
}

//////////////////
// Invalidate coolbar: invalidate children too
//
void CCoolBar::Invalidate(BOOL bErase)
{
	HWND hWndChild = ::GetWindow(m_hWnd, GW_CHILD);
	while (hWndChild != NULL) {
		::InvalidateRect(hWndChild, NULL, bErase);
		hWndChild = ::GetNextWindow(hWndChild, GW_HWNDNEXT);
	}
	CControlBar::Invalidate(bErase);
}

//////////////////
// Set the background bitmap. This sets the background for all bands and
// sets the RBBS_FIXEDBMP style so it looks like one background.
//
void CCoolBar::SetBackgroundBitmap(CBitmap* pBitmap)
{
	HBITMAP hbm = (HBITMAP)pBitmap->GetSafeHandle();
	CRebarBandInfo rbbi;
	int n = GetBandCount();
	for (int i=0; i< n; i++) {
		rbbi.fMask  = RBBIM_STYLE;
		GetBandInfo(i, &rbbi);
		rbbi.fMask  |= RBBIM_BACKGROUND;
		rbbi.fStyle |= RBBS_FIXEDBMP;
		rbbi.hbmBack = hbm;
		SetBandInfo(i, &rbbi);
	}
}

//////////////////
// Set background/foreground colors for all bands
//
void CCoolBar::SetColors(COLORREF clrFG, COLORREF clrBG)
{
	CRebarBandInfo rbbi;
	rbbi.fMask = RBBIM_COLORS;
	rbbi.clrFore = clrFG;
	rbbi.clrBack = clrBG;
	int n = GetBandCount();
	for (int i=0; i< n; i++)
		SetBandInfo(i, &rbbi);
}

//////////////////
// Insert band. This overloaded version lets you create a child window band.
//
BOOL CCoolBar::InsertBand(CWnd* pWnd, CSize szMin, int cx,
	LPCTSTR lpText, int iPos, BOOL bNewRow)
{
	CRebarBandInfo rbbi;
	rbbi.fMask = RBBIM_CHILD|RBBIM_CHILDSIZE|RBBIM_TEXT;
	if (cx>0) {
		rbbi.fMask |= RBBIM_SIZE;
		rbbi.cx = cx;
	}
	if (bNewRow) {
		rbbi.fMask  |= RBBIM_STYLE;
		rbbi.fStyle |= RBBS_BREAK;
	}
	rbbi.hwndChild =  pWnd->GetSafeHwnd();
	rbbi.cxMinChild = szMin.cx;
	rbbi.cyMinChild = szMin.cy;
	rbbi.lpText = (LPTSTR)lpText;
	return InsertBand(iPos, &rbbi);
}

//////////////////
// Handle WM_CREATE: call virtual fn so derived class can create bands.
//
int CCoolBar::OnCreate(LPCREATESTRUCT lpcs)
{
	return (CControlBar::OnCreate(lpcs)==-1 || !OnCreateBands()) ? -1 : 0;
}

//////////////////
// Standard UI handler updates any controls in the coolbar.
//
void CCoolBar::OnUpdateCmdUI(CFrameWnd* pTarget, BOOL bDisableIfNoHndler)
{
	UpdateDialogControls(pTarget, bDisableIfNoHndler);
}

/////////////////
// These two functions are called by MFC to calculate the layout of
// the main frame. Since CCoolBar is not designed to be dynamic, the
// size is always fixed, and the same as the window size. 
//
CSize CCoolBar::CalcDynamicLayout(int nLength, DWORD dwMode)
{
	return CalcFixedLayout(dwMode & LM_STRETCH, dwMode & LM_HORZ);
}

CSize CCoolBar::CalcFixedLayout(BOOL bStretch, BOOL bHorz)
{
	CRect rc;
	GetWindowRect(&rc);
	CSize sz(bHorz && bStretch ? 0x7FFF : rc.Width(),
		!bHorz && bStretch ? 0x7FFF : rc.Height());
	return sz;
}

//////////////////
// Handle RBN_HEIGHTCHANGE notification: pass to virtual fn w/nicer args.
//
void CCoolBar::OnHeightChange(NMHDR* pNMHDR, LRESULT* pRes)
{
	CRect rc;
	GetWindowRect(&rc);
	OnHeightChange(rc);
	*pRes = 0; // why not?
}

//////////////////
// Height changed: Default implementation does the right thing for MFC
// doc/view: notify parent frame by posting a WM_SIZE message. This will
// cause the frame to do RecalcLayout. The message must be posted, not sent,
// because the coolbar could send RBN_HEIGHTCHANGE while the user is sizing,
// which would be in the middle of a CFrame::RecalcLayout, and RecalcLayout
// doesn't let you re-enter it. Posting guarantees that CFrameWnd can finish
// any recalc it may be in the middle of *before* handling my posted WM_SIZE.
// Very confusing, but that's MFC for you.
//
void CCoolBar::OnHeightChange(const CRect& rcNew)
{
	CWnd* pParent = GetParent();
	CRect rc;
	pParent->GetWindowRect(&rc);
	pParent->PostMessage(WM_SIZE, 0, MAKELONG(rc.Width(),rc.Height()));
}

void CCoolBar::OnPaint()
{
	Default();	// bypass CControlBar
}

BOOL CCoolBar::OnEraseBkgnd(CDC* pDC)
{
	return (BOOL)Default();  // bypass CControlBar
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产很黄免费观看久久| 亚洲自拍偷拍av| 国产盗摄一区二区| 久久久久9999亚洲精品| 国产一区二区女| 国产情人综合久久777777| 不卡的av网站| 亚洲一区二区av电影| 欧美区一区二区三区| 免费观看一级欧美片| 欧美不卡在线视频| 国产精品 日产精品 欧美精品| 国产亚洲一区二区在线观看| 成人免费视频一区二区| 亚洲欧洲日韩综合一区二区| 欧洲在线/亚洲| 免费成人美女在线观看.| 精品粉嫩超白一线天av| 成人免费视频一区| 午夜欧美视频在线观看| 精品成a人在线观看| gogo大胆日本视频一区| 亚洲va欧美va人人爽| 久久精品亚洲乱码伦伦中文 | 成人高清视频在线| 亚洲精品久久嫩草网站秘色| 7777精品伊人久久久大香线蕉的 | 精品日本一线二线三线不卡| 国产一区二区三区视频在线播放| 欧美国产欧美亚州国产日韩mv天天看完整| 播五月开心婷婷综合| 午夜视黄欧洲亚洲| 中文字幕不卡在线播放| 欧美二区乱c少妇| 99热精品国产| 韩国在线一区二区| 一区二区三区在线观看国产| 日韩欧美电影一区| 91丨九色丨黑人外教| 毛片不卡一区二区| 亚洲综合久久av| 国产日韩欧美不卡| 制服丝袜亚洲网站| 色综合久久久久综合体桃花网| 免费的成人av| 一区二区成人在线观看| 国产女主播在线一区二区| 欧美精品乱码久久久久久按摩| 成人激情校园春色| 国产一区二区美女诱惑| 亚洲超丰满肉感bbw| 日韩码欧中文字| 精品国产自在久精品国产| 欧美丝袜丝交足nylons| 99精品视频在线播放观看| 国产一区二区三区四区在线观看| 丝袜美腿亚洲综合| 亚洲观看高清完整版在线观看| 国产日韩综合av| 日韩免费福利电影在线观看| 欧美视频自拍偷拍| 在线视频中文字幕一区二区| 成人国产精品免费网站| 经典三级在线一区| 毛片av一区二区三区| 五月天丁香久久| 亚洲国产精品麻豆| 一区二区三区精品久久久| 中文字幕亚洲一区二区av在线 | 视频一区二区三区入口| 亚洲一区二区三区四区的| 中文字幕一区二区三区色视频 | 亚洲色图20p| 国产精品久久久久毛片软件| 久久久欧美精品sm网站| 久久免费视频一区| 精品国产一区二区三区四区四 | 国产精品免费久久久久| 26uuu精品一区二区| 久久综合视频网| 久久九九久久九九| 久久久午夜精品| 国产欧美精品一区aⅴ影院| 国产女人18毛片水真多成人如厕 | 欧美系列在线观看| 在线视频国内自拍亚洲视频| 在线观看亚洲专区| 欧美日韩三级视频| 91精品国产乱码| 欧美成人乱码一区二区三区| 亚洲精品在线观| 国产精品三级电影| 综合亚洲深深色噜噜狠狠网站| 国产精品伦一区二区三级视频| 中文字幕一区在线| 亚洲国产精品久久人人爱| 日本三级亚洲精品| 国产一区二区三区在线观看免费 | 日韩精品专区在线影院观看| 日韩午夜激情视频| 久久影院午夜片一区| 国产精品久久久久婷婷| 亚洲激情男女视频| 久久精品噜噜噜成人av农村| 国产精品一区二区在线观看网站| 成人av免费在线| 欧美日韩国产一级片| 日韩欧美你懂的| 国产精品五月天| 亚洲成av人片一区二区梦乃| 国内精品伊人久久久久影院对白| fc2成人免费人成在线观看播放| 91免费看`日韩一区二区| 欧美日韩的一区二区| 精品毛片乱码1区2区3区| 亚洲日本在线视频观看| 日韩av电影天堂| www.欧美.com| 欧美成人精品1314www| 国产精品不卡在线观看| 日韩精品免费视频人成| 成人永久aaa| 欧美日本在线观看| 中文幕一区二区三区久久蜜桃| 亚洲第一狼人社区| 成人午夜激情影院| 日韩三级av在线播放| 国产日本一区二区| 免费观看日韩电影| 欧美日韩一区成人| 亚洲国产高清在线| 蜜臀av一区二区在线观看| 99国产精品久久久| 精品福利一二区| 午夜视频一区在线观看| 99国产麻豆精品| 国产欧美精品在线观看| 六月丁香婷婷久久| 欧美日韩在线直播| 最新国产の精品合集bt伙计| 国产另类ts人妖一区二区| 4438x成人网最大色成网站| 亚洲欧美在线视频| 国产白丝精品91爽爽久久| 日韩亚洲欧美在线观看| 性做久久久久久| 在线观看欧美精品| 亚洲人成网站色在线观看| 国产一区在线看| 日韩欧美国产综合一区| 午夜精品成人在线| 欧美在线你懂的| 亚洲青青青在线视频| 成人精品小蝌蚪| 日本一区二区三区dvd视频在线| 日韩电影在线免费观看| 在线不卡a资源高清| 首页亚洲欧美制服丝腿| 欧美性猛交xxxxxx富婆| 一区二区三区四区乱视频| 99re6这里只有精品视频在线观看| 久久久不卡网国产精品一区| 九一久久久久久| 欧美岛国在线观看| 久久成人av少妇免费| 日韩一级片网址| 蜜臀av一区二区在线观看| 欧美一区二区三区婷婷月色| 日韩高清在线一区| 日韩一区和二区| 蜜桃91丨九色丨蝌蚪91桃色| 欧美一级淫片007| 日本美女一区二区| 精品国产91久久久久久久妲己| 日本不卡的三区四区五区| 日韩欧美不卡在线观看视频| 久久成人麻豆午夜电影| 久久五月婷婷丁香社区| 国产馆精品极品| 国产精品久久久久7777按摩| 成人网在线播放| 中文字幕在线免费不卡| 91福利小视频| 日韩黄色片在线观看| 26uuu国产日韩综合| 国产91富婆露脸刺激对白| 国产精品免费久久| 欧美在线免费视屏| 日本vs亚洲vs韩国一区三区| 精品国产乱码久久久久久久久| 国产精品亚洲人在线观看| 成人免费小视频| 在线观看成人免费视频| 日韩av中文在线观看| 国产日产欧美一区| 欧洲一区二区三区在线| 男女男精品网站| 国产精品五月天| 欧美日韩激情一区| 国产91露脸合集magnet|