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

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

?? listctrlstylesdlg.cpp

?? MFC窗口程序設計源代碼。相信大家看得懂。
?? CPP
字號:
// ListCtrlStylesDlg.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 "ListCtrlStylesDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CListCtrlStylesDlg dialog


CListCtrlStylesDlg::CListCtrlStylesDlg(CListCtrl *pListCtrl /*=NULL*/,CTreeCtrl *pTreeCtrl/*=NULL*/, CWnd* pParent /*=NULL*/)
	: CDialog(CListCtrlStylesDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CListCtrlStylesDlg)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	ASSERT(pListCtrl);
	ASSERT(pTreeCtrl);
	
	m_pListCtrl = pListCtrl;
	m_pTreeCtrl=pTreeCtrl;

}


void CListCtrlStylesDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CListCtrlStylesDlg)
	DDX_Control(pDX, IDC_TREE_STYLES, m_cTreeStyles);
	DDX_Control(pDX, IDC_LIST_STYLES, m_cListStyles);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CListCtrlStylesDlg, CDialog)
	//{{AFX_MSG_MAP(CListCtrlStylesDlg)
	//}}AFX_MSG_MAP
	ON_NOTIFY( LVN_GETINFOTIP, IDC_LIST_STYLES, OnInfoTip )
	ON_NOTIFY( LVN_GETINFOTIP, IDC_TREE_STYLES, OnTreeInfoTip )
END_MESSAGE_MAP()



/////////////////////////////////////////////////////////////////////////////
// CListCtrlStylesDlg message handlers

BOOL CListCtrlStylesDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// Setup the list control
	CRect rect;
	m_cListStyles.GetClientRect(&rect);
	m_cListStyles.InsertColumn(0, _T("列表控件風格"), LVCFMT_LEFT, rect.Width());

	ListView_SetExtendedListViewStyle(m_cListStyles.m_hWnd, LVS_EX_CHECKBOXES | LVS_EX_FULLROWSELECT | LVS_EX_INFOTIP);
	
	
	// Setup the list control
	DWORD dwStyles = m_pListCtrl->GetStyle();

	AddStyleItem( _T("LVS_ALIGNLEFT"), (dwStyles & LVS_ALIGNLEFT) != 0, LVS_ALIGNLEFT);
	AddStyleItem( _T("LVS_ALIGNTOP"), (dwStyles & LVS_ALIGNTOP) != 0, LVS_ALIGNTOP);
	AddStyleItem( _T("LVS_AUTOARRANGE"), (dwStyles & LVS_AUTOARRANGE) != 0, LVS_AUTOARRANGE);
	AddStyleItem( _T("LVS_NOCOLUMNHEADER"), (dwStyles & LVS_NOCOLUMNHEADER) != 0, LVS_NOCOLUMNHEADER);
	AddStyleItem( _T("LVS_NOLABELWRAP"), (dwStyles & LVS_NOLABELWRAP) != 0, LVS_NOLABELWRAP);
	AddStyleItem( _T("LVS_NOSCROLL"), (dwStyles & LVS_NOSCROLL) != 0, LVS_NOSCROLL);
	AddStyleItem( _T("LVS_NOSORTHEADER"), (dwStyles & LVS_NOSORTHEADER) != 0, LVS_NOSORTHEADER);
	AddStyleItem( _T("LVS_SHOWSELALWAYS"), (dwStyles & LVS_SHOWSELALWAYS) != 0, LVS_SHOWSELALWAYS);
	AddStyleItem( _T("LVS_SINGLESEL"), (dwStyles & LVS_SINGLESEL) != 0, LVS_SINGLESEL);
	AddStyleItem( _T("LVS_SORTASCENDING"), (dwStyles & LVS_SORTASCENDING) != 0, LVS_SORTASCENDING);
	AddStyleItem( _T("LVS_SORTDESCENDING"), (dwStyles & LVS_SORTDESCENDING) != 0, LVS_SORTDESCENDING);


	//TREE
	m_cTreeStyles.GetClientRect(&rect);
	m_cTreeStyles.InsertColumn(0, _T("樹形控件風格"), LVCFMT_LEFT, rect.Width());
	
	ListView_SetExtendedListViewStyle(m_cTreeStyles.m_hWnd, LVS_EX_CHECKBOXES | LVS_EX_FULLROWSELECT | LVS_EX_INFOTIP);
	
	
	// Setup the list control
	dwStyles = m_pTreeCtrl->GetStyle();
	
	AddTreeStyleItem( _T("TVS_HASLINES"), (dwStyles & TVS_HASLINES) != 0, TVS_HASLINES);
	AddTreeStyleItem( _T("TVS_LINESATROOT"), (dwStyles & TVS_LINESATROOT) != 0, TVS_LINESATROOT);
	AddTreeStyleItem( _T("TVS_HASBUTTONS"), (dwStyles & TVS_HASBUTTONS) != 0, TVS_HASBUTTONS);
	AddTreeStyleItem( _T("TVS_EDITLABELS"), (dwStyles & TVS_EDITLABELS) != 0,TVS_EDITLABELS);
	AddTreeStyleItem( _T("TVS_SHOWSELALWAYS"), (dwStyles &TVS_SHOWSELALWAYS) != 0,TVS_SHOWSELALWAYS);
	AddTreeStyleItem( _T("TVS_NOTOOLTIPS"), (dwStyles & TVS_NOTOOLTIPS) != 0,TVS_NOTOOLTIPS);
	AddTreeStyleItem( _T("TVS_SINGLEEXPAND"), (dwStyles &TVS_SINGLEEXPAND) != 0, TVS_SINGLEEXPAND);

	AddTreeStyleItem( _T("TVS_CHECKBOXES"), (dwStyles & TVS_CHECKBOXES) != 0, TVS_CHECKBOXES);
	AddTreeStyleItem( _T("TVS_FULLROWSELECT"), (dwStyles & TVS_FULLROWSELECT) != 0,TVS_FULLROWSELECT);
	AddTreeStyleItem( _T("TVS_TRACKSELECT"), (dwStyles &TVS_TRACKSELECT) != 0,TVS_TRACKSELECT);

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

