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

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

?? tabbedmdisave.h

?? These listed libraries are written in WTL. But it s really hard to mix both MFC & WTL together. Obvi
?? H
?? 第 1 頁 / 共 2 頁
字號:
	CTabbedMDIChildModifiedItem();

	BEGIN_COM_MAP(CTabbedMDIChildModifiedItem)
		COM_INTERFACE_ENTRY(ITabbedMDIChildModifiedItem)
	END_COM_MAP()

	DECLARE_PROTECT_FINAL_CONSTRUCT()

	HRESULT FinalConstruct();
	void FinalRelease();

// ITabbedMDIChildModifiedItem
public:
	STDMETHOD(get_Window)(
		HWND* window);
	STDMETHOD(put_Window)(
		HWND window);

	STDMETHOD(get_Name)(
		BSTR* name);
	STDMETHOD(put_Name)(
		const wchar_t* name);

	STDMETHOD(get_DisplayName)(
		BSTR* displayName);
	STDMETHOD(put_DisplayName)(
		const wchar_t* displayName);

	STDMETHOD(get_Description)(
		BSTR* description);
	STDMETHOD(put_Description)(
		const wchar_t* description);

	STDMETHOD(get_LastModifiedUTC)(
		DATE* lastModified);
	STDMETHOD(put_LastModifiedUTC)(
		DATE lastModified);

	STDMETHOD(get_Icon)(
		HICON* icon);
	STDMETHOD(put_Icon)(
		HICON icon);

	STDMETHOD(get_UserData)(
		IUnknown** userData);
	STDMETHOD(putref_UserData)(
		IUnknown* userData);

	STDMETHOD(get_ParentList)(
		ITabbedMDIChildModifiedList** parentList);
	STDMETHOD(putref_ParentList)(
		ITabbedMDIChildModifiedList* parentList);

	STDMETHOD(get_SubItems)(
		ITabbedMDIChildModifiedList** subItems);

	STDMETHOD(CopyTo)(
		ITabbedMDIChildModifiedItem* destination);

// Methods not exposed over iterface:
public:
	STDMETHOD(InitNew)(HWND window,
		const wchar_t* name, const wchar_t* displayName, const wchar_t* description,
		DATE lastModified, HICON icon);

protected:
	HWND     m_window;
	ATL::CComBSTR m_name;
	ATL::CComBSTR m_displayName;
	ATL::CComBSTR m_description;
	DATE     m_lastModified;
	HICON    m_icon;
	ATL::CComPtr<IUnknown> m_userData;

	// We keep a strong reference to the sub item list,
	// and the sub item list keeps a weak reference to us
	// (to avoid circular reference)
	ATL::CComPtr<ITabbedMDIChildModifiedList> m_subItems;

	// We keep a weak reference to our parent list,
	// and the parent list keeps a strong reference to us.
	// One implication is that an item can only belong
	// to one parent.  To allow an item to belong to multiple
	// parents, update the code related to setting the parent.
	ITabbedMDIChildModifiedList* m_parentList;

};

/////////////////////////////////////////////////////////////////////////////
// Global functions
HRESULT CreateTabbedMDIChildModifiedList(ITabbedMDIChildModifiedList** list);
HRESULT CreateTabbedMDIChildModifiedItem(HWND window,
	const wchar_t* name, const wchar_t* displayName, const wchar_t* description,
	DATE lastModified, HICON icon,
	ITabbedMDIChildModifiedItem** item);
HRESULT CreateEmptyTabbedMDIChildModifiedItem(ITabbedMDIChildModifiedItem** item);


