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

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

?? ctelnetview.cpp

?? bbs高級程序開發
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
			m_strLine += ch;
			break;
		} 

		ndx ++;


		if (ndx == nBytes)
		{
			bLine = TRUE;
		}
	}
	return bLine;
}

//數據處理
void CTelnetView::MessageReceived(LPCSTR pText)
{
	BOOL bSkip = FALSE;
	int loop=0;
	CString tempStr="0123456789;";
	CString tempStr2;
	int ColorVal;
	int tempY=0;

	CDC * pDC = GetDC();
	OnPrepareDC(pDC);
	DrawCursor(pDC,FALSE);

	CRect clip;
	pDC->GetClipBox(clip);

	CMainFrame * frm = (CMainFrame*)GetTopLevelFrame();
	//設置顏色
	pDC->SetTextColor(cTextColor);
	pDC->SetBkColor(cBackgroundColor);

	pDC->SelectObject(GetStockObject(ANSI_FIXED_FONT));
	int length = strlen(pText);
	char text[2] = {0x00, 0x00};
	while(loop < length)
	{
		switch(pText[loop])
		{
		case 8: //刪除
			CurrentXX--;
			if(CurrentXX < 0) CurrentXX = 0;
			loop++;
			break;
		case 9: //TAB鍵
			CurrentXX++; //TBD make this smarter
			loop++;
			break;
		case 13: //換行CR
			m_strline.Empty();
			CurrentXX = 0;
			loop++;
			break;
		case 27:
			loop++;
			//分析緊接著27的字符是否是91,如果不是91,則這兩個字符都不作處理了,直接跳出
			if (pText[loop]!=91) 
			{
				loop++;
				break;
			}
			//如果是91,則接下來的數據則是系統相關數據
			else
			{
				loop++;
				while (tempStr.Find(pText[loop])!=-1) 
				{
					tempStr2+=pText[loop];
					loop++;
				}
				if (pText[loop]=='m')//如果接下來的數據是m,則分析前面獲得的字符串
				{

					//循環獲得字符串中的值,其中字符串中的值都是以分號隔開的
					while (tempStr2!="")
					{
						if (tempStr2.Find(";")!=-1)
						{
							ColorVal=atoi(tempStr2.Mid(0,tempStr2.Find(";")));
							tempStr2=tempStr2.Mid(tempStr2.Find(";")+1);

						}
						else
						{
							ColorVal=atoi(tempStr2);
							tempStr2.Empty();
						}

						//獲得一個值
						//改變前景顏色,這個顏色可以按照一定的規則來自定義
						
						if (ColorVal>29 && ColorVal<38)
							//cTextColor=RGB(0,0,255);
						//設置背景顏色
						if (ColorVal>39 && ColorVal<48)
							//cBackgroundColor=RGB(0,255,ColorVal);
						//恢復基本設置
						if (ColorVal==0)
						{
							//cBackgroundColor=RGB(0,0,0);
							//cTextColor=RGB(255,255,255);
						}
						//如果為1,則設置前景色
						//if ColorVal==1
						//表示要反色
						//if ColorVal==7

					}
				}
				//如果為字符K,表示要畫一條以背景色的矩形區域
				if (pText[loop]=='K')
				{

					int x,y;
					CString myStr;
					//保持原來的坐標

					//畫出矩形區域,因為以背景色畫,所以相當于移動光標
					//將坐標變量改變到目前的位置
					x=CurrentXX;
					y=CurrentYY;
					for (int l=CurrentXX;l<80;l++)
					{
						cText[l][CurrentYY]=' ';
						myStr+=' ';
					}
					pDC->TextOut(x*dtX, y * dtY, myStr);

					CurrentXX=x;
					CurrentYY=y;

				}
	            //如果字符為C,表示要改變當前的橫坐標
				if (pText[loop]=='C')
				{
	            //獲得橫坐標的改變量
					if (tempStr2.Find(";")!=-1)
					{
						ColorVal=atoi(tempStr2.Mid(0,tempStr2.Find(";")));
						tempStr2=tempStr2.Mid(tempStr2.Find(";")+1);
					}
					else
					{
						ColorVal=atoi(tempStr2);
						tempStr2.Empty();
					}
					//然后增建坐標值,注意這里要加上字符寬度
					CurrentXX=CurrentXX+ColorVal;
				}
				//如果字符為H,表示重新設置橫坐標和縱坐標
				if (pText[loop]=='H')
				{
                //獲得縱坐標值,在服務器發送的過程中,先發送縱坐標值
				TRACE0("H");

				int tX=0,tY=0;
				//char buffer3[20];
					tY=atoi(tempStr2.Mid(0,tempStr2.Find(";")));
					tempStr2=tempStr2.Mid(tempStr2.Find(";")+1);
					//獲得橫坐標值,注意這里獲得值是沒有加字符寬度的
					tX=atoi(tempStr2);
					if (tX>0 && tY>0)
					{
						CurrentYY=tY-1;
						CurrentXX=tX-1;
					}
				}

				//如果為字符J,表示要清除整個屏幕
				if (pText[loop]=='J')
				{
					ClearWindows(pDC);
				}
			}
			loop++;
			IfOutput=false;
			break;
		case 0:
			loop++;
		case 10: //換行
			{
				
				CurrentYY=CurrentYY+1;
				if (CurrentYY>=bufferLines)
				{
					for(int row = 0; row < bufferLines; row++)
					{
						for(int  col = 0; col < 80; col++)
						{
							cText[col][row] = cText[col][row+1];
						}
					}
					for(int  col = 0; col < 80; col++)
					{
						cText[col][bufferLines-1] = ' ';
					}
				CurrentYY=CurrentYY-1;
				DoDraw(pDC);
				}
				
			}
			loop++;
			break;

		default://輸出數據
			{
					cText[CurrentXX][CurrentYY] = pText[loop];
					m_strline.Empty();
					for (int i=0;i<80;i++)
					{
						if (cText[i][CurrentYY]!=27)
							m_strline += cText[i][CurrentYY];
						else
							break;
					}


					pDC->TextOut(0, CurrentYY * dtY, m_strline);
					CurrentXX++;
				
			}
			tempStr2.Empty();
			loop++;

			break;
		}
	}
	DrawCursor(pDC,TRUE);
	ReleaseDC(pDC);
}

