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

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

?? clockctl.cpp

?? 包含了孫鑫VC++lesson18的全部源代碼
?? CPP
字號:
// ClockCtl.cpp : Implementation of the CClockCtrl ActiveX Control class.

#include "stdafx.h"
#include "Clock.h"
#include "ClockCtl.h"
#include "ClockPpg.h"


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


IMPLEMENT_DYNCREATE(CClockCtrl, COleControl)


/////////////////////////////////////////////////////////////////////////////
// Message map

BEGIN_MESSAGE_MAP(CClockCtrl, COleControl)
	//{{AFX_MSG_MAP(CClockCtrl)
	ON_WM_CREATE()
	ON_WM_TIMER()
	//}}AFX_MSG_MAP
	ON_OLEVERB(AFX_IDS_VERB_PROPERTIES, OnProperties)
END_MESSAGE_MAP()


/////////////////////////////////////////////////////////////////////////////
// Dispatch map

BEGIN_DISPATCH_MAP(CClockCtrl, COleControl)
	//{{AFX_DISPATCH_MAP(CClockCtrl)
	DISP_PROPERTY_NOTIFY(CClockCtrl, "Interval", m_interval, OnIntervalChanged, VT_I2)
	DISP_FUNCTION(CClockCtrl, "Hello", Hello, VT_EMPTY, VTS_NONE)
	DISP_STOCKPROP_BACKCOLOR()
	DISP_STOCKPROP_FORECOLOR()
	//}}AFX_DISPATCH_MAP
	DISP_FUNCTION_ID(CClockCtrl, "AboutBox", DISPID_ABOUTBOX, AboutBox, VT_EMPTY, VTS_NONE)
END_DISPATCH_MAP()


/////////////////////////////////////////////////////////////////////////////
// Event map

BEGIN_EVENT_MAP(CClockCtrl, COleControl)
	//{{AFX_EVENT_MAP(CClockCtrl)
	EVENT_CUSTOM("NewMinute", FireNewMinute, VTS_NONE)
	EVENT_STOCK_CLICK()
	//}}AFX_EVENT_MAP
END_EVENT_MAP()


/////////////////////////////////////////////////////////////////////////////
// Property pages

// TODO: Add more property pages as needed.  Remember to increase the count!
BEGIN_PROPPAGEIDS(CClockCtrl, 2)
	PROPPAGEID(CClockPropPage::guid)
	PROPPAGEID(CLSID_CColorPropPage)
END_PROPPAGEIDS(CClockCtrl)


/////////////////////////////////////////////////////////////////////////////
// Initialize class factory and guid

IMPLEMENT_OLECREATE_EX(CClockCtrl, "CLOCK.ClockCtrl.1",
	0x8e46decb, 0x4fc8, 0x4498, 0xa2, 0x7, 0xe4, 0xdb, 0x4f, 0x41, 0x96, 0xa9)


/////////////////////////////////////////////////////////////////////////////
// Type library ID and version

IMPLEMENT_OLETYPELIB(CClockCtrl, _tlid, _wVerMajor, _wVerMinor)


/////////////////////////////////////////////////////////////////////////////
// Interface IDs

const IID BASED_CODE IID_DClock =
		{ 0x205b53d6, 0xf025, 0x4440, { 0xa5, 0x61, 0xc5, 0xf7, 0x14, 0xf5, 0xbb, 0x86 } };
const IID BASED_CODE IID_DClockEvents =
		{ 0x6f361918, 0x18b2, 0x4e90, { 0xa8, 0xca, 0xd1, 0x1e, 0x5e, 0x95, 0xc8, 0x5b } };


/////////////////////////////////////////////////////////////////////////////
// Control type information

static const DWORD BASED_CODE _dwClockOleMisc =
	OLEMISC_ACTIVATEWHENVISIBLE |
	OLEMISC_SETCLIENTSITEFIRST |
	OLEMISC_INSIDEOUT |
	OLEMISC_CANTLINKINSIDE |
	OLEMISC_RECOMPOSEONRESIZE;

IMPLEMENT_OLECTLTYPE(CClockCtrl, IDS_CLOCK, _dwClockOleMisc)


/////////////////////////////////////////////////////////////////////////////
// CClockCtrl::CClockCtrlFactory::UpdateRegistry -
// Adds or removes system registry entries for CClockCtrl

BOOL CClockCtrl::CClockCtrlFactory::UpdateRegistry(BOOL bRegister)
{
	// TODO: Verify that your control follows apartment-model threading rules.
	// Refer to MFC TechNote 64 for more information.
	// If your control does not conform to the apartment-model rules, then
	// you must modify the code below, changing the 6th parameter from
	// afxRegApartmentThreading to 0.

	if (bRegister)
		return AfxOleRegisterControlClass(
			AfxGetInstanceHandle(),
			m_clsid,
			m_lpszProgID,
			IDS_CLOCK,
			IDB_CLOCK,
			afxRegApartmentThreading,
			_dwClockOleMisc,
			_tlid,
			_wVerMajor,
			_wVerMinor);
	else
		return AfxOleUnregisterClass(m_clsid, m_lpszProgID);
}


