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

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

?? picwnd.cpp

?? 超強的圖形界面聊天軟件.rar
?? CPP
字號:
// PicWnd.cpp : implementation file
//

#include "stdafx.h"
#include "pictalk.h"
#include "PicWnd.h"
#include "UserInfo.h"

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

CPicWnd::CPicWnd()
{
	
}

CPicWnd::~CPicWnd()
{
}


/////////////////////////////////////////////////////////////////////////////
// CPicWnd message handlers


void CPicWnd::Create(CWnd * pCwnd,CPtrList * pUserList)
{
	m_pUserList=pUserList;;
	m_pParentWnd=pCwnd;
	m_BKColor=RGB(0,255,255);
	m_FontColor=RGB(255,0,0);
	CClientDC dc(m_pParentWnd);
	CDC bg,show;
	m_Pic.Create(638,367,16,NULL);
	show.CreateCompatibleDC(&dc);
	bg.CreateCompatibleDC(&show);
	
	CString filename="body\\body.txt";
	CStdioFile file;
	if(file.Open(filename,CFile::modeRead)==0){
		AfxMessageBox("讀取文件失敗",MB_OK);
	}
	CString str;
	CStringArray filearray;
	filearray.RemoveAll();
	while(1){
		file.ReadString(str);
		if(str=="")
			break;
		filearray.Add(str);
	}
	file.Close();
	m_bm.Create(54*32+5,78*filearray.GetSize(),16,NULL);
	
	MaxBody=filearray.GetSize()-1;
	int i;
	for(i=0;i<filearray.GetSize();i++){
		CBmpProc	ccc;
		BOOL hh=ccc.LoadFromFile(filearray[i].GetBuffer(20));
		CRect *pDesRect=new CRect(0,i*78,54*32+5,i*78+78);
		CRect *pSouRect=new CRect(0,0,54*32+5,78);
		m_bm.CopyFromObject(ccc,pDesRect,pSouRect);
	}

//	m_bm.LoadFromFile("girl2.bmp");
	m_bg.LoadFromFile("room1.bmp");
	bg.SelectObject(&m_bm);
	m_COL=bg.GetPixel(0,0);
	bg.SelectObject(&m_bg);
	CBitmap *pod=show.SelectObject(&m_Pic);
	show.BitBlt(0,0,638,436,&bg,0,0,SRCCOPY);
	show.SelectObject(&pod);
}

void CPicWnd::paint()
{
	CClientDC dc(m_pParentWnd);
	CDC memDC;
	CRect rectUpdate;
	dc.GetClipBox(&rectUpdate);
	memDC.CreateCompatibleDC(&dc);
	CBitmap *pod=memDC.SelectObject(&m_Pic);
	dc.BitBlt(rectUpdate.left+12,rectUpdate.top,
		rectUpdate.Width(),rectUpdate.Height(),
		&memDC,
		rectUpdate.left,rectUpdate.top,
		SRCCOPY);
	memDC.SelectObject(pod);
//	draw(1,1,&CRect(10,10,56,88));
}

void CPicWnd::draw(CRect *pRect,CRect *pDelRect)
{

	CClientDC dc(m_pParentWnd);
	CDC memDC;
	CRect tempRect;
	tempRect.UnionRect(pRect,pDelRect);
	if(pDelRect)
		m_Pic.CopyFromObject(m_bg,pDelRect,pDelRect);
	memDC.CreateCompatibleDC(&dc);
	CBitmap * pod=memDC.SelectObject(&m_Pic);
	
	if(!m_pUserList->IsEmpty())
	{
		SetOrder(&tempRect);
		redraw(&memDC);
		DrawSen(&memDC,&tempRect);
	}
	dc.BitBlt(tempRect.left+12,tempRect.top,
		tempRect.Width(),tempRect.Height(),
		&memDC,
		tempRect.left,tempRect.top,
		SRCCOPY);
}

void CPicWnd::draw(int x, int y, int Delx, int Dely)
{
	CRect tempRect;
	if(Delx==-1 && Dely==-1)
		tempRect=NULL;
	else
		tempRect=CRect(Delx,Dely,Delx+54,Dely+78);
	draw(&CRect(x,y,x+54,y+78),&tempRect);
}

void CPicWnd::ShowPic(CDC * pDC,UINT PicID, int PicNum,CRect * pRect, BOOL bTurn)
{
	CRect picRect;
	CBmpProc tempbm;
	tempbm.Create(CSize(54,78),16);
	if(bTurn)
		picRect=CRect(PicNum*54+54,PicID*78,PicNum*54,PicID*78+78);
	else
		picRect=CRect(PicNum*54,PicID*78,PicNum*54+54,PicID*78+78);
	tempbm.CopyFromObject(m_bm,&CRect(0,0,54,78),&picRect);
	tempbm.DrawTransparentInRect(*pDC,m_COL,pRect);
}

