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

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

?? clientwnd.cpp

?? 點歌系統
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
		int i;
		m_playsong.SetFilePath(m_addrecord.GetSongPath(m_pSelectID[1]));
		for(i = 2; i <= m_pSelectID[0]; i++)
			m_playsong.SetFilePath(m_addrecord.GetSongPath(m_pSelectID[i]));
		break;//已點歌單 end
	
 	case VK_F6://刪歌
 		gethostname(szText, sizeof(szText));		
		strsql.Format("select * from request where username='%s' order by playseq", 
			szText);
		ShowSelectSong(strsql, "已點歌清單,按對應的數字鍵刪除:", false, false);
		m_nMenuFlag = 4;//將m_nMenuFlag置4,執行刪歌操作
		//發送消息到服務器,所選歌曲已更改
 		CClientSocket::SendMsg("LoadAgain", 10);
		break;
	
	case 'T'://TV和VGA
 		break;
	}
	
	CWnd::OnKeyDown(nChar, nRepCnt, nFlags);
}

//////////////////////////////////////////////////////////////////////////////////
//函數功能: 顯示菜單
//參數說明: nMenuIndex: 當前菜單索引
void CClientWnd::ShowMenu(int nMenuIndex)
{
	CClientDC dc(this);

 	CDC mdc;
	CDC mdcsgn;
	mdcsgn.CreateCompatibleDC(&dc);
 	mdc.CreateCompatibleDC(&dc);

	//加載位圖
	HBITMAP hbmpsgn;
  	HBITMAP hbmp = LoadBitmap(m_conserver.GetAppPath() + "picture\\login.bmp", m_nScreenX, m_nScreenY);

    SelectObject(mdc.m_hDC, hbmp);

	int xpos = GetXPos(m_selectmenu[nMenuIndex].m_strMenuItem[0].GetBuffer(0));
	int ypos = 40;
	int i, j;
	
	TextOut(&mdc.m_hDC, xpos-200, ypos+=40, m_selectmenu[nMenuIndex].m_strMenuItem[0], RGB(255,0,255));
	xpos-=150;

	int x = m_selectmenu[nMenuIndex].GetLftRtIndex();
	int y = m_selectmenu[nMenuIndex].GetUpDwnIndex();

	switch( nMenuIndex )
	{
	case 0://顯示主菜單
	case 1://顯示語種查詢菜單
	case 2://顯示歌手查詢菜單
 		for(i = 1; i < m_selectmenu[nMenuIndex].GetMenuItemNum(); i++)
		{
			TextOut(&mdc.m_hDC, xpos, ypos+i*40, m_selectmenu[nMenuIndex].m_strMenuItem[i]);
		}

		int nIndex;
		nIndex = (x-1)*10+y;
		if( nMenuIndex == 2 )//貼上各歌手的圖片
		{
			hbmpsgn = LoadBitmap(m_strSingerPath[nIndex-1], 120, 150);
			SelectObject(mdcsgn.m_hDC, hbmpsgn);
			BitBlt(mdc.m_hDC, xpos+200, ypos+40, 120, 150, mdcsgn.m_hDC, 0, 0, SRCCOPY);
		}
		TextOut(&mdc.m_hDC, xpos+(x-1)*40, ypos+y*40, m_selectmenu[nMenuIndex].m_strMenuItem[nIndex], RGB(255,0,255));
		if( nMenuIndex == 0 )
		{
			int xpos = GetXPos("按返回鍵查詢已用時間和費用.");
			TextOut(&mdc.m_hDC, xpos, m_nScreenY-100, "按返回鍵查詢已用時間和費用.", RGB(255,0,255));
		}
		break;
	case 3://顯示字母查詢菜單
 		for(i = 0; i < m_selectmenu[nMenuIndex].GetMenuItemNum()/10 + 1; i++)
		{
			for( j = 1; j < 11; j++)
			{
				if(i*10+j < m_selectmenu[nMenuIndex].GetMenuItemNum())
					TextOut(&mdc.m_hDC, xpos+(j-1)*40, ypos+(i+1)*40, m_selectmenu[nMenuIndex].m_strMenuItem[i*10+j]);			
			}
		}
		if( (y-1)*10+x > 26)//判斷移動后的位置是否大于26,是則改變X,Y坐標,
		{
			if( x > 6 )
			{
				x = 1;
				m_selectmenu[nMenuIndex].SetLftRtIndex(x);
			}
			else if( x < 0 )
			{
				x = 6;
				m_selectmenu[nMenuIndex].SetLftRtIndex(x);
			}
			m_selectmenu[nMenuIndex].SetUpDwnIndex(y);
		}

		TextOut(&mdc.m_hDC, xpos+(x-1)*40, ypos+y*40, m_selectmenu[nMenuIndex].m_strMenuItem[(y-1)*10+x], RGB(255,0,255));
		TextOut(&mdc.m_hDC, xpos-40, ypos+200, "歌名首字母:  ", RGB(255,0,255));
		TextOut(&mdc.m_hDC, xpos+150, ypos+200, m_strAlphabet);
		TextOut(&mdc.m_hDC, xpos-40, m_nScreenY-100, "按0選擇字母,3刪除字母,確定鍵查詢", RGB(255,0,255));
		break;
	case 4://顯示歌名長度菜單
		for(i = 1; i < 10; i++)
		{
			TextOut(&mdc.m_hDC, xpos+(i-1)*40, ypos+40, m_selectmenu[nMenuIndex].m_strMenuItem[i]);
		}
		TextOut(&mdc.m_hDC, xpos+(x-1)*40, ypos+y*40, m_selectmenu[nMenuIndex].m_strMenuItem[(y-1)*10+x], RGB(255,0,255));
		break;
	}

	dc.BitBlt(0, 0, m_nScreenX, m_nScreenY, &mdc, 0, 0, SRCCOPY);
}