/////////////////////////////////////////////////////////////////////////////
// CClockCtrl::CClockCtrl - Constructor

CClockCtrl::CClockCtrl()
{
	InitializeIIDs(&IID_DClock, &IID_DClockEvents);

	// TODO: Initialize your control's instance data here.
}


/////////////////////////////////////////////////////////////////////////////
// CClockCtrl::~CClockCtrl - Destructor

CClockCtrl::~CClockCtrl()
{
	// TODO: Cleanup your control's instance data here.
}


/////////////////////////////////////////////////////////////////////////////
// CClockCtrl::OnDraw - Drawing function

void CClockCtrl::OnDraw(
			CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)
{
	// TODO: Replace the following code with your own drawing code.
//	pdc->FillRect(rcBounds, CBrush::FromHandle((HBRUSH)GetStockObject(WHITE_BRUSH)));
//	pdc->Ellipse(rcBounds);
	CBrush brush(TranslateColor(GetBackColor()));
	pdc->FillRect(rcBounds, &brush);
	pdc->SetBkMode(TRANSPARENT);
	pdc->SetTextColor(TranslateColor(GetForeColor()));

	CTime time=CTime::GetCurrentTime();
	if(0==time.GetSecond())
	{
		FireNewMinute();
	}
	CString str=time.Format("%H:%M:%S");
	pdc->TextOut(0,0,str);
}


/////////////////////////////////////////////////////////////////////////////
// CClockCtrl::DoPropExchange - Persistence support

void CClockCtrl::DoPropExchange(CPropExchange* pPX)
{
	ExchangeVersion(pPX, MAKELONG(_wVerMinor, _wVerMajor));
	COleControl::DoPropExchange(pPX);

	// TODO: Call PX_ functions for each persistent custom property.
	PX_Short(pPX,"Interval",m_interval,1000);
}


/////////////////////////////////////////////////////////////////////////////
// CClockCtrl::OnResetState - Reset control to default state

void CClockCtrl::OnResetState()
{
	COleControl::OnResetState();  // Resets defaults found in DoPropExchange

	// TODO: Reset any other control state here.
}


/////////////////////////////////////////////////////////////////////////////
// CClockCtrl::AboutBox - Display an "About" box to the user

void CClockCtrl::AboutBox()
{
	CDialog dlgAbout(IDD_ABOUTBOX_CLOCK);
	dlgAbout.DoModal();
}


/////////////////////////////////////////////////////////////////////////////
// CClockCtrl message handlers

int CClockCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (COleControl::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	// TODO: Add your specialized creation code here
	SetTimer(1,m_interval,NULL);
	return 0;
}

void CClockCtrl::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
	//Invalidate();
	if(AmbientUserMode())
		InvalidateControl();
	COleControl::OnTimer(nIDEvent);
}

void CClockCtrl::OnIntervalChanged() 
{
	// TODO: Add notification handler code
	if(m_interval<0 || m_interval>6000)
	{
		m_interval=1000;
	}
	else
	{
		m_interval=m_interval/1000*1000;
		KillTimer(1);
		SetTimer(1,m_interval,NULL);
		BoundPropertyChanged(0x1);
	}
	SetModifiedFlag();
}

