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

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

?? minicalendarctrl.h

?? 一款最完整的工業組態軟源代碼
?? H
字號:
// ----------------------------------------------------------------------------
// Written by Tony Ioanides (tonyi@bigpond.com)
// Copyright (c) 2003 Tony Ioanides.
//
// This code may be used in compiled form in any way you desire. This file may 
// be redistributed by any means PROVIDING it is not sold for profit without 
// the authors written consent, and providing that this notice and the authors 
// name is included. 
//
// This file is provided "as is" with no expressed or implied warranty.
// The author accepts no liability if it causes any damage to you or your
// computer whatsoever.
//
// Thanks to:
// Matt Gullet   - MFC version of MSOutlook-style miniature calendar control
// Bjarke Viksoe - for atlgdix.h
// Daniel Bowen  - for COffscreenDraw
// 
// ...and all the folks that make CodeProject possible.
// ----------------------------------------------------------------------------

// ----------------------------------------------------------------------------
// TODO (as at May, 2003)
// - 'month selection' ctrl
// - 'today' and 'none' buttons
// - extended selection
// - internationalisation
// - higlighting "special date"s
// ----------------------------------------------------------------------------

#pragma once

#include "atlgdix.h"

#include <atlcrack.h>

#if _ATL_VER < 0x0700

#ifndef __ATLMISC_H__
#error MiniCalendarCtrl.h requires altmisc.h to be included first
#endif

#include "atl3comtime.h"

#else
#include <atlcomtime.h>
#endif	//_ATL_VER

// ----------------------------------------------------------------------------
// Custom window styles
#define MCX_3DBORDER			0x0001L
#define MCX_SHOWNONMONTHDAYS	0x0002L
#define MCX_HIGHLIGHTTODAY		0x0004L		
#define MCX_MULTISELECT			0x0008L
#define MCX_TODAYBUTTON			0x0010L	
#define MCX_NOSELBUTTON			0x0020L

#define MCX_STYLEMASK			0x00FFL

// ----------------------------------------------------------------------------
// Notifications

#define MCXN_FIRST		0U - 00U
#define MCXN_LAST		0U - 09U

#define MCXN_SELCHANGED	(MCN_FIRST -  1)	// (LPARAM)(LPNMMCXSELCHANGED)lpnmh
#define MCXN_LOSEFOCUS (MCN_FIRST - 2)

typedef struct tagNMMCXSELCHANGED
{
	NMHDR	   hdr;
	SYSTEMTIME dateFrom;
	SYSTEMTIME dateTo;
} NMMCXSELCHANGED, * LPNMMCXSELCHANGED;

class CMiniCalendarCtrl :
	public CWindowImpl<CMiniCalendarCtrl>, 
	public COffscreenDraw<CMiniCalendarCtrl>
