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

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

?? sortlistctrl.cpp

?? 改程序實現了登陸管理。用戶設置有ADMIN和普通用戶兩種。是用戶管理很使用的程序。
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
	{
		if( nBytes > 0 )
		{
			CMemFile memFile( buf, nBytes );
			CArchive ar( &memFile, CArchive::load );
			m_ctlHeader.Serialize( ar );
			ar.Close();

			m_ctlHeader.Invalidate();
		}

		delete[] buf;
	}
}


void CSortListCtrl::SaveColumnInfo()
{
	ASSERT( m_iNumColumns > 0 );

	CString strKey;
	strKey.Format( _T("%d"), GetDlgCtrlID() );

	CMemFile memFile;

	CArchive ar( &memFile, CArchive::store );
	m_ctlHeader.Serialize( ar );
	ar.Close();

	DWORD dwLen = memFile.GetLength();
	BYTE* buf = memFile.Detach();	

	VERIFY( AfxGetApp()->WriteProfileBinary( g_pszSection, strKey, buf, dwLen ) );

	free( buf );
}


void CSortListCtrl::OnDestroy() 
{
	for( int iItem = 0; iItem < GetItemCount(); iItem ++ )
		FreeItemMemory( iItem );

	CListCtrl::OnDestroy();
}


BOOL CSortListCtrl::SetItemText( int nItem, int nSubItem, LPCTSTR lpszText )
{
	if( !CListCtrl::SetItemText( nItem, nSubItem, lpszText ) )
		return FALSE;

	LPTSTR* arrpsz = GetTextArray( nItem );
	LPTSTR pszText = arrpsz[ nSubItem ];
	delete[] pszText;
	pszText = new TCHAR[ lstrlen( lpszText ) + 1 ];
	(void)lstrcpy( pszText, lpszText );
	arrpsz[ nSubItem ] = pszText;

	return TRUE;
}


BOOL CSortListCtrl::SetItemData( int nItem, DWORD dwData )
{
/*
		if( nItem >= GetItemCount() )
			return FALSE;
	
		ItemData* pid = reinterpret_cast<ItemData*>( CListCtrl::GetItemData( nItem ) );
		ASSERT( pid );
		pid->dwData = dwData;
	
		return TRUE;*/
	CListCtrl::SetItemData( nItem,  dwData);
	return TRUE;
	
}


DWORD CSortListCtrl::GetItemData( int nItem ) const
{

		ASSERT( nItem < GetItemCount() );
	
		ItemData* pid = reinterpret_cast<ItemData*>( CListCtrl::GetItemData( nItem ) );
		ASSERT( pid );
		return pid->dwData;
	
}


BOOL CSortListCtrl::SetArray( int iItem, LPTSTR* arrpsz,COLORREF * clrText,COLORREF * clrBak )
{
	ASSERT( CListCtrl::GetItemData( iItem ) == NULL );
	ItemData* pid = new ItemData;
	pid->arrpsz = arrpsz;
	pid->crText = clrText;
	pid->crBak = clrBak;
	return CListCtrl::SetItemData( iItem, reinterpret_cast<DWORD>( pid ) );//set item data /
}


LPTSTR* CSortListCtrl::GetTextArray( int iItem ) const
{
	ASSERT( iItem < GetItemCount() );

	ItemData* pid = reinterpret_cast<ItemData*>( CListCtrl::GetItemData( iItem ) );
	return pid->arrpsz;
}


void CSortListCtrl::OnPaint() 
{
	Default();
	CPaintDC dc(this); // device context for painting
	
	// TODO: Add your message handler code here
	
	// Do not call CListCtrl::OnPaint() for painting messages
}