//按鍵處理
void CTelnetView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) 
{
	//發出回車鍵
	if (nChar == VK_RETURN)
	{
		DispatchMessage("\r\n");
	}
	else
	{
		DispatchMessage(nChar);
	}
}

//畫光標
void CTelnetView::DrawCursor(CDC * pDC, BOOL pDraw)
{
	COLORREF color;
	CMainFrame * frm = (CMainFrame*)GetTopLevelFrame();
	if(pDraw) //draw
	{
		color = cTextColor;
	}
	else //erase
	{
		color = cBackgroundColor;
	}
	CRect rect(CurrentXX * dtX + 2, CurrentYY * dtY + 1, 
		CurrentXX * dtX + dtX - 2, CurrentYY * dtY + dtY -1);
	pDC->FillSolidRect(rect, color);
}

void CTelnetView::OnSize(UINT nType, int cx, int cy) 
{
	CScrollView::OnSize(nType, cx, cy);
	if(IsWindow(m_hWnd))
	{
		if(IsWindowVisible())
		{
			//ScrollToPosition(CPoint(0, bufferLines * 1000)); //go way past the end
		}
	}
}

BOOL CTelnetView::OnEraseBkgnd(CDC* pDC) 
{
	CRect clip;
	pDC->GetClipBox(clip);
	CMainFrame * frm = (CMainFrame*)GetTopLevelFrame();
	pDC->FillSolidRect(clip,cBackgroundColor);
	return TRUE;
}

//查找字符
int CTelnetView::Find(CString str, char ch)
{
	char* data = str.GetBuffer(0);
	int len = str.GetLength();
	int i = 0;
	for(i = 0; i < len; i++){
		if(data[i] == ch)
			break;
	}
	str.ReleaseBuffer();
	return i;
}