/////////////////////////////////////////////////////////////////////////////
/*
	OnOK

	Slightly different than CListCtrlStylesDlgEx's handling of the updated
	style bits.  Whereas that class dynamically tracks the style bits, this
	one just waits until the user is done.  Then we run through the 
	entire list control items and create the new styles that should be applied
	to the list control back in the main dialog.
  
	Params
		None
  
	Returns 
		void
*/
/////////////////////////////////////////////////////////////////////////////
void CListCtrlStylesDlg::OnOK() 
{
	// Loop through the list control and get all the styles that are selected.  We
	// make this easier by storing the style value as the data member of each item.
	//List
	m_dwStyles = m_pListCtrl->GetStyle();
	int nNumItems = m_cListStyles.GetItemCount();
	for (int i = 0; i < nNumItems; i++)
	{
		if (ListView_GetCheckState(m_cListStyles.GetSafeHwnd(), i))
			m_dwStyles |= m_cListStyles.GetItemData(i);
		else	
			m_dwStyles &= ~(m_cListStyles.GetItemData(i));

	}

	//Tree
	m_dwTreeStyles = m_pTreeCtrl->GetStyle();
	nNumItems = m_cTreeStyles.GetItemCount();
	for (i = 0; i < nNumItems; i++)
	{
		if (ListView_GetCheckState(m_cTreeStyles.GetSafeHwnd(), i))
			m_dwTreeStyles |= m_cTreeStyles.GetItemData(i);
		else	
			m_dwTreeStyles &= ~(m_cTreeStyles.GetItemData(i));
		
	}

	CDialog::OnOK();
}

