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

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

?? listctrlstylesexdlg.cpp

?? 《MFC窗口程序設計》書籍源碼 詳細講解MFC框架程序設計
?? CPP
字號:
// ListCtrlStylesExDlg.cpp : implementation file
//
// Written by matt weagle (matt_weagle@hotmail.com)
// Copyright (c) 2000.
//
//
// This code may be used in compiled form in any way you desire. This
// file may be redistributed unmodified 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. If 
// the source code in  this file is used in any commercial application 
// then a simple email would be nice.
//
// This file is provided "as is" with no expressed or implied warranty.
// The author accepts no liability if it causes any damage whatsoever.
// Consider yourself lucky if it works, unlucky if it doesn't.
//
// Thanks to Chris Maunder (chris@codeproject.com) for the 
// foregoing disclaimer.
// 
// Please use and enjoy. Please let me know of any bugs/mods/improvements 
// that you have found/implemented and I will fix/incorporate them into this
// file. 
//
#include "stdafx.h"
#include "..\commonctrls.h"
#include "ListCtrlStylesExDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CListCtrlStylesExDlg dialog


CListCtrlStylesExDlg::CListCtrlStylesExDlg(CListCtrl *pListCtrl /*=NULL*/,CWnd* pParent /*=NULL*/)
	: CDialog(CListCtrlStylesExDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CListCtrlStylesExDlg)
	//}}AFX_DATA_INIT
	ASSERT(pListCtrl);
	m_pListCtrl = pListCtrl;
}


void CListCtrlStylesExDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CListCtrlStylesExDlg)
	DDX_Control(pDX, IDC_LIST_STYLES_EX, m_cListStylesEx);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CListCtrlStylesExDlg, CDialog)
	//{{AFX_MSG_MAP(CListCtrlStylesExDlg)
	ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST_STYLES_EX, OnItemchangedListStylesEx)
	//}}AFX_MSG_MAP
	ON_NOTIFY( LVN_GETINFOTIP, IDC_LIST_STYLES_EX, OnInfoTip )
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CListCtrlStylesExDlg message handlers

BOOL CListCtrlStylesExDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// Setup the list control
	CRect rect;
	m_cListStylesEx.GetClientRect(&rect);
	m_cListStylesEx.InsertColumn(0, _T("列表控件擴展風格"), LVCFMT_LEFT, rect.Width());
	ListView_SetExtendedListViewStyle(m_cListStylesEx.m_hWnd, LVS_EX_CHECKBOXES | LVS_EX_FULLROWSELECT | LVS_EX_INFOTIP);
	
	// Setup the list control
	m_dwStyles = m_pListCtrl->GetExtendedStyle();


	AddStyleItem( _T("LVS_EX_CHECKBOXES"), (m_dwStyles & LVS_EX_CHECKBOXES) != 0, LVS_EX_CHECKBOXES);
	AddStyleItem( _T("LVS_EX_FLATSB"), (m_dwStyles & LVS_EX_FLATSB) != 0, LVS_EX_FLATSB);
	AddStyleItem( _T("LVS_EX_FULLROWSELECT"), (m_dwStyles & LVS_EX_FULLROWSELECT) != 0, LVS_EX_FULLROWSELECT);
	AddStyleItem( _T("LVS_EX_GRIDLINES"), (m_dwStyles & LVS_EX_GRIDLINES) != 0, LVS_EX_GRIDLINES);
	AddStyleItem( _T("LVS_EX_HEADERDRAGDROP"), (m_dwStyles & LVS_EX_HEADERDRAGDROP) != 0, LVS_EX_HEADERDRAGDROP);
	AddStyleItem( _T("LVS_EX_INFOTIP"), (m_dwStyles & LVS_EX_INFOTIP) != 0, LVS_EX_INFOTIP);
	AddStyleItem( _T("LVS_EX_ONECLICKACTIVATE"), (m_dwStyles & LVS_EX_ONECLICKACTIVATE) != 0, LVS_EX_ONECLICKACTIVATE);
	AddStyleItem( _T("LVS_EX_SUBITEMIMAGES"), (m_dwStyles & LVS_EX_SUBITEMIMAGES) != 0, LVS_EX_SUBITEMIMAGES);
	AddStyleItem( _T("LVS_EX_TRACKSELECT"), (m_dwStyles & LVS_EX_TRACKSELECT) != 0, LVS_EX_TRACKSELECT);
	AddStyleItem( _T("LVS_EX_TWOCLICKACTIVATE"), (m_dwStyles & LVS_EX_TWOCLICKACTIVATE) != 0, LVS_EX_TWOCLICKACTIVATE);
	AddStyleItem( _T("LVS_EX_UNDERLINECOLD"), (m_dwStyles & LVS_EX_UNDERLINECOLD) != 0, LVS_EX_UNDERLINECOLD);
	AddStyleItem( _T("LVS_EX_UNDERLINEHOT"), (m_dwStyles & LVS_EX_UNDERLINEHOT) != 0, LVS_EX_UNDERLINEHOT);


	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}