void CPicWnd::redraw(CDC * pDC)
{
	POSITION pos;
	for( pos = m_ShowUser.GetHeadPosition(); pos != NULL; )
	{
		CUserInfo *tempUser=(CUserInfo *)m_ShowUser.GetNext(pos);
		ShowPic(pDC,
				tempUser->m_pic,
				tempUser->m_PicNum,
				&tempUser->m_Place,
				tempUser->m_bTurn);
	}
}

void CPicWnd::SetOrder(CRect * pRect)
{
	POSITION pos;
	CRect tempRect;
	CUserInfo *tempUser2;
	m_ShowUser.RemoveAll();
	int top;
	for( pos = m_pUserList->GetHeadPosition(); pos != NULL; )
	{
		CUserInfo *tempUser=(CUserInfo *)m_pUserList->GetNext(pos);
		tempUser->m_bSelect=FALSE;
	}
	while(1)
	{
		tempUser2=NULL;
		top=pRect->bottom;
		for( pos = m_pUserList->GetHeadPosition(); pos != NULL; )
		{
			CUserInfo *tempUser=(CUserInfo *)m_pUserList->GetNext(pos);
			if(tempRect.IntersectRect(pRect,tempUser->m_Place)&&!tempUser->m_bSelect)
				if(tempUser->m_Place.top<top)
				{
					top=tempUser->m_Place.top;
					tempUser2=tempUser;
				}
		}
		if(tempUser2)
		{
			tempUser2->m_bSelect=TRUE;
			m_ShowUser.AddTail(tempUser2);
		}
		else
			break;
	}
}

POSITION CPicWnd::AddSentence(CUserInfo * pUser)
{
	CClientDC dc(m_pParentWnd);
	CDC memDC,PicDC;
	memDC.CreateCompatibleDC(&dc);
	PicDC.CreateCompatibleDC(&dc);
	CString m_sen=pUser->m_sen;
	CSize sensize=memDC.GetTextExtent(m_sen);
	CRect m_TextRect(0,0,100,100);
	int m_Heigh=sensize.cy;
	int m_Width=sensize.cx;
	int i=0,j=1,w,ln=0;
	while(1)
	{
		w=memDC.GetTextExtent(m_sen.Mid(i,j+1)).cx;
		if(w>m_TextRect.Width())
		{
			if(m_sen[i+j]>0)
				m_sen.Insert((i++)+j,'\n');
			i=i+j;
			j=0;
			m_Width=m_TextRect.Width();
			m_Heigh+=sensize.cy;
			ln++;
		}
		j++;
		if(i+j>m_sen.GetLength())
			break;
		if(ln>=3){
			CString temp;
			temp=m_sen.Left(i+j-1)+".....";
			m_sen=temp;
			break;
		}
	}
	CRect rect(0,0,m_Width+8,m_Heigh+8+10);
	CBrush brush(m_FontColor);
	
	CBmpProc *pNewBmp=&pUser->m_SenPic;
	pNewBmp->Create(rect.Size(),16,NULL);
	CBitmap *pod=memDC.SelectObject(pNewBmp);
	memDC.FillRect(rect,&CBrush(m_COL));
	
	CRgn wndRgn,rgnTemp,wndRgn2,rgnTemp2;
	wndRgn.CreateRoundRectRgn(0, 0, m_Width+8, m_Heigh+8,4,4);
	POINT poi[3];
	poi[0].x=rect.Width()/2;poi[0].y=m_Heigh+8+10;
	poi[1].x=rect.Width()/2+5;poi[1].y=m_Heigh;
	poi[2].x=rect.Width()/2-5;poi[2].y=m_Heigh;
	rgnTemp.CreatePolygonRgn(poi,3,ALTERNATE);
	wndRgn.CombineRgn(&wndRgn, &rgnTemp, RGN_OR);
	memDC.FillRgn(&wndRgn,&brush);
	
	wndRgn2.CreateRoundRectRgn(1, 1, m_Width+7, m_Heigh+7,3,3);
	poi[0].x=rect.Width()/2;poi[0].y=m_Heigh+8+9;
	poi[1].x=rect.Width()/2+4;poi[1].y=m_Heigh-1;
	poi[2].x=rect.Width()/2-4;poi[2].y=m_Heigh-1;
	rgnTemp2.CreatePolygonRgn(poi,3,ALTERNATE);
	wndRgn2.CombineRgn(&wndRgn2, &rgnTemp2, RGN_OR);
	memDC.FillRgn(&wndRgn2,&CBrush(m_BKColor));

	memDC.SetBkColor(m_BKColor);
	memDC.SetTextColor(m_FontColor);
	memDC.DrawText(m_sen,CRect(4,4,m_Width+4,m_Heigh+4), DT_WORDBREAK  );
	CPoint tempPoint(pUser->m_Place.left+(pUser->m_Place.Width()-rect.Width())/2,
		pUser->m_Place.top-rect.Height());
	pUser->m_SenPlace=CRect(tempPoint,
		rect.Size());
	PicDC.SelectObject(&m_Pic);

	memDC.SelectObject(pod);
	pNewBmp->DrawTransparentInRect(PicDC,
		m_COL,
		&(pUser->m_SenPlace),
		&rect);
	POSITION pos=m_SenList.AddTail(pUser);
	dc.BitBlt(pUser->m_SenPlace.left+12,
		pUser->m_SenPlace.top,
		pUser->m_SenPlace.Width(),
		pUser->m_SenPlace.Height(),
		&PicDC,
		pUser->m_SenPlace.left,
		pUser->m_SenPlace.top,
		SRCCOPY);
	return pos;
}