void CSortListCtrl::OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult)
{
	//draw each item.set txt color,bkcolor....
	NMLVCUSTOMDRAW* pLVCD = reinterpret_cast<NMLVCUSTOMDRAW*>(pNMHDR);
	
	// Take the default processing unless we set this to something else below.
	*pResult = CDRF_DODEFAULT;
	
	// First thing - check the draw stage. If it's the control's prepaint
	// stage, then tell Windows we want messages for every item.
	
	if (pLVCD->nmcd.dwDrawStage == CDDS_PREPAINT)
	{
		*pResult = CDRF_NOTIFYITEMDRAW;
	}
	else if (pLVCD->nmcd.dwDrawStage == CDDS_ITEMPREPAINT)
	{
		// This is the notification message for an item.  We'll request
		// notifications before each subitem's prepaint stage.
		
		*pResult = CDRF_NOTIFYSUBITEMDRAW;
	}
	else if (pLVCD->nmcd.dwDrawStage == (CDDS_ITEMPREPAINT | CDDS_SUBITEM))
	{
		// This is the prepaint stage for a subitem. Here's where we set the
		// item's text and background colors. Our return value will tell
		// Windows to draw the subitem itself, but it will use the new colors
		// we set here.
		
		int nItem = static_cast<int> (pLVCD->nmcd.dwItemSpec);
		int nSubItem = pLVCD->iSubItem;
		
		ItemData *pXLCD = (ItemData *) pLVCD->nmcd.lItemlParam;
		ASSERT(pXLCD);
		
		COLORREF crText  = crWindowText;
		COLORREF crBkgnd = crWindow;
		
		
		if (pXLCD){
			crText  = (pXLCD->crText)[nSubItem];
			crBkgnd = (pXLCD->crBak)[nSubItem];
		}
								
		
		
		// store the colors back in the NMLVCUSTOMDRAW struct
		pLVCD->clrText = crText;
		pLVCD->clrTextBk = crBkgnd;
		
		CDC* pDC = CDC::FromHandle(pLVCD->nmcd.hdc);
		CRect rect;
		GetSubItemRect(nItem, nSubItem, LVIR_BOUNDS, rect);
		if (GetItemState(nItem, LVIS_SELECTED))
			DrawText(nItem, nSubItem, pDC, crHighLightText, crHighLight , rect);
		else
			DrawText(nItem, nSubItem, pDC, crText, crBkgnd, rect);
				
		*pResult = CDRF_SKIPDEFAULT;	// We've painted everything.
	}
}




int CSortListCtrl::AddItemColor(LPCTSTR pszText, COLORREF crText, COLORREF crBak)
{
	//insert item at the last
	const int iIndex = InsertItem( GetItemCount(), pszText );
	ItemData *m_pSortItemData=new ItemData[GetColumns()];
/*
	m_pSortItemData[0].crText=crText;
	m_pSortItemData[0].crBak=crBak;
*/
	
	SetItemData(iIndex,(DWORD) m_pSortItemData);

	//no sort function
	
	return iIndex;


}

int CSortListCtrl::GetColumns()
{
	return m_ctlHeader.GetItemCount();

}

BOOL CSortListCtrl::GetSubItemRect(int nItem, int nSubItem, int nArea, CRect &rect)
{

	ASSERT(nItem >= 0);
	ASSERT(nItem < GetItemCount());
	if ((nItem < 0) || nItem >= GetItemCount())
		return FALSE;
	ASSERT(nSubItem >= 0);
	ASSERT(nSubItem < GetColumns());
	if ((nSubItem < 0) || nSubItem >= GetColumns())
		return FALSE;
	
	BOOL bRC = CListCtrl::GetSubItemRect(nItem, nSubItem, nArea, rect);
	
	// if nSubItem == 0, the rect returned by CListCtrl::GetSubItemRect
	// is the entire row, so use left edge of second subitem
	
	if (nSubItem == 0)
	{
		if (GetColumns() > 1)
		{
			CRect rect1;
			bRC = GetSubItemRect(nItem, 1, LVIR_BOUNDS, rect1);
			rect.right = rect1.left;
		}
	}
	
	return bRC;

}





void CSortListCtrl::DrawText(int nItem, int nSubItem, CDC *pDC, COLORREF crText, COLORREF crBkgnd, CRect &rect)
{
	ASSERT(pDC);
	
//	GetDrawColors(nItem, nSubItem, crText, crBkgnd);
	
	pDC->FillSolidRect(&rect, crBkgnd);
	
	CString str;
	str = GetItemText(nItem, nSubItem);
	
	if (!str.IsEmpty())
	{
		// get text justification
		HDITEM hditem;
		hditem.mask = HDI_FORMAT;
		m_ctlHeader.GetItem(nSubItem, &hditem);
		int nFmt = hditem.fmt & HDF_JUSTIFYMASK;
		UINT nFormat = DT_VCENTER | DT_SINGLELINE;
		if (nFmt == HDF_CENTER)
			nFormat |= DT_CENTER;
		else if (nFmt == HDF_LEFT)
			nFormat |= DT_LEFT;
		else
			nFormat |= DT_RIGHT;
		
		
		pDC->SetBkMode(TRANSPARENT);
		pDC->SetTextColor(crText);
		pDC->SetBkColor(crBkgnd);
		pDC->DrawText(str, &rect, nFormat);
	
	}

}