// ----------------------------------------------------------------------------
{
public:

	CMiniCalendarCtrl();

	BOOL IsDateSelected(const COleDateTime& date) const;
	SIZE GetMaxSize() const;
	SIZE GetMaxSize(UINT nCols, UINT nRows) const;

	SIZE GetLayout() const
		{ return CSize(m_nCols, m_nRows); }
	BOOL SetLayout(UINT nCols, UINT nRows);

	UINT GetFirstDayOfWeek() const
		{ return m_nFirstDayOfWeek; }
	BOOL SetFirstDayOfWeek(UINT nFirstDayOfWeek);

	void AutoSize();
	void AutoConfigure() { }

	BOOL EnsureVisible(const COleDateTime& date);
	
	BOOL EnsureVisible(const SYSTEMTIME& st)
	{
		m_dtSelect = st;
		return EnsureVisible(COleDateTime(st));
	}

	BOOL EnsureVisible(const SYSTEMTIME& From,const SYSTEMTIME& To)
	{
		COleDateTime date(From);
		m_nStartMonth = date.GetMonth();
		m_nStartYear = date.GetYear();
		m_dtSelect = From;
		m_dtAnchor = To;
		RedrawWindow();
		return TRUE;
	}

	BOOL ResetRange();

	void SetNotifyWindow(HWND hWnd)
	{
		hNotifyWindow = hWnd;
	}

	SYSTEMTIME GetSelectedDateTime() const
	{
		SYSTEMTIME st;
		m_dtSelect.GetAsSystemTime(st);
		return st;
	}

/*	void SetSelectedDateTime(const SYSTEMTIME& st)
	{
		m_dtSelect = st;
		Invalidate();
	}
*/
	DECLARE_WND_CLASS(_T("MiniCalendarCtrl"))

protected:

	BEGIN_MSG_MAP_EX(CMiniCalendarCtrl)
		MSG_WM_CREATE(OnCreate)

		MSG_WM_LBUTTONDOWN(OnLButtonDown)
		MSG_WM_LBUTTONUP(OnLButtonUp)
		MSG_WM_MOUSEMOVE(OnMouseMove)
		MSG_WM_CAPTURECHANGED(OnCaptureChanged)
		MSG_WM_TIMER(OnTimer)
		MSG_WM_KILLFOCUS(OnKillFocus)
		MSG_WM_KEYDOWN(OnKeyDown)
		MSG_WM_STYLECHANGED(OnStyleChanged)
		MSG_WM_LBUTTONDBLCLK(OnDblClick)

		MESSAGE_HANDLER(WM_SYSCOLORCHANGE, OnSysSettingChanged)
		MESSAGE_HANDLER(WM_DEVMODECHANGE, OnSysSettingChanged)
		MESSAGE_HANDLER(WM_FONTCHANGE, OnSysSettingChanged)
		MESSAGE_HANDLER(WM_TIMECHANGE, OnSysSettingChanged)

		CHAIN_MSG_MAP(COffscreenDraw<CMiniCalendarCtrl>)
	END_MSG_MAP()

	LRESULT OnCreate(LPCREATESTRUCT lpcs);
	LRESULT OnStyleChanged(UINT nType, LPSTYLESTRUCT lpss);

	LRESULT OnLButtonDown(UINT nFlags, CPoint point);
	LRESULT OnLButtonUp(UINT nFlags, CPoint point);
	LRESULT OnMouseMove(UINT nFlags, CPoint point);
	LRESULT OnCaptureChanged(HWND hWnd);
	LRESULT OnTimer(UINT nID, TIMERPROC fnProc);

	LRESULT OnSysSettingChanged(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
	{
		RedrawWindow();
		return FALSE;
	}

	void DoPaint(CDCHandle dc);

	LRESULT OnKillFocus(HWND hWnd)
	{		
		NMHDR nmh;
		nmh.code = MCXN_LOSEFOCUS;
		nmh.hwndFrom = m_hWnd;
		nmh.idFrom = GetDlgCtrlID();

		::SendMessage(hNotifyWindow,WM_NOTIFY, nmh.idFrom, (LPARAM)&nmh);
		SetMsgHandled(FALSE);
		return 0;
	}

	LRESULT OnKeyDown(TCHAR c,UINT RepeatCount,UINT)
	{
		switch(c){
		case VK_ESCAPE:
		case VK_RETURN:
			{
				NMHDR nmh;
				nmh.code = MCXN_LOSEFOCUS;
				nmh.hwndFrom = m_hWnd;
				nmh.idFrom = GetDlgCtrlID();

				::SendMessage(hNotifyWindow,WM_NOTIFY, nmh.idFrom, (LPARAM)&nmh);
			}
		}
		SetMsgHandled(FALSE);
		return 0;
	}

	LRESULT OnDblClick(UINT uiKeys,POINT p)
	{
		NMHDR nmh;
		nmh.code = MCXN_LOSEFOCUS;
		nmh.hwndFrom = m_hWnd;
		nmh.idFrom = GetDlgCtrlID();

		::SendMessage(hNotifyWindow,WM_NOTIFY, nmh.idFrom, (LPARAM)&nmh);
		SetMsgHandled(FALSE);
		return 0;
	}
protected:

	enum
	{
		htHeader = 0x0100,
		htDate   = 0x0200,
		htButton = 0x0400,
		htBack   = 0x0001,
		htNext   = 0x0002,
		htToday  = 0x0004,
		htNone   = 0x0008
	};

	struct HitTestInfo
	{
		POINT        ptHit;
		UINT         nFlags;
		int          nCol;
		int          nRow;
		COleDateTime dtHit;
	};

	// Metrics
	void RecalcLayout();
	void GetMaxTextExtent(CDCHandle dc, SIZE& size);

	// Interaction
	BOOL HitTest(HitTestInfo& ht);
	void DoScroll(UINT nFlags, int nMonths = 1);
	void NotifySelChanged();
	void NotifyParent(UINT nCode, LPNMHDR lpnmh);

	// Rendering
	// These should only be called from DoPaint - they rely on SaveDC/RestoreDC
	// to restore GDI objects!
	void DrawBorder(CDCHandle dc, CRect& rectClient);
	int  DrawHeader(CDCHandle dc, CPoint pt, int nCol, int nRow);
	int  DrawDaysOfWeek(CDCHandle dc, CPoint pt, int nCol, int nRow);
	int  DrawDays(CDCHandle dc, CPoint pt, int nCol, int nRow);

	void CreateFont(int nFont);
	void SelectFont(CDCHandle dc, int nFont);

	// State
	void ApplyStyle(DWORD dwStyle);

	// Utilities
	COleDateTime GetFirstDayInCell(int nCol, int nRow) const;
	COleDateTime GetMonthFromCell(int nCol, int nRow) const;
	CString      GetDayOfWeekName(int nDayOfWeek) const;

private:

	enum
	{
		FontHeader,
		FontDayName,
		FontDayNumber,
		FontSpecialDayNumber
	};

	struct FontInfo
	{
		FontInfo();

		CString  strFaceName;
		COLORREF crColor;
		int      nFontSize;
		BOOL     bBold:1;
		BOOL     bItalic:1;
		BOOL     bUnderline:1;
		CFont	 font;
	};

	// GDI resources
	COLORREF m_crBack;
	FontInfo m_font[4];

	// Layout
	int  m_nCols;
	int  m_nRows;
	int  m_nFirstDayOfWeek;	// 1-based (1-7; Sunday=1)
	int  m_nStartMonth;		// 1-based (1-12)
	int  m_nStartYear;
	int  m_nMonthsToScroll;	// Used when scrolling with arrows

	// Styles
	BOOL m_bShow3dBorder:1;
	BOOL m_bShowNonMonthDays:1;
	BOOL m_bHighlightToday:1;
	BOOL m_bMultiSelEnabled:1;

	// UI metrics (calculated in RecalcLayout)
	SIZE m_cellSize;		// Dimensions of a calendar for a month (incl. header)
	SIZE m_daySpace;		// Spacing between dates
	SIZE m_dateSize;		// Size of an individual date
	UINT m_cyHeader;		// Header height
	UINT m_cyDayNames;		// Height of weekday names
	UINT m_xCol;			// Offset of first column from left of cell

	// Interaction tracking
	int          m_nActiveElement;
	COleDateTime m_dtAnchor;
	COleDateTime m_dtSelect;

	HWND hNotifyWindow;
};
// ----------------------------------------------------------------------------

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91玉足脚交白嫩脚丫在线播放| 天堂久久一区二区三区| 欧美va天堂va视频va在线| 色狠狠色狠狠综合| 91丝袜呻吟高潮美腿白嫩在线观看| 激情欧美日韩一区二区| 国产一区二区精品在线观看| 久久99精品久久久久久| 国产美女视频一区| 成熟亚洲日本毛茸茸凸凹| 国产精品一线二线三线精华| 国产老肥熟一区二区三区| 高清不卡一区二区| 欧美年轻男男videosbes| 91久久香蕉国产日韩欧美9色| 99视频精品全部免费在线| 91欧美激情一区二区三区成人| 在线精品视频小说1| 欧美日韩国产一级| 日韩欧美在线123| 久久精品欧美日韩精品| 国产精品人成在线观看免费| 精品91自产拍在线观看一区| 中文字幕乱码亚洲精品一区| 亚洲乱码日产精品bd| 亚洲国产欧美在线| 久久精品国产在热久久| 国产伦精品一区二区三区视频青涩| 国产99一区视频免费| 在线这里只有精品| 2017欧美狠狠色| 日韩久久一区二区| 亚洲成av人在线观看| 久久精品国产秦先生| eeuss影院一区二区三区| 欧美在线看片a免费观看| 夜夜嗨av一区二区三区四季av| 蜜桃视频在线一区| 国内精品第一页| 99精品视频中文字幕| 中文字幕国产一区| 欧美一区二区三区四区在线观看| 国产欧美一区视频| av电影在线观看不卡| 亚洲免费大片在线观看| 精品视频999| 天堂av在线一区| 精品免费日韩av| 国产在线播放一区二区三区| 亚洲国产精品黑人久久久| 99麻豆久久久国产精品免费优播| 亚洲精品日韩综合观看成人91| 99久久99精品久久久久久| 亚洲国产一区视频| 精品乱人伦一区二区三区| 国产不卡视频在线播放| 亚洲美女淫视频| 日韩一区二区三区免费观看| 国产一区二区在线观看视频| 国产精品久久久久久亚洲毛片| 在线视频你懂得一区二区三区| 日日夜夜一区二区| 26uuu亚洲| 色悠悠久久综合| 日韩不卡免费视频| 欧美国产在线观看| 欧美日韩精品专区| 成人国产在线观看| 日韩国产欧美一区二区三区| 国产午夜亚洲精品午夜鲁丝片| 色综合天天综合网天天狠天天| 免费久久99精品国产| 136国产福利精品导航| 91精品婷婷国产综合久久性色| 国产suv精品一区二区6| 亚洲精品中文在线观看| 亚洲精品一区二区三区影院| 色婷婷久久一区二区三区麻豆| 精品一区二区三区av| 亚洲精品水蜜桃| 国产亚洲欧美激情| 欧美日本一区二区| 波多野结衣中文字幕一区| 青草av.久久免费一区| 一区二区成人在线观看| 久久日韩精品一区二区五区| 欧美日韩精品欧美日韩精品| 成人国产视频在线观看| 久久疯狂做爰流白浆xx| 五月婷婷另类国产| 亚洲欧美激情在线| 国产欧美中文在线| 精品久久99ma| 欧美一区二区在线免费观看| 色综合久久66| 91色.com| www.爱久久.com| 国产成人免费网站| 国产盗摄精品一区二区三区在线| 亚洲123区在线观看| 一区二区三区四区在线播放| 国产精品嫩草99a| 国产亚洲1区2区3区| 精品久久久三级丝袜| 91麻豆精品国产自产在线| 91电影在线观看| 99久久国产综合精品女不卡| 成人性生交大片免费| 国产99一区视频免费| 国产成人综合精品三级| 国产乱子轮精品视频| 国产精选一区二区三区| 国产一区二区三区在线观看精品 | 国产成人亚洲精品狼色在线| 免费人成黄页网站在线一区二区 | 国产精品国产三级国产aⅴ无密码| 欧美va亚洲va| 久久一夜天堂av一区二区三区| 精品少妇一区二区| 精品欧美一区二区久久| 久久人人爽人人爽| 国产精品毛片高清在线完整版| 中文字幕乱码日本亚洲一区二区| 国产精品视频一二三区| 国产精品久久久久久久第一福利| 亚洲图片欧美激情| 亚洲成在人线免费| 美女视频黄免费的久久| 精品无人码麻豆乱码1区2区| 丁香亚洲综合激情啪啪综合| 成人美女在线视频| 色综合久久九月婷婷色综合| 欧美日韩一区国产| 精品美女一区二区| 国产精品每日更新| 天天操天天干天天综合网| 久久国产剧场电影| av不卡免费在线观看| 欧洲日韩一区二区三区| 欧美一区二区精品| 国产精品美女久久久久久久网站| 亚洲欧美日本在线| 日韩成人精品在线| 大白屁股一区二区视频| 欧美精品vⅰdeose4hd| www国产精品av| 亚洲另类中文字| 久久99精品国产麻豆婷婷洗澡| 成人av在线一区二区三区| 欧美三级日韩在线| 久久精品在线观看| 亚洲二区在线观看| 国产成人av福利| 欧美午夜精品理论片a级按摩| 久久亚区不卡日本| 亚洲一卡二卡三卡四卡无卡久久 | 国产**成人网毛片九色| 色综合久久综合网| 国产偷国产偷精品高清尤物 | 欧洲在线/亚洲| 久久婷婷国产综合精品青草| 亚洲一区二区三区不卡国产欧美| 久久国产三级精品| 欧美性色欧美a在线播放| 久久免费精品国产久精品久久久久| 一区二区三国产精华液| 国产成人a级片| 日韩区在线观看| 一区二区三区欧美视频| 国产不卡视频在线播放| 欧美变态tickle挠乳网站| 一区二区三区四区在线| 国产**成人网毛片九色 | 国产盗摄精品一区二区三区在线| 91精品国产综合久久久蜜臀粉嫩 | 黄一区二区三区| 欧美精品一卡两卡| 亚洲美女免费视频| eeuss鲁一区二区三区| 久久久久久久久久久久电影| 日韩高清在线不卡| 欧美在线观看视频一区二区 | 免费不卡在线视频| 欧美日韩激情一区二区| 自拍偷在线精品自拍偷无码专区 | 久久成人免费网| 欧美日韩国产成人在线91| 亚洲色图视频网站| 99久久er热在这里只有精品15| 欧美一区二区三区免费观看视频| 中文字幕av一区二区三区| 国产在线观看一区二区 | 国产成人在线看| 亚洲欧洲一区二区三区| 色吊一区二区三区| 老司机精品视频线观看86| 欧美一区二区福利在线| 久久99热这里只有精品| 久久久www成人免费毛片麻豆| 色综合久久中文字幕综合网|