/////////////////////////////////////////////////////////////////////////////
/*
	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 CListCtrlStylesDlg::AddStyleItem(LPCTSTR lpszItem, BOOL bState, DWORD dwData)
{
	int nPos = max(m_cListStyles.GetItemCount(),0);
	nPos = m_cListStyles.InsertItem(nPos, lpszItem);
	m_cListStyles.SetItemData(nPos, dwData);

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

}

void CListCtrlStylesDlg::AddTreeStyleItem(LPCTSTR lpszItem, BOOL bState, DWORD dwData)
{
	int nPos = max(m_cTreeStyles.GetItemCount(),0);
	nPos = m_cTreeStyles.InsertItem(nPos, lpszItem);
	m_cTreeStyles.SetItemData(nPos, dwData);
	
	// Use macro to set check state
	ListView_SetItemState(m_cTreeStyles.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 CListCtrlStylesDlg::OnInfoTip( NMHDR * pNMHDR, LRESULT * pResult )
{
	NMLVGETINFOTIP*	pInfoTip = reinterpret_cast<NMLVGETINFOTIP*>(pNMHDR);
	ASSERT(pInfoTip);

	// Get the item data for this unit
	DWORD dwData = m_cListStyles.GetItemData(pInfoTip->iItem);
	

	// Based on the flag value, show a tool tip with the information about this style bit
	CString strText;
	switch (dwData)
	{
	case LVS_ALIGNLEFT:
		strText = _T("Specifies that items are left-aligned in icon and small icon view."); break;
	case LVS_ALIGNTOP:
		strText = _T("Specifies that items are aligned with the top of the control in icon and small icon view."); break;
	case LVS_AUTOARRANGE:
		strText = _T("Specifies that icons are automatically kept arranged in icon view and small icon view."); break;
	case LVS_NOCOLUMNHEADER:
		strText = _T("Specifies that a column header is not displayed in report view."); break;
	case LVS_NOLABELWRAP:
		strText = _T("Displays item text on a single line in icon view."); break;
	case LVS_NOSORTHEADER:
		strText = _T("Specifies that column headers do not work like buttons.");break;
	case LVS_SHOWSELALWAYS:
		strText = _T("Always show the selection, if any, even if the control does not have the focus."); break;
	case LVS_SINGLESEL:
		strText = _T("Allows only one item at a time to be selected."); break;
	case LVS_SORTASCENDING:
		strText = _T("Sorts items based on item text in ascending order."); break;
	case LVS_SORTDESCENDING:
		strText = _T("Sorts items based on item text in descending order."); break;	
	default:
		strText = _T("Unknown style option."); break;

	}
	_tcscpy(pInfoTip->pszText, (LPCTSTR)strText);

}

void CListCtrlStylesDlg::OnTreeInfoTip( NMHDR * pNMHDR, LRESULT * pResult )
{
	NMLVGETINFOTIP*	pInfoTip = reinterpret_cast<NMLVGETINFOTIP*>(pNMHDR);
	ASSERT(pInfoTip);
	
	// Get the item data for this unit
	DWORD dwData = m_cTreeStyles.GetItemData(pInfoTip->iItem);
	
	
	// Based on the flag value, show a tool tip with the information about this style bit
	CString strText;
	switch (dwData)
	{
	case TVS_HASLINES:
		strText = _T("The tree view control has lines linking child items to their corresponding parent items."); break;
	case TVS_LINESATROOT:
		strText = _T("The tree view control has lines linking child items to the root of the hierarchy."); break;
	case TVS_HASBUTTONS:
		strText = _T("The tree view control adds a button to the left of each parent item."); break;
	case TVS_EDITLABELS:
		strText = _T("The tree view control allows the user to edit the labels of tree view items."); break;
	case TVS_SHOWSELALWAYS:
		strText = _T("Causes a selected item to remain selected when the tree-view control loses focus."); break;
	case TVS_NOTOOLTIPS:
		strText = _T("The tree view control uses no tooltips.");break;
	case TVS_SINGLEEXPAND:
		strText = _T("When this style is enabled, changing the selection in the tree view will automatically cause the item being selected to expand and the item being unselected to collapse. ");break;
	//
	case TVS_CHECKBOXES:
		strText = _T("Version 4.70. Enables check boxes for items in a tree view control. "); break;
	case TVS_FULLROWSELECT:
		strText = _T("Version 4.71. Enables full-row selection in the tree view."); break;
	case TVS_TRACKSELECT:
		strText = _T("Version 4.70. Enables hot tracking in a tree view control.");break;
	default:
		strText = _T("Unknown style option."); break;
		
	}
	_tcscpy(pInfoTip->pszText, (LPCTSTR)strText);
	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人精品高清在线| 91年精品国产| 亚洲精品你懂的| 日韩欧美一区二区久久婷婷| 99久久婷婷国产精品综合| 日韩电影在线一区| 日韩理论在线观看| 欧美va亚洲va国产综合| 欧美性生活一区| www.欧美.com| 精品一区二区三区免费| 亚洲一区二区三区激情| 国产精品国产三级国产三级人妇| 欧美一区二区三区在线看| 99国产精品久久| 福利一区二区在线| 另类小说图片综合网| 亚洲午夜激情网页| 毛片一区二区三区| 午夜激情一区二区| 亚洲人成影院在线观看| 亚洲欧洲成人自拍| 国产亚洲短视频| 久久综合色8888| 欧美一区二区视频网站| 欧美性高清videossexo| 色综合天天综合在线视频| 波多野结衣欧美| 国产乱人伦偷精品视频不卡 | 欧美喷水一区二区| 91免费观看在线| a级精品国产片在线观看| 国产999精品久久久久久| 国产一区二区三区免费观看| 久久91精品国产91久久小草| 蜜臀精品一区二区三区在线观看| 午夜一区二区三区在线观看| 亚洲一区二区三区美女| 亚洲国产精品久久人人爱蜜臀| 亚洲人成7777| 亚洲日本va在线观看| 亚洲美女免费视频| 亚洲黄色尤物视频| 亚洲va在线va天堂| 狂野欧美性猛交blacked| 久久精品国产亚洲高清剧情介绍 | 久久综合九色综合97婷婷女人| 日韩欧美你懂的| 久久先锋资源网| 中文字幕高清不卡| 综合亚洲深深色噜噜狠狠网站| 日韩毛片精品高清免费| 亚洲一区二区av在线| 婷婷夜色潮精品综合在线| 日本欧美在线看| 国产老妇另类xxxxx| 不卡一区二区在线| 中文字幕亚洲在| 亚洲欧美一区二区久久| 一区二区三区在线观看动漫 | 亚洲乱码国产乱码精品精可以看 | 美洲天堂一区二卡三卡四卡视频| 日韩精品福利网| 久久国产麻豆精品| 麻豆国产91在线播放| 久久国产乱子精品免费女| 蜜臀av在线播放一区二区三区| 日韩av一区二区在线影视| 依依成人精品视频| 午夜精品在线视频一区| 日本伊人午夜精品| 国产在线一区观看| 国产精品综合在线视频| 成人一区二区视频| 欧美日韩国产小视频| 欧美一区午夜视频在线观看| 国产欧美一区二区精品忘忧草| 国产精品麻豆99久久久久久| 亚洲一区二区美女| 美女视频网站黄色亚洲| 不卡av在线免费观看| 欧美在线观看视频一区二区| 欧美v国产在线一区二区三区| 2020日本不卡一区二区视频| 亚洲女人的天堂| 免费精品视频在线| 色婷婷久久久综合中文字幕| 欧美日韩国产不卡| 亚洲国产电影在线观看| 亚洲最大色网站| 国产美女精品一区二区三区| 一本在线高清不卡dvd| 日韩精品中文字幕在线一区| 欧美极品少妇xxxxⅹ高跟鞋 | 欧美高清视频不卡网| 久久久久国产一区二区三区四区| 亚洲精品国产一区二区三区四区在线| 亚洲成人午夜电影| 国产精品99久久久久久有的能看 | 另类中文字幕网| 欧美又粗又大又爽| 久久综合av免费| 丁香激情综合国产| 欧美午夜精品久久久久久超碰| 337p粉嫩大胆噜噜噜噜噜91av| 亚洲欧洲三级电影| 国产精品一级片在线观看| 91麻豆视频网站| 欧美韩国日本不卡| 日韩av不卡一区二区| 欧洲精品一区二区| 久久亚洲二区三区| 久色婷婷小香蕉久久| 成人黄色软件下载| 精品国产一区二区在线观看| 日韩专区欧美专区| 97久久超碰国产精品| 国产欧美日本一区二区三区| 日韩精品一二三四| 欧美亚一区二区| 欧美国产1区2区| 国产丶欧美丶日本不卡视频| 欧美日韩国产一级片| 亚洲成a天堂v人片| 99久久久无码国产精品| 国产欧美精品一区二区色综合| 日韩国产欧美三级| 6080亚洲精品一区二区| 亚洲视频网在线直播| 99r国产精品| 久久婷婷综合激情| 国产乱码字幕精品高清av| 精品91自产拍在线观看一区| 日韩激情一二三区| 91精品国产综合久久精品麻豆| 亚洲精品中文在线观看| 色激情天天射综合网| 亚洲欧洲精品天堂一级| 97久久超碰精品国产| 中文字幕一区二区不卡| 91免费版在线| 亚洲色图欧洲色图| 91久久精品一区二区二区| 18成人在线视频| 在线观看不卡一区| 亚洲色图视频网站| 欧美最猛性xxxxx直播| 亚洲欧洲国产日本综合| jlzzjlzz亚洲日本少妇| 亚洲欧洲一区二区三区| 色综合天天综合在线视频| 亚洲制服丝袜一区| 欧美视频一区二区在线观看| 午夜视黄欧洲亚洲| 91精品国产综合久久国产大片 | 亚洲一级在线观看| 高清在线成人网| 国产精品久久久久久久久免费桃花 | 男女性色大片免费观看一区二区| 91免费在线播放| 性做久久久久久久久| 精品国产网站在线观看| 韩国一区二区在线观看| 中文字幕成人av| 成人国产精品免费观看动漫| 亚洲制服丝袜在线| 91精品国产欧美一区二区成人| 国产美女av一区二区三区| 欧美精彩视频一区二区三区| 91福利社在线观看| 日韩国产欧美在线播放| 日韩欧美激情一区| 国产激情视频一区二区在线观看| 欧美国产丝袜视频| 色婷婷精品大在线视频| 亚洲国产日日夜夜| 欧美一卡二卡三卡| 成人av在线一区二区| 亚洲在线观看免费视频| 日韩精品一区二区三区swag| 国产精品一区在线观看你懂的| 一区二区在线观看av| 欧美日韩国产高清一区二区| 国产在线播放一区| 最好看的中文字幕久久| 精品少妇一区二区三区免费观看| 久色婷婷小香蕉久久| 亚洲精品va在线观看| 欧美日韩国产不卡| 国内成人免费视频| 亚洲精品国产视频| 91精品久久久久久久91蜜桃| 不卡的电影网站| 日韩中文字幕亚洲一区二区va在线| 国产午夜精品一区二区三区嫩草 | 亚洲女人的天堂| 日韩精品一区二区三区中文精品| 91网页版在线| 蜜臀久久99精品久久久久宅男 | 精品免费99久久|