void CClockCtrl::Hello() 
{
	// TODO: Add your dispatch handler code here
	MessageBox("Hello world!");
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本aⅴ亚洲精品中文乱码| 中文成人av在线| 国产a久久麻豆| 亚洲第一主播视频| 国产精品无码永久免费888| 欧美一区二区女人| 91免费精品国自产拍在线不卡 | 久久久久国产一区二区三区四区| 91视频免费播放| 韩国三级中文字幕hd久久精品| 一区二区三区中文字幕| 国产精品免费av| 久久亚洲精华国产精华液| 欧美人牲a欧美精品| 色综合久久中文字幕综合网| 国产自产v一区二区三区c| 午夜欧美视频在线观看| 亚洲女性喷水在线观看一区| 欧美国产一区二区在线观看| 精品国产不卡一区二区三区| 欧美精品乱码久久久久久| 色偷偷88欧美精品久久久| 成人免费视频免费观看| 国内成人自拍视频| 蜜臀久久99精品久久久画质超高清| 亚洲综合视频在线观看| 中文字幕一区二区不卡| 欧美国产一区二区在线观看| 久久精品欧美日韩| 精品国偷自产国产一区| 日韩三级.com| 欧美大白屁股肥臀xxxxxx| 欧美区视频在线观看| 欧美色图第一页| 欧美午夜精品一区二区蜜桃| 欧美特级限制片免费在线观看| 色婷婷亚洲综合| 欧美影院精品一区| 欧美嫩在线观看| 欧美丰满高潮xxxx喷水动漫| 欧美剧在线免费观看网站| 91精品国产综合久久久久久久久久 | 久久久亚洲午夜电影| 欧美精品一区二区三区久久久| 日韩午夜激情视频| 久久亚洲精精品中文字幕早川悠里 | 91日韩精品一区| 91麻豆文化传媒在线观看| 在线国产亚洲欧美| 欧美日韩一级视频| 日韩欧美一级精品久久| 日韩一二在线观看| 久久久亚洲精品石原莉奈| 欧美经典三级视频一区二区三区| 国产精品三级久久久久三级| 日韩久久一区二区| 亚洲电影中文字幕在线观看| 日韩中文字幕亚洲一区二区va在线| 男女男精品网站| 国产一区二区福利| 国产69精品久久久久777| 91小视频在线| 欧美女孩性生活视频| 久久先锋影音av| 亚洲免费成人av| 天天色天天操综合| 国产电影一区二区三区| 91免费观看国产| 欧美精品丝袜中出| 久久亚区不卡日本| 亚洲资源在线观看| 久久精品国产秦先生| 成人av在线播放网址| 欧美三级视频在线| 精品国产不卡一区二区三区| 国产精品久久久久永久免费观看| 一区二区激情视频| 激情文学综合插| 91丨国产丨九色丨pron| 欧美精品一二三四| 国产精品国产三级国产有无不卡| 亚洲二区在线观看| 国产精品一区一区| 欧美日韩日本视频| 中日韩av电影| 男男gaygay亚洲| 成人av小说网| 日韩欧美另类在线| 亚洲男人天堂一区| 精品一区二区三区免费播放| 91视频国产资源| 久久无码av三级| 亚洲成年人影院| av一二三不卡影片| 精品福利av导航| 五月天视频一区| k8久久久一区二区三区 | 欧美高清视频一二三区 | 777色狠狠一区二区三区| 国产欧美精品一区二区色综合朱莉| 亚洲电影一级黄| 91在线观看污| 久久精品一区二区三区不卡牛牛| 日韩影视精彩在线| 色综合天天综合网天天看片| 国产日韩欧美电影| 久久爱另类一区二区小说| 欧美亚洲精品一区| 亚洲男人天堂一区| av一区二区三区黑人| 久久久99精品免费观看不卡| 日本视频在线一区| 欧美在线观看18| |精品福利一区二区三区| 国产精品影视在线| 精品国产一区二区三区不卡| 亚洲va在线va天堂| 在线免费精品视频| 亚洲欧美日韩电影| www.成人在线| 一区在线观看免费| 成人一区二区三区中文字幕| 久久人人97超碰com| 免费日本视频一区| 欧美一区二区三区小说| 亚洲国产精品久久人人爱| 色综合中文综合网| 欧美一级搡bbbb搡bbbb| 亚洲大片免费看| 欧美日韩激情一区二区| 久久99久久久久久久久久久| 欧美在线三级电影| 亚洲国产日韩a在线播放性色| 91污片在线观看| 综合分类小说区另类春色亚洲小说欧美 | 亚洲视频1区2区| 91蝌蚪porny九色| 日韩美女精品在线| 在线观看亚洲精品视频| 一区二区三区中文字幕精品精品| 色婷婷亚洲综合| 一区二区三区精品在线观看| 色偷偷久久一区二区三区| 亚洲精品视频自拍| 91福利国产精品| 亚洲福利视频导航| 4438x成人网最大色成网站| 奇米777欧美一区二区| 日韩欧美成人午夜| 国产馆精品极品| 中文字幕一区二区5566日韩| 欧美艳星brazzers| 日本大胆欧美人术艺术动态| 精品欧美久久久| 懂色av一区二区夜夜嗨| 亚洲三级理论片| 欧美日韩精品二区第二页| 久久综合综合久久综合| 国产欧美一区二区精品忘忧草| 成人午夜免费电影| 一区二区三区91| 欧美一区二区三区免费大片 | 国产精品自在在线| 最新久久zyz资源站| 精品视频在线视频| 激情文学综合网| 中文字幕日本不卡| 91麻豆精品久久久久蜜臀 | 国产一区二区三区不卡在线观看| 国产精品久久久久永久免费观看| 欧美丝袜丝交足nylons| 蜜臀99久久精品久久久久久软件 | 日本va欧美va精品发布| 国产欧美一区二区精品婷婷| 在线观看成人免费视频| 美女网站色91| 亚洲色图在线播放| 精品国精品国产尤物美女| 一本色道久久综合狠狠躁的推荐| 日本vs亚洲vs韩国一区三区| 国产精品久久三区| 日韩一区二区精品| 国产成人午夜精品影院观看视频 | 一区二区在线观看视频在线观看| 91精品国产综合久久精品麻豆| 国产v综合v亚洲欧| 天天综合网天天综合色| 国产精品色在线观看| 在线免费一区三区| 成人永久aaa| 日本成人在线看| 一片黄亚洲嫩模| 久久久久久久综合| 在线播放欧美女士性生活| 欧美日韩日本视频| 成人三级在线视频| 国模大尺度一区二区三区| 亚洲综合在线视频| 国产精品欧美综合在线| 日韩欧美一二三四区|