void CPicWnd::DrawSen(CDC * pDC,CRect * pRect)
{
	POSITION pos;
	CRect tempRect;
	for( pos = m_SenList.GetHeadPosition(); pos != NULL; )
	{
		CUserInfo *tempUser=(CUserInfo *)m_SenList.GetNext(pos);
		if(tempRect.IntersectRect(pRect,tempUser->m_SenPlace))
			tempUser->m_SenPic.DrawTransparentInRect(*pDC,
				m_COL,
				&(tempUser->m_SenPlace),
				&CRect(0,0,tempUser->m_SenPlace.Width(),tempUser->m_SenPlace.Height()));
	}
}

HRGN CPicWnd::GetRgn(CUserInfo *pUserInfo)
{
	CRect picRect;
	CBmpProc tempbm;
	tempbm.Create(CSize(54,78),16);
	if(pUserInfo->m_bTurn)
		picRect=CRect(pUserInfo->m_PicNum*54+54,
			pUserInfo->m_pic*78,
			pUserInfo->m_PicNum*54,
			pUserInfo->m_pic*78+78);
	else
		picRect=CRect(pUserInfo->m_PicNum*54,
			pUserInfo->m_pic*78,
			pUserInfo->m_PicNum*54+54,
			pUserInfo->m_pic*78+78);
	tempbm.CopyFromObject(m_bm,&CRect(0,0,54,78),&picRect);
	return (tempbm.ExportRegion(m_COL));
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产酒店精品激情| 麻豆精品蜜桃视频网站| 99热在这里有精品免费| 国产精品二三区| 91天堂素人约啪| 亚洲一区免费视频| 欧美一卡2卡三卡4卡5免费| 狠狠色丁香婷婷综合| 欧美国产视频在线| 色老头久久综合| 蜜桃久久久久久久| 国产精品视频一二三区| 日本精品一级二级| 久久精品噜噜噜成人88aⅴ| 国产欧美一区二区在线| 91黄视频在线观看| 免费人成在线不卡| 国产精品理论片| 欧美高清性hdvideosex| 国产酒店精品激情| 亚洲小说欧美激情另类| 久久综合九色综合97婷婷女人| 99久久精品一区二区| 日韩不卡一区二区三区| 国产精品视频你懂的| 在线播放欧美女士性生活| 国产老女人精品毛片久久| 亚洲精品视频在线| 久久亚洲二区三区| 欧美日韩亚洲另类| 国产成人在线色| 日本成人中文字幕| 亚洲欧美成人一区二区三区| 日韩无一区二区| 日本高清无吗v一区| 经典一区二区三区| 亚洲6080在线| 亚洲欧美自拍偷拍| 久久久久国产精品免费免费搜索| 在线亚洲一区二区| 99免费精品视频| 成人高清视频在线观看| 天天av天天翘天天综合网| 日本一区二区三区视频视频| 日韩视频免费观看高清完整版在线观看 | 美美哒免费高清在线观看视频一区二区 | 亚洲欧美国产三级| 国产无一区二区| 日韩欧美不卡在线观看视频| 色88888久久久久久影院按摩| 国产麻豆午夜三级精品| 日本午夜一区二区| 亚洲影视在线播放| 中文字幕字幕中文在线中不卡视频| 亚洲精品在线一区二区| 制服丝袜一区二区三区| 91网站黄www| 成人午夜免费视频| 韩国女主播成人在线| 美女脱光内衣内裤视频久久网站| 亚洲成人精品一区二区| 亚洲一区在线观看免费| 亚洲免费观看高清在线观看| 国产精品久久久久久久久图文区| 国产日韩欧美综合一区| 久久综合九色综合97婷婷| 精品欧美一区二区在线观看| 欧美日本韩国一区| 欧美视频三区在线播放| 91九色最新地址| 色婷婷亚洲一区二区三区| a美女胸又www黄视频久久| 成人激情小说乱人伦| 成人午夜精品一区二区三区| 国产美女久久久久| 高清久久久久久| 不卡在线视频中文字幕| 成人免费高清在线观看| 不卡电影一区二区三区| 91小视频在线免费看| 色久综合一二码| 在线免费观看视频一区| 欧美日本一区二区三区四区| 欧美日韩免费电影| 日韩精品中文字幕一区| 26uuu色噜噜精品一区| 久久精品亚洲一区二区三区浴池| 国产视频一区在线观看| 欧美韩国日本一区| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 国产精品丝袜91| 亚洲精品免费在线| 亚洲va韩国va欧美va| 美女诱惑一区二区| 岛国av在线一区| av午夜一区麻豆| 欧美色精品天天在线观看视频| 欧美日韩视频在线一区二区| 91精品国产综合久久久久久| 精品捆绑美女sm三区| 欧美激情一区二区三区蜜桃视频| 国产精品久久毛片a| 亚洲三级视频在线观看| 亚洲成a人片在线观看中文| 免费看黄色91| 国产成人av电影在线| 91精品办公室少妇高潮对白| 欧美日韩一区中文字幕| 精品人伦一区二区色婷婷| 国产精品久久久久久久久动漫| 亚洲电影一区二区三区| 日韩va欧美va亚洲va久久| 国产乱码一区二区三区| 色999日韩国产欧美一区二区| 日韩午夜在线播放| 国产精品青草久久| 男女男精品视频| 高清不卡在线观看av| 欧美日韩中字一区| 国产欧美久久久精品影院| 夜夜嗨av一区二区三区网页| 免费久久99精品国产| 91麻豆免费在线观看| 日韩欧美国产小视频| 中文字幕一区二区三区在线不卡 | 色香色香欲天天天影视综合网| 欧美日韩中文字幕一区二区| 2021久久国产精品不只是精品| 亚洲美女视频在线观看| 麻豆久久一区二区| 欧美三级在线播放| 久久综合色综合88| 亚洲成av人片| 99久久婷婷国产综合精品| 日韩欧美国产综合| 亚洲电影在线免费观看| 91香蕉视频在线| 26uuu欧美| 奇米在线7777在线精品| 日本二三区不卡| 国产精品沙发午睡系列990531| 久久国产精品色| 欧美日韩一区三区| 亚洲一二三专区| 日本久久电影网| 一区在线中文字幕| 国产v综合v亚洲欧| 中文字幕精品在线不卡| 日韩成人av影视| 欧美日韩免费观看一区三区| 亚洲欧美综合在线精品| 国产成人免费av在线| 久久先锋影音av| 久久国产免费看| 日韩情涩欧美日韩视频| 日韩av在线播放中文字幕| 欧美三区在线视频| 亚洲成人久久影院| 欧美无砖专区一中文字| 亚洲精品久久嫩草网站秘色| 91亚洲精品久久久蜜桃| 一区二区三区.www| 色婷婷精品久久二区二区蜜臂av| 日本一区二区综合亚洲| 成人黄色大片在线观看| 国产欧美日韩在线| 成人午夜电影网站| 国产精品麻豆网站| av在线不卡电影| 一色桃子久久精品亚洲| 色哟哟一区二区在线观看| 亚洲最新视频在线观看| 欧美视频一区二| 蜜桃视频一区二区三区在线观看| 欧美一区二区日韩| 国产一区二区三区在线观看精品| 久久九九99视频| 99在线精品视频| 一区二区日韩av| 欧美性大战久久久| 日日欢夜夜爽一区| 欧美变态口味重另类| 丁香天五香天堂综合| 亚洲精品老司机| 欧美一区二区精品| 国产福利一区二区三区视频| 中文字幕在线不卡一区| 欧美日韩中字一区| 久久精品免费看| 亚洲欧洲av在线| 91精品国产91久久久久久一区二区| 美国十次综合导航| 中文字幕一区二区三区在线播放| 欧美亚洲综合另类| 久久精品国产第一区二区三区| 国产人成一区二区三区影院| 91丨porny丨中文| 免费在线成人网| 中文字幕高清不卡| 精品视频在线免费看|