/////////////////////////////////////////////////////////////////////////////
/*
	AddStyleItem

	Helper function to insert the items into the list control.  Shows
	how to use CListCtrl::InsertItem without using the LVITEM 
	struct.
  
	Params
		lpszItem	Item text
		bState		Should the item have a check mark?
		dwData		Data to associate with item
	
	Returns 
		void
*/
/////////////////////////////////////////////////////////////////////////////
void CListCtrlStylesExDlg::AddStyleItem(LPCTSTR lpszItem, BOOL bState, DWORD dwData)
{
	int nPos = max(m_cListStylesEx.GetItemCount(),0);
	nPos = m_cListStylesEx.InsertItem(nPos, lpszItem);
	m_cListStylesEx.SetItemData(nPos, dwData);

	// Use macro to set check state
	ListView_SetItemState (m_cListStylesEx.m_hWnd, nPos, UINT((int(bState) + 1) << 12), LVIS_STATEIMAGEMASK);

}


/////////////////////////////////////////////////////////////////////////////
/*
	OnInfoTip

	This is a hand-entered handler for the LVN_GETINFOTIP WM_NOTIFY message
	which we enabled by including LVS_EX_INFOTIP in the extended style
	bits of the list control.  When this style bit is enabled, it sends 
	the parent window a LVN_GETINFOTIP message with a pointer to a 
	LVGETINFOTIP struct.  We populate the pszParam of this struct with 
	documentation for the item selected.  A more robust implementation might 
	associate the data member of each list control item with a string 
	allocated on the heap or some user defined struct.
  
	Params
		<Standard>
	
	Returns 
		void
*/
/////////////////////////////////////////////////////////////////////////////
void CListCtrlStylesExDlg::OnInfoTip( NMHDR * pNMHDR, LRESULT * pResult )
{
	NMLVGETINFOTIP*	pInfoTip = reinterpret_cast<NMLVGETINFOTIP*>(pNMHDR);
	ASSERT(pInfoTip);

	// Get the item data for this unit
	DWORD dwData = m_cListStylesEx.GetItemData(pInfoTip->iItem);
	
	// Addition strings for support of version information
	CString strVer47, strVer471;
	strVer47 = _T("  Supported in version 4.70+.");
	strVer471 = _T("  Supported in version 4.71+.");


	// Based on the flag value, show a tool tip with the information about this style bit
	CString strText;
	switch (dwData)
	{
	case LVS_EX_CHECKBOXES:
		strText = _T("Enables check boxes for items in a list view control."); strText += strVer47; break;
	case LVS_EX_FLATSB:
		strText = _T("Enables flat scroll bars in the list view. "); strText += strVer47;break;
	case LVS_EX_FULLROWSELECT:
		strText = _T("When an item is selected, the item and all its subitems are highlighted. This style is available only in conjunction with the LVS_REPORT style."); strText += strVer47;break;
	case LVS_EX_GRIDLINES:
		strText = _T("Displays gridlines around items and subitems. This style is available only in conjunction with the LVS_REPORT style."); strText += strVer47;break;
	case LVS_EX_HEADERDRAGDROP:
		strText = _T("Enables drag-and-drop reordering of columns in a list view control. This style is only available to list view controls that use the LVS_REPORT style."); strText += strVer47;break;
	case LVS_EX_INFOTIP:
		strText = _T("Enables a LVN_GETINFOTIP notification message to the parent window before displaying an item's tooltip."); strText += strVer471; break;
	case LVS_EX_ONECLICKACTIVATE:
		strText = _T("The list view control sends an LVN_ITEMACTIVATE notification message to the parent window when the user clicks an item.");strText += strVer47; break;
	case LVS_EX_SUBITEMIMAGES:
		strText = _T("Allows images to be displayed for subitems."); strText += strVer47;break;
	case LVS_EX_TRACKSELECT:
		strText = _T("Enables hot-track selection in a list view control.  Requires either LVS_EX_ONECLICKACTIVATE or LVS_EX_TWOCLICKACTIVATE."); strText += strVer47; break;
	case LVS_EX_TWOCLICKACTIVATE:
		strText = _T("The list view control sends an LVN_ITEMACTIVATE notification message to the parent window when the user double-clicks an item."); strText += strVer47; break;
	case LVS_EX_UNDERLINECOLD:
		strText = _T("Causes non-hot items that are activatable to be displayed with underlined text. This style requires that LVS_EX_TWOCLICKACTIVATE also be set."); strText += strVer471; break;	
	case LVS_EX_UNDERLINEHOT:
		strText = _T("Causes hot items that are activatable to be displayed with underlined text. This style requires that LVS_EX_ONECLICKACTIVATE or LVS_EX_TWOCLICKACTIVATE also be set."); strText += strVer471;break;	
	default:
		strText = _T("Unknown style option."); break;

	}


	// Copy it in the allocated buffer
	_tcsncpy(pInfoTip->pszText, (LPCTSTR)strText, pInfoTip->cchTextMax);

}