void CSortListCtrl::OnSysColorChange() 
{
	CListCtrl::OnSysColorChange();
	
	// TODO: Add your message handler code here
	crWindow              = ::GetSysColor(COLOR_WINDOW);
	crWindowText          = ::GetSysColor(COLOR_WINDOWTEXT);
	crHighLight     = ::GetSysColor(COLOR_HIGHLIGHT);
	crHighLightText = ::GetSysColor(COLOR_HIGHLIGHTTEXT);
	
	

	
}

void CSortListCtrl::SetItemColor(int nItem, int nSubItem, COLORREF clrText, COLORREF clrBkgnd)
{
	ASSERT(nItem >= 0);
	ASSERT(nItem < GetItemCount());
	if ((nItem < 0) || nItem >= GetItemCount())
		return ;
	ASSERT(nSubItem >= 0);
	ASSERT(nSubItem < GetColumns());
	if ((nSubItem < 0) || nSubItem >= GetColumns())
		return ;
	
	
	if (nItem < 0)
		return ;
	
	
	ItemData *pid = (ItemData *) CListCtrl::GetItemData(nItem);
	if (pid)
	{
		(pid->crText)[nSubItem]		 = (clrText == -1) ? crWindowText : clrText;
		(pid->crBak)[nSubItem]		 = (clrBkgnd == -1) ? crWindow : clrBkgnd;
	}
	
	UpdateSubItem(nItem, nSubItem);

}