//////////////////////////////////////////////////////////////////////////////////
//函數功能: 執行查詢操作
/*參數說明: nIndex == 0 為按確認鍵時調用 
            nIndex != 0 為按下的數字鍵 */
void CClientWnd::SelectSong(int nIndex)
{
	int npos;
	int nTotallen;//字符串總長度,得到查詢條件時用
 	CString strsql;//SQL語句
	CString strtmp;

	if( nIndex == 0 )
	{
		//計算當前選中的菜單在數組中的位置
		int x = m_selectmenu[m_nMenuIndex].GetLftRtIndex();
		int y = m_selectmenu[m_nMenuIndex].GetUpDwnIndex();
		if( m_nMenuIndex < 3 )//列優先
			nIndex = (x-1)*10+y;
		else//行優先
			nIndex = (y-1)*10+x;

		if( m_strAlphabet.IsEmpty() )
			m_strAlphabet = m_selectmenu[m_nMenuIndex].m_strMenuItem[nIndex];
	}
	
	switch( m_nMenuIndex )
	{
	case 1://按語種查詢
		if( nIndex > 0 && nIndex < m_selectmenu[m_nMenuIndex].GetMenuItemNum())
		{
			//從當前選中的菜單項中找出用于查詢的關鍵字保存在strtmp中
			nTotallen = m_selectmenu[m_nMenuIndex].m_strMenuItem[nIndex].GetLength();
			npos = m_selectmenu[m_nMenuIndex].m_strMenuItem[nIndex].Find("、");
			strtmp = m_selectmenu[m_nMenuIndex].m_strMenuItem[nIndex].Right(nTotallen - npos - 3);
			
			strsql.Format("select ID, songname, singer from songlist where speech='%s' order by songname", strtmp);
			ShowSelectSong(strsql);
			m_nMenuFlag = 3;//將m_nMenuFlag置3,下一步將執行選歌操作
		}
		break;//按語種查詢 end
	case 2://按歌手查詢 begin
		if( nIndex > 0 && nIndex < m_selectmenu[m_nMenuIndex].GetMenuItemNum())
		{
			//從當前選中的菜單項中找出用于查詢的關鍵字保存在strtmp中
			nTotallen = m_selectmenu[m_nMenuIndex].m_strMenuItem[nIndex].GetLength();
			npos = m_selectmenu[m_nMenuIndex].m_strMenuItem[nIndex].Find("、");
			strtmp = m_selectmenu[m_nMenuIndex].m_strMenuItem[nIndex].Right(nTotallen - npos - 3);
			
			strsql.Format("select ID, songname, singer from songlist where singer='%s' order by songname", strtmp);
			ShowSelectSong(strsql);
			m_nMenuFlag = 3;
		}
		break;//按歌手查詢 end
	case 3://按字母查詢
		if( nIndex > 0 && nIndex < m_selectmenu[m_nMenuIndex].GetMenuItemNum())
		{
 			strsql.Format("select ID, songname, singer, fstalphabet from songlist order by songname", m_strAlphabet);
			ShowSelectSong(strsql);
			m_nMenuFlag = 3;//將m_nMenuFlag置3,下一步將執行選歌
		}
		break;
	case 4://按歌名長度查詢
		if( nIndex > 0 && nIndex < m_selectmenu[m_nMenuIndex].GetMenuItemNum())
		{
			strtmp = m_selectmenu[m_nMenuIndex].m_strMenuItem[nIndex];
			strsql.Format("select ID, songname, singer from songlist where namelen='%s' order by songname", strtmp);
			ShowSelectSong(strsql);
			m_nMenuFlag = 3;//將m_nMenuFlag置3,下一步將執行選歌
		}
		break;
	}
}