/////////////////////////////////////////////////////////////////////////////
/*
	OnItemchangedListStylesEx

	When the state of an item in the list control has changed, we need to 
	update the local copy of the style bits to apply to the list control
	window.  Also, depending on what items are checked in the list control,
	we pass control to EnableHotCursor() which is responsible for toggling
	the state of the dialog window.
  
	Params
		<Standard>
	
	Returns 
		void
*/
/////////////////////////////////////////////////////////////////////////////
void CListCtrlStylesExDlg::OnItemchangedListStylesEx(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
	BOOL bChecked = m_cListStylesEx.GetCheck(pNMListView->iItem);
	if (bChecked)
		m_dwStyles |= (pNMListView->lParam);
	else
		m_dwStyles &= ~(pNMListView->lParam);


	*pResult = 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美自拍偷拍| 亚洲私人黄色宅男| 欧美综合视频在线观看| 美女www一区二区| 亚洲激情中文1区| 欧美精品一区二区久久久| 91蝌蚪porny九色| 蜜臀av一区二区在线免费观看| 亚洲国产成人av| 色悠久久久久综合欧美99| 七七婷婷婷婷精品国产| 1024精品合集| 国产日韩欧美精品一区| 日韩一区二区在线免费观看| 色网站国产精品| 色综合天天综合色综合av| 国产精品亚洲а∨天堂免在线| 午夜成人免费视频| 偷拍日韩校园综合在线| 艳妇臀荡乳欲伦亚洲一区| 亚洲视频小说图片| 中文字幕在线一区| 中文字幕亚洲区| 日韩毛片高清在线播放| 国产精品美女久久福利网站| 久久精品网站免费观看| 日本一区二区三区在线观看| 久久久99久久| 亚洲人123区| 亚洲午夜三级在线| 男女视频一区二区| 日本欧美在线观看| 日韩精品一区二区三区视频在线观看 | 久久av老司机精品网站导航| 久久99热这里只有精品| 久久精品国产亚洲高清剧情介绍 | 99久久99精品久久久久久| 国产精品 欧美精品| av男人天堂一区| 欧美熟乱第一页| 欧美一区二区女人| 久久久蜜桃精品| 亚洲精品综合在线| 日韩国产欧美在线观看| 国产福利不卡视频| 日本精品一区二区三区高清 | 国产99一区视频免费| 99国内精品久久| 91麻豆精品国产综合久久久久久| 日韩欧美一区二区不卡| 亚洲精品一二三| 色综合久久天天综合网| 欧美精品高清视频| 国产精品少妇自拍| 久久不见久久见中文字幕免费| 成人成人成人在线视频| 亚洲精品一线二线三线无人区| 亚洲男帅同性gay1069| 国产一区二区三区黄视频 | 日欧美一区二区| 99久久伊人精品| 久久综合九色综合97婷婷女人| 中文字幕在线一区二区三区| 国产一区高清在线| 日韩三级av在线播放| 夜夜精品浪潮av一区二区三区| 国内精品免费**视频| 欧美一级高清片| 奇米精品一区二区三区在线观看一 | 欧美曰成人黄网| 亚洲摸摸操操av| 91免费视频观看| 亚洲精品国产精品乱码不99| 欧洲国内综合视频| 亚洲同性同志一二三专区| 国产1区2区3区精品美女| 国产丝袜欧美中文另类| 国产一区二区三区不卡在线观看 | 国产喂奶挤奶一区二区三区| 亚洲精品日产精品乱码不卡| 91在线小视频| 亚洲一二三四久久| 欧美老女人第四色| 久久精品999| 久久久www免费人成精品| 国产成人在线视频播放| 国产精品午夜在线观看| 成人av网在线| 亚洲gay无套男同| 欧美mv日韩mv| 色综合久久99| 美国十次综合导航| 欧美国产精品v| 欧美日韩一级大片网址| 麻豆精品一二三| 中文字幕一区二区三区在线不卡| 欧美亚洲一区二区在线| 国产一区二区影院| 国产亚洲一区二区三区在线观看| 成人黄色大片在线观看| 国产精品久久毛片a| 波多野洁衣一区| 亚洲国产视频一区| 欧美精品一区二区久久婷婷| 成人h动漫精品一区二区| 亚洲精品福利视频网站| 欧美一区二区久久久| 国产91精品一区二区麻豆网站| 国产精品久久久久9999吃药| 欧洲人成人精品| 国产大陆亚洲精品国产| 亚洲国产你懂的| 最近日韩中文字幕| 日韩美女天天操| 精品制服美女丁香| 亚洲影院在线观看| 国产精品人成在线观看免费| 欧美日韩aaaaa| 在线观看免费视频综合| 国产在线播放一区三区四| 亚洲成av人在线观看| 中文字幕乱码久久午夜不卡| 91精品久久久久久蜜臀| 色婷婷av久久久久久久| 成人av免费观看| 国产成人在线免费| 国产毛片精品一区| 蜜桃久久久久久| 日韩**一区毛片| 婷婷丁香久久五月婷婷| 亚洲综合色在线| 亚洲免费观看高清在线观看| 欧美一区二区大片| 欧美日韩一卡二卡| 色综合视频在线观看| 91小宝寻花一区二区三区| 国产a区久久久| 91丨九色丨蝌蚪富婆spa| 成人午夜免费电影| 国产精品一区专区| 不卡的看片网站| 欧洲一区二区av| 欧美日韩精品欧美日韩精品一综合| 欧洲精品在线观看| 欧美亚洲禁片免费| 欧美主播一区二区三区| 欧美一区二区国产| 精品国产91洋老外米糕| 久久久久久电影| 亚洲精品日韩一| 午夜激情久久久| 国产成人免费视频| 欧美色图一区二区三区| 在线播放国产精品二区一二区四区| 在线综合+亚洲+欧美中文字幕| 精品卡一卡二卡三卡四在线| 久久久影视传媒| 亚洲一区欧美一区| 国产中文一区二区三区| 91麻豆精品秘密| 精品国精品国产| 亚洲综合激情网| 久久成人麻豆午夜电影| 色婷婷国产精品综合在线观看| 欧美一二区视频| 亚洲欧美激情小说另类| 日韩国产欧美一区二区三区| 成人精品亚洲人成在线| 精品国产3级a| 婷婷久久综合九色综合绿巨人| 国产成人午夜电影网| 欧美日韩高清不卡| 亚洲色图欧洲色图| 成人精品鲁一区一区二区| 欧美一卡二卡在线| 亚洲综合久久久久| av男人天堂一区| 中文字幕av在线一区二区三区| 蜜臀精品久久久久久蜜臀| www.日韩精品| 国产欧美一区二区精品性| 国内精品国产成人| 91麻豆国产在线观看| 日本韩国欧美在线| 欧美一区2区视频在线观看| 亚洲va欧美va人人爽午夜| 95精品视频在线| 国产精品色一区二区三区| 成人中文字幕合集| 国产精品久久久久久久久久久免费看| 国产一区欧美日韩| 久久九九国产精品| 粉嫩13p一区二区三区| 国产精品麻豆久久久| 久久 天天综合| 久久无码av三级| 成人国产精品免费观看视频| 亚洲日本中文字幕区| 色屁屁一区二区| 日韩va亚洲va欧美va久久|