/////////////////////////////////////////////////////////////////////////////
// CSaveModifiedItemsDialog
class CSaveModifiedItemsDialog :
	//public ATL::CDialogImpl<CSaveModifiedItemsDialog>,
	public DynamicDialog::CDynamicDialogImpl<CSaveModifiedItemsDialog>,
	public WTL::CDialogResize<CSaveModifiedItemsDialog>
{
protected:
	//typedef ATL::CDialogImpl<CSaveModifiedItemsDialog> baseClass;
	typedef DynamicDialog::CDynamicDialogImpl<CSaveModifiedItemsDialog> baseClass;
	typedef WTL::CDialogResize<CSaveModifiedItemsDialog> resizeClass;

// Public enumarations
public:
	enum DialogControlIds
	{
		_IDC_LIST = 1000,
	};

	enum CheckState
	{
		eCheckState_Unchecked = INDEXTOSTATEIMAGEMASK(1),
		eCheckState_Checked = INDEXTOSTATEIMAGEMASK(2),
		eCheckState_Indeterminate = INDEXTOSTATEIMAGEMASK(3),
	};

	enum ColumnIndex
	{
		eColumn_Name         = 0,
		eColumn_Description  = 1,
		eColumn_LastModified = 2,

		eColumn_Last         = eColumn_LastModified,
		eColumn_Count        = eColumn_Last + 1,
	};

	enum Constants
	{
		eMinimumColumnWidth  = 40
	};

// Constructors
public:
	CSaveModifiedItemsDialog(ITabbedMDIChildModifiedList* list = NULL, bool canCancel = true);
	virtual ~CSaveModifiedItemsDialog();

// Public Methods (Call before DoModal)
public:
	bool HideColumn(ColumnIndex column);

// Message Handling
public:
	//enum { IDD = IDD_SAVEMODIFIEDFILES };

	BEGIN_MSG_MAP(CSaveModifiedItemsDialog)
		MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
		MESSAGE_HANDLER(WM_DESTROY, OnDestroy)

		COMMAND_ID_HANDLER(IDYES, OnYes)
		COMMAND_ID_HANDLER(IDNO, OnEndDialog)
		COMMAND_ID_HANDLER(IDCANCEL, OnEndDialog)

		NOTIFY_CODE_HANDLER(LVN_INSERTITEM, OnListViewInsertItem)
		NOTIFY_CODE_HANDLER(LVN_DELETEITEM, OnListViewDeleteItem)
		NOTIFY_CODE_HANDLER(LVN_KEYDOWN, OnListViewKeyDownToToggleCheck)
		NOTIFY_CODE_HANDLER(NM_CLICK, OnListViewClickToToggleCheck)
		NOTIFY_CODE_HANDLER(NM_DBLCLK, OnListViewClickToToggleCheck)

		CHAIN_MSG_MAP(resizeClass)
	ALT_MSG_MAP(1)
		// List View Control Messages
		MESSAGE_HANDLER(WM_ERASEBKGND, OnListViewEraseBackground)
		MESSAGE_HANDLER(WM_PAINT, OnListViewPaint)
		MESSAGE_HANDLER(WM_PRINTCLIENT, OnListViewPaint)

		NOTIFY_CODE_HANDLER(HDN_BEGINTRACKA, OnHeaderBeginTrack)
		NOTIFY_CODE_HANDLER(HDN_BEGINTRACKW, OnHeaderBeginTrack)
		NOTIFY_CODE_HANDLER(HDN_TRACKA, OnHeaderTrack)
		NOTIFY_CODE_HANDLER(HDN_TRACKW, OnHeaderTrack)
		NOTIFY_CODE_HANDLER(HDN_ENDTRACKA, OnHeaderEndTrack)
		NOTIFY_CODE_HANDLER(HDN_ENDTRACKW, OnHeaderEndTrack)
		NOTIFY_CODE_HANDLER(HDN_ITEMCHANGINGA, OnHeaderItemChanging)
		NOTIFY_CODE_HANDLER(HDN_ITEMCHANGINGW, OnHeaderItemChanging)
		NOTIFY_CODE_HANDLER(HDN_DIVIDERDBLCLICKA, OnHeaderDividerDoubleClick)
		NOTIFY_CODE_HANDLER(HDN_DIVIDERDBLCLICKW, OnHeaderDividerDoubleClick)
	END_MSG_MAP()

	BEGIN_DLGRESIZE_MAP(CSaveModifiedItemsDialog)
		DLGRESIZE_CONTROL(_IDC_LIST, (DLSZ_SIZE_X | DLSZ_SIZE_Y))

		DLGRESIZE_CONTROL(IDYES, (DLSZ_MOVE_X | DLSZ_MOVE_Y))
		DLGRESIZE_CONTROL(IDNO, (DLSZ_MOVE_X | DLSZ_MOVE_Y))
		DLGRESIZE_CONTROL(IDCANCEL, (DLSZ_MOVE_X | DLSZ_MOVE_Y))
	END_DLGRESIZE_MAP()

// Handler prototypes (uncomment arguments if needed):
//	LRESULT MessageHandler(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
//	LRESULT CommandHandler(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
//	LRESULT NotifyHandler(int /*idCtrl*/, LPNMHDR /*pnmh*/, BOOL& /*bHandled*/)

	LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
	LRESULT OnDestroy(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);

	LRESULT OnYes(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
	LRESULT OnEndDialog(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);

	LRESULT OnListViewInsertItem(int idCtrl, LPNMHDR pnmh, BOOL& bHandled);
	LRESULT OnListViewDeleteItem(int idCtrl, LPNMHDR pnmh, BOOL& bHandled);
	LRESULT OnListViewKeyDownToToggleCheck(int idCtrl, LPNMHDR pnmh, BOOL& bHandled);
	LRESULT OnListViewClickToToggleCheck(int idCtrl, LPNMHDR pnmh, BOOL& bHandled);

	LRESULT OnListViewEraseBackground(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
	LRESULT OnListViewPaint(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);

	LRESULT OnHeaderBeginTrack(int idCtrl, LPNMHDR pnmh, BOOL& bHandled);
	LRESULT OnHeaderTrack(int idCtrl, LPNMHDR pnmh, BOOL& bHandled);
	LRESULT OnHeaderEndTrack(int idCtrl, LPNMHDR pnmh, BOOL& bHandled);
	LRESULT OnHeaderItemChanging(int idCtrl, LPNMHDR pnmh, BOOL& bHandled);
	LRESULT OnHeaderDividerDoubleClick(int idCtrl, LPNMHDR pnmh, BOOL& bHandled);

// CDialogResize overrides
public:
	void DlgResize_UpdateLayout(int cxWidth, int cyHeight);

// DynamicDialog::CDynamicDialogImpl overrides
public:
	bool ConstructDialogResource(void);

protected:
	bool InitializeControls(void);
	bool InitializeValues(void);
	bool InitializeColumns(void);
	int AutoHideUnusedColumns(void);
	bool FindUsedColumns(ITabbedMDIChildModifiedList* list, int columnUseCount[eColumn_Count]);
	bool AddItems(ITabbedMDIChildModifiedList* list, int indent);
	_CSTRING_NS::CString FormatLastModifiedDateString(DATE lastModifiedUTC);
	IUnknown* GetIUnknownForItem(int index);
	int FindItemIndex(ITabbedMDIChildModifiedItem* item);
	int FindParentIndex(int item);
	void ToggleCheckState(int item);
	void SetTristateCheckState(int item, CheckState checkState);
	CheckState GetTristateCheckState(int item);
	void UpdateParentCheckState(int item, CheckState checkState);
	void CreateDefaultImages(void);
	void CreateDefaultStateImages(void);
	int AddCheckStateImage(HDC dcScreen, int cx, int cy, enum CheckState checkState);

// Members
protected:
	ATL::CComPtr<ITabbedMDIChildModifiedList> m_modifiedList;
	bool m_canCancel;
	bool m_haveAtLeastOneModifiedDate;

	ATL::CContainedWindowT<WTL::CListViewCtrl> m_list;
	WTL::CHeaderCtrl m_header;
	WTL::CImageList m_images;
	WTL::CImageList m_stateImages;
	HICON m_dialogIcon;

	int m_imageUnchecked;
	int m_imageChecked;
	int m_imageIndeterminate;

	int m_trackColumnWidth;
	int m_trackColumnIndex;
	ColumnIndex m_lastVisibleColumn;

	bool m_showColumn[eColumn_Count];

};

#endif // WTL_TABBED_MDI_SAVE_IMPLEMENTATION

#endif // __TabbedMDISave_h__

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
aaa亚洲精品| 精品一二线国产| 国产亚洲1区2区3区| 91精品国产入口在线| 91国偷自产一区二区三区观看 | 一本色道综合亚洲| 91一区二区三区在线播放| 成人黄色大片在线观看| 成人av在线看| 在线电影一区二区三区| 欧美日韩国产小视频在线观看| 欧美亚洲自拍偷拍| 欧美日韩一区视频| 欧美一级专区免费大片| 日韩三级高清在线| 久久久天堂av| 亚洲视频狠狠干| 亚洲激情自拍视频| 男男视频亚洲欧美| 国产精品 欧美精品| av亚洲精华国产精华精华| 日本道精品一区二区三区| 欧美巨大另类极品videosbest| 日韩欧美国产麻豆| 国产精品女主播在线观看| 亚洲一区二区精品视频| 美女在线一区二区| av不卡在线播放| 欧美美女直播网站| 久久久久久毛片| 亚洲欧洲制服丝袜| 免费成人av在线播放| 成人丝袜高跟foot| 精品视频一区二区三区免费| 精品久久久久久综合日本欧美| 国产精品私房写真福利视频| 亚洲电影第三页| 国产在线视频一区二区| 99国产精品久久久久久久久久久| 91精品黄色片免费大全| 亚洲国产精品二十页| 视频在线观看国产精品| 成人免费视频免费观看| 9191成人精品久久| 中文字幕日本乱码精品影院| 日本不卡一二三| 91玉足脚交白嫩脚丫在线播放| 日韩免费性生活视频播放| 1区2区3区国产精品| 久久99精品国产.久久久久久| 一本色道综合亚洲| 中文字幕在线不卡一区二区三区| 日本 国产 欧美色综合| 日本韩国精品在线| 国产精品美女一区二区在线观看| 美日韩黄色大片| 制服丝袜激情欧洲亚洲| 亚洲人吸女人奶水| 成人av资源在线| 久久久久久久久蜜桃| 久久精品国产亚洲高清剧情介绍| 日本道精品一区二区三区| 欧美韩国一区二区| 国产精品888| 欧美α欧美αv大片| 日韩高清电影一区| 69堂亚洲精品首页| 午夜精品免费在线观看| 欧美亚洲动漫精品| 亚洲综合一区二区精品导航| 成人国产免费视频| 中文字幕欧美激情| 成人午夜看片网址| 国产亚洲人成网站| 国产成人av一区二区三区在线观看| 欧美一卡在线观看| 麻豆精品国产91久久久久久| 欧美精品视频www在线观看 | 亚洲bdsm女犯bdsm网站| 99久久国产综合精品女不卡| 欧美国产精品中文字幕| 成人在线视频一区二区| 中文字幕乱码日本亚洲一区二区 | 成人一级片在线观看| 国产女人aaa级久久久级| 成人在线综合网| 中文字幕中文字幕一区二区| 色综合网色综合| 亚洲精品写真福利| 色偷偷久久人人79超碰人人澡| 亚洲色图.com| 欧美人妖巨大在线| 蜜桃av噜噜一区| 国产欧美一区二区三区沐欲| 粉嫩av一区二区三区| 亚洲欧美视频在线观看视频| 在线日韩av片| 麻豆久久久久久久| 中文字幕不卡三区| 在线视频中文字幕一区二区| 日本中文一区二区三区| 337p日本欧洲亚洲大胆色噜噜| 成人永久aaa| 亚洲国产精品一区二区久久 | 国产乱人伦偷精品视频不卡| 亚洲国产成人在线| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 激情五月播播久久久精品| 久久影院电视剧免费观看| 本田岬高潮一区二区三区| 亚洲一区二区在线播放相泽| 欧美一级一区二区| 9人人澡人人爽人人精品| 天天综合色天天| 国产精品久久久久三级| 91精品婷婷国产综合久久 | 中文字幕高清一区| 欧美日韩成人综合在线一区二区| 国产中文字幕精品| 亚洲成人精品影院| 国产精品二三区| 欧美成人a在线| 欧美伊人精品成人久久综合97| 国产一区二区不卡| 亚洲一区免费观看| 国产精品久久福利| 久久久91精品国产一区二区三区| 欧美午夜精品免费| 不卡的av中国片| 国产原创一区二区| 日韩av在线发布| 亚洲一区免费在线观看| 国产精品视频一区二区三区不卡| 欧美一区二区二区| 欧美日韩精品免费观看视频| 97精品电影院| voyeur盗摄精品| 国产成a人无v码亚洲福利| 美女视频第一区二区三区免费观看网站| 亚洲欧美一区二区三区极速播放 | 亚洲精品成人悠悠色影视| 国产无一区二区| 精品国产乱码久久久久久闺蜜| 欧美日韩国产区一| 欧美性生交片4| 91麻豆视频网站| 色综合天天性综合| 9久草视频在线视频精品| 成人久久视频在线观看| 国产福利一区在线观看| 国产在线观看免费一区| 久久99国产乱子伦精品免费| 日本成人中文字幕在线视频| 日本视频在线一区| 美女在线一区二区| 国产露脸91国语对白| 国产精品1区2区3区在线观看| 国内精品自线一区二区三区视频| 久草在线在线精品观看| 韩国中文字幕2020精品| 国产在线不卡一区| 粉嫩一区二区三区性色av| 粉嫩aⅴ一区二区三区四区 | 一区二区三区丝袜| 亚洲一区在线电影| 日本午夜精品一区二区三区电影| 免费精品视频最新在线| 久久99久国产精品黄毛片色诱| 国产一区二区免费看| 国产精品一级在线| 91视频在线观看| 欧美日韩二区三区| 久久人人97超碰com| 国产精品国产三级国产| 亚洲靠逼com| 美女任你摸久久| 成人免费av在线| 欧美亚洲综合在线| 日韩免费高清av| 中文字幕一区在线观看| 亚洲精品成人精品456| 日本不卡视频在线观看| 国产成人av网站| 欧美三级视频在线播放| 欧美刺激午夜性久久久久久久| 中文一区在线播放| 亚洲国产视频一区| 国产成人在线免费| 欧美色图第一页| 国产视频视频一区| 日韩激情一二三区| 成人av在线观| 日韩精品一区二区三区三区免费 | 91高清视频在线| 精品日韩在线观看| 一级做a爱片久久| 国产一区二区免费在线| 欧美午夜一区二区| 国产精品久久久久久久浪潮网站 | 99re热这里只有精品免费视频|