//方向鍵處理
void CTelnetView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) 
{
	unsigned char myChar[3];

	// TODO: Add your message handler code here and/or call default
	//左方向鍵
	if (nChar==37)
	{
		myChar[0]=27;
		myChar[1]=91;
		myChar[2]=68;

		DispatchMessage(myChar);
	}
	//右方向鍵
	else if (nChar==39)
	{
		myChar[0]=27;
		myChar[1]=91;
		myChar[2]=67;

		DispatchMessage(myChar);
	}
	//上方向鍵
	else if (nChar==38)
	{
		myChar[0]=27;
		myChar[1]=91;
		myChar[2]=65;

		DispatchMessage(myChar);
	}
	//下方向鍵
	else if (nChar==40)
	{
		myChar[0]=27;
		myChar[1]=91;
		myChar[2]=66;

		DispatchMessage(myChar);
	}
	CView::OnKeyDown(nChar, nRepCnt, nFlags);
	//MessageBox((char*)nChar);
}

//清除屏幕
void CTelnetView::ClearWindows(CDC *pDc)
{
	for(int x = 0; x < 80; x++)
	{
		for(int y = 0; y < bufferLines; y++)
		{
			cText[x][y] = ' ';
		}
	}
	DoDraw(pDc);
	CurrentYY=0;
	CurrentXX=0;
}