//////////////////////////////////////////////////////////////////////////////////
//函數功能: 將選定的歌顯示在屏幕上
/*參數說明: lpszsql: 將執行的SQL查詢語句
            lpszTitle: 顯示的提示信息
            bPageDnUp: 是否為翻頁, true為翻頁
            bSonglistTable: 是否為顯示songlist表里的歌曲*/
void CClientWnd::ShowSelectSong(LPCTSTR lpszsql, LPCTSTR lpszTitle, BOOL bPageDnUp, BOOL bSonglistTable)
{
	CClientDC dc(this);

	DrawBGBmp();

	int xpos;
	int ypos = 40;
 	int nItemNum = 0;

	m_strPreSelect = lpszsql;

 	try
	{
		_RecordsetPtr pRequestPtr;
		pRequestPtr = m_addrecord.GetRecordsetPtr((_bstr_t)lpszsql);
		
		if( !pRequestPtr->BOF )
			pRequestPtr->MoveFirst();
		else
		{
			xpos = GetXPos("沒有您要找的歌,請重新查找");
			TextOut(&dc.m_hDC, xpos, ypos, "沒有您要找的歌,請重新查找", RGB(255,0,255));
			return;
		}
		
		CString strFstAlphabet;
		if( !bPageDnUp )//得到查詢后的總歌數
		{
			m_nPageNum = 0;
			while( !pRequestPtr->adoEOF )
			{
				if( bSonglistTable && m_nMenuIndex == 3 )//當前的查詢為按字母查詢,則從所有的歌中找出歌名首字母中含有要查詢字母的歌
				{
					strFstAlphabet = (LPCTSTR)(_bstr_t)pRequestPtr->GetCollect("fstalphabet");
					if( strFstAlphabet.Find(m_strAlphabet) != 0 )
					{
						pRequestPtr->MoveNext();
						continue;
					}
				}
				nItemNum++;
				if( nItemNum > m_nPageNum*10 )
					m_nPageNum++;

				pRequestPtr->MoveNext();
			}
			if( nItemNum == 0 )
			{
				xpos = GetXPos("沒有您要找的歌,請重新查找");
				TextOut(&dc.m_hDC, xpos, ypos, "沒有您要找的歌,請重新查找", RGB(255,0,255));
				return;
			}
			
			if( m_pSelectID != NULL )
			{
				delete[] m_pSelectID;
				m_pSelectID = NULL;
			}
			m_pSelectID = new int[nItemNum + 1];//分配一個數組,存入查詢得到的歌的ID
			m_pSelectID[0] = nItemNum;//0號位置存放ID的個數
			m_nPageIndex = 1;
			
			nItemNum = 0;
			pRequestPtr->MoveFirst();
		}
		
 		xpos = GetXPos(lpszTitle);
		TextOut(&dc.m_hDC, xpos-200, ypos+=40, lpszTitle, RGB(255,0,255));
		xpos-=150;
		
		_variant_t vtID;
 		_variant_t vtsongname;
		_variant_t vtsinger;
		
		CString strmsg;
		
		int nItemIndex = 0;
		while( !pRequestPtr->adoEOF )
		{
			nItemIndex++;
			if( bPageDnUp && bSonglistTable && nItemIndex <= (m_nPageIndex-1)*10 )//控制查詢歌曲時的翻頁
			{
				pRequestPtr->MoveNext();
				continue;
			}

			if( !bPageDnUp && bSonglistTable && m_nMenuIndex == 3 )//當前的查詢為按字母查詢,則從所有的歌中找出歌名首字母中含有要查詢字母的歌
			{
				strFstAlphabet = (LPCTSTR)(_bstr_t)pRequestPtr->GetCollect("fstalphabet");
				if( strFstAlphabet.Find(m_strAlphabet) != 0 )
				{
					pRequestPtr->MoveNext();
					continue;
				}
			}
	
			int nID;
			nItemNum++;
			
			if( !bPageDnUp )//是否為翻頁, 否, 則把ID存入數組
			{
				vtID = pRequestPtr->GetCollect("ID");
				nID = atoi((LPCTSTR)(_bstr_t)vtID);
				m_pSelectID[nItemNum] = nID;
			}

			if( nItemNum <= 10 )//每頁顯示十首歌,當nItemNum>10時,不再顯示
			{
				vtsinger = pRequestPtr->GetCollect("singer");
				vtsongname = pRequestPtr->GetCollect("songname");
				
				strmsg.Format( "%-3d、 %-20s  %-10s", 
					nItemNum, 
					(LPCTSTR)(_bstr_t)vtsongname, 
					(LPCTSTR)(_bstr_t)vtsinger );
				TextOut(&dc.m_hDC, xpos, ypos+=40, strmsg);
			}
			
			pRequestPtr->MoveNext();
		}
//		TextOut(&dc.m_hDC, 
	}
	catch(_com_error e)
	{
		AfxMessageBox(e.ErrorMessage());
		return;
	}
}