void CSortListCtrl::UpdateSubItem(int nItem, int nSubItem)
{
	ASSERT(nItem >= 0);
				ASSERT(nItem < GetItemCount());
				if ((nItem < 0) || nItem >= GetItemCount())
					return;
				ASSERT(nSubItem >= 0);
				ASSERT(nSubItem < GetColumns());
				if ((nSubItem < 0) || nSubItem >= GetColumns())
					return;
				
				CRect rect;
				if (nSubItem == -1)
				{
					GetItemRect(nItem, &rect, LVIR_BOUNDS);
				}
				else
				{
					GetSubItemRect(nItem, nSubItem, LVIR_BOUNDS, rect);
				}
				
				InvalidateRect(&rect);
				UpdateWindow();
				
				
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
粉嫩一区二区三区性色av| 偷拍日韩校园综合在线| 国产精品一二三区| 国产欧美精品一区二区三区四区 | 欧美精品乱码久久久久久按摩 | 不卡大黄网站免费看| 中文字幕日韩欧美一区二区三区| 成人国产视频在线观看| 亚洲欧美视频在线观看视频| 一本色道久久综合亚洲91| 亚洲一区二区影院| 日韩女优电影在线观看| 国产激情91久久精品导航| 国产精品对白交换视频| 欧美日韩视频第一区| 久久99国产精品免费| 国产精品欧美久久久久一区二区| 一本色道亚洲精品aⅴ| 日本欧美一区二区三区乱码| 久久精品这里都是精品| 在线一区二区三区| 99riav一区二区三区| 亚洲日本电影在线| 欧美一卡二卡在线| 粉嫩aⅴ一区二区三区四区五区| 中文字幕字幕中文在线中不卡视频| 91久久精品一区二区三| 美女网站视频久久| 亚洲天堂网中文字| 91精品视频网| 99国内精品久久| 美国精品在线观看| 一区二区三区精品视频在线| 日韩视频在线一区二区| 成人听书哪个软件好| 日韩高清欧美激情| 最近中文字幕一区二区三区| 欧美日韩精品免费观看视频| 国产美女一区二区三区| 香蕉成人伊视频在线观看| 国产日产欧美一区二区视频| 欧美在线你懂的| 成人一区二区三区中文字幕| 亚洲6080在线| 亚洲男同性恋视频| 久久蜜桃一区二区| 69堂国产成人免费视频| 91香蕉视频污| 国产成人在线视频播放| 免费看欧美女人艹b| 一级日本不卡的影视| 久久久99久久精品欧美| 欧美一区二区三区电影| 欧美性极品少妇| 一本色道久久加勒比精品 | 成人一区二区三区中文字幕| 奇米影视一区二区三区| 亚洲欧美日韩久久精品| 欧美国产精品一区二区| 精品乱码亚洲一区二区不卡| 在线观看日韩国产| 色94色欧美sute亚洲线路二| 成人综合激情网| 国产v日产∨综合v精品视频| 美腿丝袜亚洲三区| 蜜臀久久99精品久久久久久9 | 视频一区视频二区中文字幕| 亚洲狼人国产精品| 亚洲女人小视频在线观看| 国产精品麻豆网站| 国产精品国模大尺度视频| 久久蜜桃av一区二区天堂| 日韩精品中文字幕一区| 日韩视频在线永久播放| 欧美成人a在线| 久久亚洲捆绑美女| 久久亚洲春色中文字幕久久久| 日韩一区二区三区在线观看| 在线不卡免费av| 欧美一级电影网站| 欧美mv和日韩mv的网站| 日韩免费高清视频| 亚洲精品一区二区三区99| 日韩精品最新网址| 久久久久国产精品麻豆ai换脸| 久久久三级国产网站| 国产丝袜美腿一区二区三区| 久久久久国产精品厨房| 国产精品网站一区| 亚洲黄色免费电影| 日韩精品免费视频人成| 麻豆视频一区二区| 国产精品888| 91浏览器打开| 欧美日免费三级在线| 欧美狂野另类xxxxoooo| 日韩欧美一级片| 欧美国产精品专区| 亚洲一区二区在线免费观看视频| 亚洲成人资源在线| 蜜桃av一区二区三区| 国产精品一区二区你懂的| 99久久精品国产毛片| 欧美三级一区二区| 欧美精品一区二区三区高清aⅴ | 国产精品九色蝌蚪自拍| 亚洲综合成人在线视频| 日本va欧美va瓶| 成人天堂资源www在线| 欧美午夜不卡视频| 久久综合九色综合欧美亚洲| 中文字幕第一区二区| 亚洲地区一二三色| 国产精品一区二区91| 91视频91自| 欧美成人三级电影在线| 中文字幕高清一区| 秋霞影院一区二区| 成人天堂资源www在线| 欧美日韩精品三区| 国产精品美女久久久久久久久久久 | 99精品视频一区二区| 欧美日韩一二三区| 久久久三级国产网站| 亚洲成人一区在线| 成人免费高清视频| 欧美一级国产精品| 亚洲另类在线制服丝袜| 韩国精品主播一区二区在线观看| 91蝌蚪国产九色| 久久久精品免费免费| 天堂精品中文字幕在线| 成人91在线观看| 久久影院视频免费| 日产国产欧美视频一区精品| av不卡免费在线观看| 日韩视频永久免费| 亚洲va欧美va天堂v国产综合| 成人午夜电影小说| 久久综合色天天久久综合图片| 一区二区高清在线| 99久久精品国产精品久久| 久久免费偷拍视频| 日本亚洲一区二区| 欧美女孩性生活视频| 亚洲精品欧美激情| 99国内精品久久| 中文字幕一区二区5566日韩| 精品一区免费av| 欧美一区二区福利视频| 亚洲综合色婷婷| 色噜噜狠狠色综合中国| 国产精品久久久久久久久果冻传媒| 狠狠色狠狠色综合系列| 91精品国产综合久久福利| 亚洲电影一级黄| 欧美日韩午夜在线视频| 夜夜揉揉日日人人青青一国产精品 | 久久99深爱久久99精品| 51精品秘密在线观看| 亚洲一级不卡视频| 91福利国产精品| 亚洲精品国产一区二区精华液| av综合在线播放| 亚洲丝袜美腿综合| 91在线小视频| 亚洲激情男女视频| 欧美午夜片在线看| 日日摸夜夜添夜夜添精品视频| 色8久久精品久久久久久蜜| 亚洲三级电影网站| 91偷拍与自偷拍精品| 亚洲人成伊人成综合网小说| 91影视在线播放| 亚洲国产精品精华液网站| 欧美日韩精品电影| 麻豆精品视频在线观看| 精品毛片乱码1区2区3区| 国产一区二区看久久| 欧美高清在线精品一区| www.亚洲色图| 亚洲制服丝袜在线| 欧美老肥妇做.爰bbww| 另类人妖一区二区av| 国产午夜精品一区二区| 成人h动漫精品| 亚洲自拍偷拍综合| 日韩一卡二卡三卡| 成人午夜伦理影院| 亚洲国产欧美在线| 日韩一区二区麻豆国产| 国产69精品久久777的优势| 亚洲人亚洲人成电影网站色| 91激情在线视频| 欧美aaa在线| 欧美韩国一区二区| 欧美日韩在线综合| 激情五月播播久久久精品| 中文字幕成人av| 欧美精品电影在线播放|