void CTelnetView::OnFileNew() 
{
	BOOL bOK;

	// TODO: Add your command handler code here
	//彈出設定服務器對話框
	CHostDialog host;
	host.DoModal();
	cHostName = host.m_HostName;

	//創建socke
	cSock = new CClientSocket(this);
	if(cSock != NULL)
	{
		bOK = cSock->Create();
		if(bOK == TRUE)
		{
			cSock->AsyncSelect(FD_READ | FD_WRITE | FD_CLOSE | FD_CONNECT | FD_OOB);
			//連接服務器
			cSock->Connect(cHostName, 23);
			//設定標題
			GetDocument()->SetTitle(cHostName);
			Sleep(90);
		}
		else
		{
			ASSERT(FALSE);  
			delete cSock;
			cSock = NULL;
		}
	}
	else
	{
		AfxMessageBox("不能創建socket",MB_OK);
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人免费毛片片v| 日韩久久久精品| 91.com视频| 欧美国产综合色视频| 日韩中文字幕91| 99精品欧美一区二区三区小说| 欧美一区二区三区免费在线看 | 欧美日韩日日骚| 日本一区二区三区四区| 青青草伊人久久| 色综合久久66| 国产精品每日更新| 麻豆精品国产传媒mv男同| 欧美在线影院一区二区| 国产欧美日韩久久| 狠狠网亚洲精品| 欧美一区二区私人影院日本| 亚洲伦在线观看| 成人h动漫精品一区二| 2019国产精品| 蓝色福利精品导航| 欧美夫妻性生活| 亚洲午夜羞羞片| 欧美亚洲尤物久久| 亚洲天堂2016| 色综合天天综合在线视频| 欧美激情在线看| 国产一区二区三区四区五区美女| 91精品国产免费| 天天亚洲美女在线视频| 欧洲精品视频在线观看| 亚洲色图.com| 色婷婷精品大在线视频| 亚洲裸体xxx| 91久久精品网| 亚洲一级片在线观看| 色欧美片视频在线观看| 一区二区免费看| 欧美中文字幕一区| 亚洲国产日韩一区二区| 91麻豆精品国产91久久久更新时间| 亚洲电影你懂得| 欧美人体做爰大胆视频| 日韩高清一区在线| 欧美成人bangbros| 国产成人av影院| 国产精品福利一区二区| 91亚洲精品久久久蜜桃| 久草热8精品视频在线观看| 欧美一区二区三区不卡| 久久99国产精品免费| 久久精品亚洲精品国产欧美| 国产999精品久久久久久绿帽| 国产精品久线在线观看| 91官网在线观看| 日韩av一级片| 久久久亚洲精品一区二区三区| 成人看片黄a免费看在线| 亚洲欧洲日韩一区二区三区| 欧美影视一区在线| 日本aⅴ免费视频一区二区三区| 久久伊人蜜桃av一区二区| 成人免费福利片| 亚洲小说春色综合另类电影| 日韩免费观看高清完整版在线观看| 国产乱码精品一区二区三区av| 亚洲同性同志一二三专区| 欧美视频一区二区| 国产综合久久久久久久久久久久| 亚洲色图在线播放| 91精品国产欧美一区二区成人| 91精品欧美综合在线观看最新| 国产成人午夜片在线观看高清观看| 综合在线观看色| 日韩丝袜美女视频| 91视频精品在这里| 免费看日韩精品| 中文字幕佐山爱一区二区免费| 日韩一级在线观看| 99国产精品国产精品毛片| 免费观看在线综合| 亚洲精品免费在线播放| 久久综合久久综合久久综合| 91官网在线观看| 粉嫩13p一区二区三区| 日本欧美在线看| 亚洲欧洲精品一区二区三区不卡| 精品日韩在线观看| 欧美撒尿777hd撒尿| 波多野结衣亚洲| 国产原创一区二区三区| 日韩精品久久久久久| 国产精品乱人伦| 日韩欧美电影在线| 欧美日韩国产综合视频在线观看| youjizz久久| 国产综合成人久久大片91| 亚洲午夜三级在线| 18成人在线视频| 国产日产精品1区| 欧美大片在线观看| 67194成人在线观看| 99久久久久免费精品国产 | 欧美中文字幕亚洲一区二区va在线| 欧美一区二区三区色| 97精品久久久久中文字幕| 国产一区欧美二区| 美腿丝袜亚洲一区| 日本欧美肥老太交大片| 午夜精品视频在线观看| 亚洲综合免费观看高清完整版| 国产精品久99| 国产精品视频在线看| 国产无遮挡一区二区三区毛片日本| 日韩亚洲欧美一区| 日韩免费一区二区三区在线播放| 欧美色电影在线| 欧美日韩黄色影视| 欧美人牲a欧美精品| 欧美日韩国产影片| 制服丝袜在线91| 日韩一级黄色片| 精品免费99久久| 精品久久久网站| 国产亚洲女人久久久久毛片| 国产欧美日韩卡一| 亚洲欧洲一区二区三区| 亚洲美女屁股眼交| 亚洲午夜羞羞片| 麻豆精品在线观看| 九九视频精品免费| 国产激情偷乱视频一区二区三区| 国产二区国产一区在线观看| 成人免费观看视频| 一本久久综合亚洲鲁鲁五月天 | 色婷婷久久一区二区三区麻豆| 91污在线观看| 欧美日韩国产高清一区二区 | 中文字幕免费一区| 亚洲欧洲日韩在线| 亚洲高清在线精品| 久久精工是国产品牌吗| 国产成人午夜精品5599| 色噜噜久久综合| 7878成人国产在线观看| 久久久久国色av免费看影院| 中文字幕一区在线观看| 亚洲成人第一页| 欧美丰满少妇xxxbbb| 精品少妇一区二区三区在线播放| 国产日韩亚洲欧美综合| 一区二区欧美视频| 激情综合一区二区三区| a亚洲天堂av| 91.com在线观看| 中文av字幕一区| 视频在线观看91| 粉嫩嫩av羞羞动漫久久久| 欧美在线短视频| 久久久噜噜噜久久人人看| 亚洲精品五月天| 国产综合久久久久久鬼色| 色综合咪咪久久| 精品久久久久一区| 一区二区三区成人在线视频| 国产一区二区视频在线播放| 色天使久久综合网天天| 久久美女高清视频| 亚洲第一成人在线| 成人免费看的视频| 日韩欧美成人激情| 亚洲一区二区三区四区在线 | 久久丁香综合五月国产三级网站| 成人av免费观看| 精品美女被调教视频大全网站| 亚洲欧美日韩中文字幕一区二区三区| 老司机精品视频线观看86| 色成人在线视频| 欧美激情一区二区三区全黄 | 亚洲精品视频免费观看| 国产一区二区在线影院| 欧美日韩三级在线| 亚洲人成小说网站色在线| 国产一本一道久久香蕉| 一区二区在线电影| 国产精品一区二区不卡| 日韩亚洲欧美成人一区| 水野朝阳av一区二区三区| 91搞黄在线观看| 成人免费在线观看入口| 成人性生交大片免费| 久久亚洲一级片| 六月婷婷色综合| 日韩一级视频免费观看在线| 午夜精品福利一区二区蜜股av| 91国产精品成人| 亚洲美女一区二区三区| 99精品热视频| 亚洲三级理论片| 91美女视频网站|