//////////////////////////////////////////////////////////////////////////////////
//函數功能: 將選定的歌曲加到數據庫中
/*參數說明: nIndex: 選定歌曲在數組m_pSelectID中的下標
返回值說明: 返回0: 失敗 返回1: 成功 返回2: 該歌已選過*/
BOOL CClientWnd::AddSong(int nIndex)
{
	if(nIndex > m_pSelectID[0])
		return 0;

	char hostname[256];
	gethostname(hostname, sizeof(hostname));	
	
	try
	{
		CString strsql;
		strsql.Format("select * from songlist where ID=%d", m_pSelectID[nIndex]);
		_RecordsetPtr pRequestPtr;
		pRequestPtr = m_addrecord.GetRecordsetPtr(strsql);

		char szID[10];
		_variant_t vtsongname;
        _variant_t vtsinger;

		itoa(m_pSelectID[nIndex], szID, 10);
		vtsongname = pRequestPtr->GetCollect("songname");
		vtsinger = pRequestPtr->GetCollect("singer");

		if( m_addrecord.SaveRecord(m_pSelectID[nIndex], hostname, vtsongname, vtsinger) == 2 )
			return 2;
	}
	catch(_com_error e)
	{
		AfxMessageBox((CString)e.ErrorMessage() + "選歌失敗");
		return 0;
	}

	return 1;
}

void CClientWnd::SetUsedTime(LPCTSTR lpszUsedTime)
{
	m_strUsedTime = lpszUsedTime;
}

void CClientWnd::SetPayforMoney(LPCTSTR lpszPayforMoney)
{
	m_strPayforMoney = lpszPayforMoney;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产网站一区二区| 日韩一区二区电影在线| 国产精品久久综合| youjizz久久| 亚洲一区二区三区四区不卡| 欧美亚洲图片小说| 日韩—二三区免费观看av| 日韩午夜精品电影| 国产激情一区二区三区| 亚洲日本va午夜在线影院| 一本大道久久a久久精二百| 一区二区三区久久久| 91麻豆精品国产91久久久| 激情综合网av| 中文字幕欧美一区| 91福利资源站| 国产曰批免费观看久久久| 国产精品视频麻豆| 欧美剧情电影在线观看完整版免费励志电影| 日韩电影在线免费看| 国产精品你懂的在线欣赏| 欧美日韩极品在线观看一区| 国产精品996| 亚洲成人777| 国产调教视频一区| 欧美日韩激情在线| 国产成人久久精品77777最新版本| 亚洲欧美日韩一区| 精品国产精品网麻豆系列| 色综合天天综合色综合av| 日韩国产欧美一区二区三区| 国产精品美女www爽爽爽| 欧美夫妻性生活| 成人高清视频免费观看| 日本一区中文字幕| 亚洲三级在线免费| 精品国产伦一区二区三区观看方式 | 韩国三级在线一区| 夜夜嗨av一区二区三区网页| 久久久精品国产免费观看同学| 99久久综合色| 黄色小说综合网站| 午夜视黄欧洲亚洲| 亚洲欧美怡红院| 精品国产网站在线观看| 欧美无乱码久久久免费午夜一区 | 亚洲国产精品一区二区久久| 中文字幕国产一区| 欧美大片一区二区| 欧美吻胸吃奶大尺度电影| 不卡的av网站| 国产精品 日产精品 欧美精品| 人禽交欧美网站| 亚洲午夜日本在线观看| 综合欧美亚洲日本| 中文字幕欧美三区| 欧美mv日韩mv亚洲| 91精品国产色综合久久| 91久久精品一区二区三| 成人18视频在线播放| 国产精品77777| 免费久久99精品国产| 天堂一区二区在线| 亚洲国产日韩一级| 一区二区久久久久| 日韩理论片在线| 亚洲欧美视频一区| 日韩理论片一区二区| 国产精品久线观看视频| 国产天堂亚洲国产碰碰| 国产午夜亚洲精品午夜鲁丝片 | 国产日韩欧美电影| 久久综合色综合88| 欧美大黄免费观看| 欧美v国产在线一区二区三区| 欧美电影在哪看比较好| 7878成人国产在线观看| 欧美日韩视频一区二区| 在线播放91灌醉迷j高跟美女 | 精品久久久久久亚洲综合网| 日韩免费在线观看| 精品捆绑美女sm三区| 亚洲精品在线观看视频| 国产清纯在线一区二区www| 欧美国产激情二区三区| 国产精品卡一卡二| 一区二区三区.www| 日韩黄色免费网站| 久久99精品久久久久久久久久久久 | 午夜一区二区三区视频| 日韩制服丝袜先锋影音| 欧美a一区二区| 国产在线精品一区在线观看麻豆| 国产一区二区三区最好精华液| 国产盗摄一区二区三区| 色综合久久九月婷婷色综合| 日本精品免费观看高清观看| 欧美久久一区二区| 日韩精品一区二区三区四区| 中文一区在线播放| 亚洲激情在线播放| 久久国内精品视频| 不卡的看片网站| 欧美美女激情18p| 精品国产乱码久久久久久免费| 国产视频不卡一区| 亚洲一二三四在线观看| 日韩电影在线一区二区三区| 国产不卡视频在线观看| 日本福利一区二区| 欧美大片在线观看| 亚洲日穴在线视频| 老司机精品视频线观看86| 成人黄色小视频在线观看| 欧美日韩一区三区| 国产亚洲欧美在线| 香蕉乱码成人久久天堂爱免费| 激情综合色丁香一区二区| 色欧美88888久久久久久影院| 9191久久久久久久久久久| 国产精品国产三级国产aⅴ无密码| 伊人色综合久久天天| 国产乱一区二区| 欧美写真视频网站| 国产欧美1区2区3区| 亚洲第一激情av| www.一区二区| 精品美女被调教视频大全网站| 亚洲六月丁香色婷婷综合久久| 韩国v欧美v日本v亚洲v| 欧美色图天堂网| 国产精品成人免费| 国模一区二区三区白浆| 7777女厕盗摄久久久| 成人免费一区二区三区在线观看| 久久国产精品第一页| 欧美在线不卡视频| 国产精品人人做人人爽人人添| 麻豆视频一区二区| 欧美日韩中文字幕一区| 国产精品成人午夜| 国产传媒一区在线| 精品国产免费人成电影在线观看四季 | 国产亚洲精品中文字幕| 奇米色一区二区三区四区| 91国内精品野花午夜精品| 国产精品福利一区| 国产精品一二一区| 91精品国产一区二区人妖| 亚洲一区电影777| 一本大道久久a久久精二百| 国产精品婷婷午夜在线观看| 寂寞少妇一区二区三区| 日韩一区二区在线观看| 天天影视色香欲综合网老头| 欧美三级中文字幕在线观看| 国产乱淫av一区二区三区| 5858s免费视频成人| 一区二区三区免费在线观看| 久久91精品久久久久久秒播| 欧美群妇大交群中文字幕| 亚洲综合在线观看视频| 日日夜夜免费精品| 欧美午夜精品一区| 亚洲国产乱码最新视频| 欧美制服丝袜第一页| 亚洲欧美日韩在线播放| 91免费在线播放| 1000部国产精品成人观看| 99久久精品国产网站| 中文字幕一区在线观看视频| 99久久精品国产一区二区三区| 亚洲视频免费看| 国产一区二区在线电影| 中文字幕巨乱亚洲| 日韩一级欧美一级| 久久亚区不卡日本| 国产农村妇女毛片精品久久麻豆| 91精品国产日韩91久久久久久| 欧美日韩在线三区| 日本欧美在线看| 日韩在线卡一卡二| 国产一区在线看| 99在线精品观看| 欧美日韩精品电影| 欧美一区二区在线播放| 久久久蜜桃精品| 国产高清亚洲一区| 亚洲欧美另类小说视频| 中文字幕一区二区三区在线观看 | 日韩欧美久久久| 日韩综合小视频| 亚洲精品你懂的| 久久精品亚洲精品国产欧美| 日韩久久免费av| 91麻豆精品久久久久蜜臀| 狠狠色综合日日| 久久久久久久久久久久久久久99| www久久久久| 国产成人免费在线视频|