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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? clientwnd.cpp

?? 點(diǎn)歌系統(tǒng)
?? CPP
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
// ClientWnd.cpp : implementation file
//

#include "stdafx.h"
#include "songclient.h"
#include "ClientWnd.h"

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

/////////////////////////////////////////////////////////////////////////////
// CClientWnd
CString CClientWnd::m_strUsedTime = "";
CString CClientWnd::m_strPayforMoney = "";

CClientWnd::CClientWnd()
{
	//得到當(dāng)前屏幕的
 	m_nScreenX = GetSystemMetrics(SM_CXSCREEN);
	m_nScreenY = GetSystemMetrics(SM_CYSCREEN);
	CRect rcClient(-2, -2, /*200, 200);//*/m_nScreenX+2, m_nScreenY+2);

	//創(chuàng)建一個(gè)全屏窗口
	CreateEx(WS_EX_APPWINDOW, \
		AfxRegisterWndClass(CS_DBLCLKS, ::LoadCursor(NULL,IDC_ARROW), (HBRUSH)GetStockObject(WHITE_BRUSH), AfxGetApp()->LoadIcon(IDR_MAINFRAME)), \
		"點(diǎn)歌系統(tǒng)客戶端", \
		WS_SYSMENU | WS_POPUP | WS_VISIBLE, \
	    rcClient, \
		NULL, \
		NULL);

	m_nPageNum  = 0;
 	m_pSelectID = NULL;
 
	m_nMenuIndex = 0;
	m_nMenuFlag  = 1;

	m_pConnectionPtr = NULL;

	m_pmediaplay = NULL;

	m_bFstRun = true;
	m_strAlphabet = "";
	m_strPreSelect = "";
}

CClientWnd::~CClientWnd()
{
	//通知服務(wù)器已退出
	char szmsg[] = "quit";
	CClientSocket::SendMsg(szmsg, sizeof(szmsg));

	//從數(shù)據(jù)庫(kù)刪除本次已點(diǎn)的所有歌曲
	char szhostname[256];
	gethostname(szhostname, sizeof(szhostname));
	CString strsql;
	strsql.Format("delete from request where username='%s'", szhostname);
    m_addrecord.GetRecordsetPtr(strsql);

	if( m_pConnectionPtr != NULL)
	{
		if( m_pConnectionPtr->State )
			m_pConnectionPtr->Close();
	}
	if( m_pSelectID != NULL )
	{
		delete[] m_pSelectID;
		m_pSelectID = NULL;
	}
}

BEGIN_MESSAGE_MAP(CClientWnd, CWnd)
	//{{AFX_MSG_MAP(CClientWnd)
	ON_WM_PAINT()
	ON_WM_KEYDOWN()
	ON_WM_CREATE()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()


/////////////////////////////////////////////////////////////////////////////
// CClientWnd message handlers

/////////////////////////////////////////////////////////////////////////////
//函數(shù)功能: 設(shè)置各菜單的菜單項(xiàng)
void CClientWnd::InitMenuItem()
{
	int nMenuIndex = 0;
	m_selectmenu[nMenuIndex].SetMenuItemNum(5);
	m_selectmenu[nMenuIndex].m_strMenuItem = new CString[5];
	m_selectmenu[nMenuIndex].m_strMenuItem[0] = "請(qǐng)選擇選歌方式:";
	m_selectmenu[nMenuIndex].m_strMenuItem[1] = "1、 按語(yǔ)種";
	m_selectmenu[nMenuIndex].m_strMenuItem[2] = "2、 按歌手";
	m_selectmenu[nMenuIndex].m_strMenuItem[3] = "3、 按首字母";
	m_selectmenu[nMenuIndex].m_strMenuItem[4] = "4、 按歌名長(zhǎng)度";

	nMenuIndex++;
	m_selectmenu[nMenuIndex].SetMenuItemNum(m_nSpeechNum+1);
	m_selectmenu[nMenuIndex].m_strMenuItem = new CString[m_nSpeechNum+1];
	m_selectmenu[nMenuIndex].m_strMenuItem[0] = "語(yǔ)種類型:";
	m_selectmenu[nMenuIndex].m_strMenuItem[1] = "1、 國(guó)語(yǔ)";
	m_selectmenu[nMenuIndex].m_strMenuItem[2] = "2、 奧語(yǔ)";
	m_selectmenu[nMenuIndex].m_strMenuItem[3] = "3、 英語(yǔ)";
 
	nMenuIndex++;
	m_selectmenu[nMenuIndex].SetMenuItemNum(m_nSingerNum+1);
	m_selectmenu[nMenuIndex].m_strMenuItem = new CString[m_nSingerNum+1];
	m_selectmenu[nMenuIndex].m_strMenuItem[0] = "請(qǐng)選擇歌手:";
	m_selectmenu[nMenuIndex].m_strMenuItem[1] = "1、 劉若英";
	m_selectmenu[nMenuIndex].m_strMenuItem[2] = "2、 鄭秀文";
	m_selectmenu[nMenuIndex].m_strMenuItem[3] = "3、 王菲";
	m_selectmenu[nMenuIndex].m_strMenuItem[4] = "4、 王杰";
	m_selectmenu[nMenuIndex].m_strMenuItem[5] = "5、 陸毅";
	m_selectmenu[nMenuIndex].m_strMenuItem[6] = "5、 胡敏";

	nMenuIndex++;
	m_selectmenu[nMenuIndex].SetMenuItemNum(27);
	m_selectmenu[nMenuIndex].m_strMenuItem = new CString[27];
	m_selectmenu[nMenuIndex].m_strMenuItem[0] = "請(qǐng)選擇首字母:";
	for(int i = 1; i < 27; i++)
	{
		m_selectmenu[nMenuIndex].m_strMenuItem[i].Format("%c", 64+i);
	}

	nMenuIndex++;
	m_selectmenu[nMenuIndex].SetMenuItemNum(10);
	m_selectmenu[nMenuIndex].m_strMenuItem = new CString[10];
	m_selectmenu[nMenuIndex].m_strMenuItem[0] = "請(qǐng)選擇歌名長(zhǎng)度:";
    for(i =1; i < 10; i++)
	{
		m_selectmenu[nMenuIndex].m_strMenuItem[i].Format("%d", i);
	}

	//初始化各歌手圖片路徑
	for(i = 0; i< m_nSingerNum; i++)
	{
		m_strSingerPath[i].Format(m_conserver.GetAppPath() + "picture\\singer%d.bmp", i+1);
	}
}

int CClientWnd::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CWnd::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	CClientDC dc(this);

	m_bgmdc.CreateCompatibleDC(&dc);//創(chuàng)建與CClientDC兼容的DC
  	m_hbmp = LoadBitmap(m_conserver.GetAppPath() + "picture\\login.bmp", m_nScreenX, m_nScreenY);
	SelectObject(m_bgmdc.m_hDC, m_hbmp); //將位圖選入m_bgmdc

	AfxOleInit();//初始化COM
	CString strsql;
	strsql.Format("driver={SQL Server};Server=%s;DATABASE=%s;UID=%s;PWD=%s;", \
			        m_conserver.GetServerIp(), m_conserver.GetDatabaseName(), \
					m_conserver.GetUsername(), m_conserver.GetPassword() );
	try
	{
 		m_pConnectionPtr.CreateInstance(__uuidof(Connection));
		m_pConnectionPtr->Open((_bstr_t)strsql, "", "", adModeUnknown);

		m_addrecord.SetConnectionPtr(m_pConnectionPtr);
	}
	catch(_com_error e)
	{
		AfxMessageBox((CString)e.ErrorMessage() + "連接數(shù)據(jù)庫(kù)失敗.");
		return -1;
	}

   	InitMenuItem();

	m_playsong.Create(IDD_Playsong, this);

	return 0;
}

//////////////////////////////////////////////////////////////////////////////////
//函數(shù)功能: 返回一行字出現(xiàn)在屏幕中間的X坐標(biāo)
/*參數(shù)說(shuō)明: lpszText: 目的文本 
            nFontsize: 字體大小 
            szFontface: 字體類型  */
int CClientWnd::GetXPos(LPCTSTR lpszText, int nFontsize, char* szFontface)
{
	CClientDC dc(this);
	CFont font, *pfont;
	font.CreatePointFont(nFontsize, szFontface);
	pfont = dc.SelectObject(&font);
	CSize sz = dc.GetTextExtent(lpszText);
	int xpos = (m_nScreenX - sz.cx) / 2;
	dc.SelectObject(pfont);

	return xpos;
}

//////////////////////////////////////////////////////////////////////////////////
//函數(shù)功能: 貼上背景位圖
void CClientWnd::DrawBGBmp()
{
	CClientDC dc(this);
    dc.BitBlt(0, 0, m_nScreenX, m_nScreenY, &m_bgmdc, 0, 0, SRCCOPY);
}

//////////////////////////////////////////////////////////////////////////////////
//函數(shù)功能: 加載位圖
/*參數(shù)說(shuō)明: lpszPath: 位圖路徑 
            xpos: 位圖寬 
            ypos: 位圖高*/
HBITMAP CClientWnd::LoadBitmap(LPCTSTR lpszPath, int xpos, int ypos)
{
    return (HBITMAP)LoadImage(NULL, lpszPath, IMAGE_BITMAP, \
		xpos, ypos, LR_LOADFROMFILE | LR_CREATEDIBSECTION);
}

//////////////////////////////////////////////////////////////////////////////////
//函數(shù)功能: 將文件輸出到屏幕上
/*參數(shù)說(shuō)明: phdc: 內(nèi)存設(shè)備上下文 
            xpos: 輸出X坐標(biāo)  ypos: 輸出Y坐標(biāo) 
            lpszText: 輸出文本 
            color: 字體顏色,默認(rèn)為藍(lán)色 
            nFontsize: 字體大小,默認(rèn)為200 
            lpFontface: 字體類型,默認(rèn)為楷體 */
void CClientWnd::TextOut(HDC *phdc, int xpos, int ypos, LPCTSTR lpszText, COLORREF color, int nFontsize, LPCTSTR lpFontface)
{
	CFont font;
	font.CreatePointFont(nFontsize, lpFontface);
	SelectObject(*phdc, font.m_hObject);
	SetBkMode(*phdc, TRANSPARENT);
	SetTextColor(*phdc, color);
	::TextOut(*phdc, xpos, ypos, lpszText, strlen(lpszText));
}

void CClientWnd::OnPaint() 
{
	CPaintDC dc(this); // device context for painting
 
	dc.BitBlt(0, 0, m_nScreenX, m_nScreenY, &m_bgmdc, 0, 0, SRCCOPY);
 	if(m_bFstRun)
	{
 		int  xpos;
		char szText[256];
		
		sprintf(szText, "歡迎光臨");
		xpos = GetXPos(szText, 500, "楷體_GB2312");
		TextOut(&dc.m_hDC, xpos, 120, szText, RGB(255,0,255), 500);
		
		sprintf(szText, "按確認(rèn)進(jìn)入點(diǎn)歌界面");
		xpos = GetXPos(szText, 500, "楷體_GB2312");
		TextOut(&dc.m_hDC, xpos, 300, szText, RGB(255,0,255), 500);
	}
}

//////////////////////////////////////////////////////////////////////////////////
//函數(shù)功能: 翻頁(yè)
/*參數(shù)說(shuō)明: nFlag = 1: 上翻 
                  = 2: 下翻 
            bSonglistTable: 是否為顯示songlist表里的歌曲*/
void CClientWnd::Flip(int nFlag)//, BOOL bSonglistTable)
{
	if( nFlag < 0 && nFlag > 3 )//nFlag只能是1、2
		return;

	if( m_nMenuFlag < 3 || m_nMenuFlag > 5 )//只有m_nMenuFlag為3、4 或 5時(shí)才執(zhí)行翻頁(yè)
		return;

	if( m_pSelectID == NULL )//數(shù)組為空,退出
		return;

	char hostname[256];
	CString strsql;
	gethostname(hostname, 256);

	int nID;
	if( nFlag == 1)
	{
		if( m_nPageIndex == 1)//如果現(xiàn)在是第一頁(yè),則退出
			return;
		nID = m_pSelectID[ (m_nPageIndex-1)*10+1 ];

		m_nPageIndex--;
		if( m_nPageIndex < 1 )
			m_nPageIndex = m_nPageNum;
	}
	else
	{
		if( m_nPageIndex == m_nPageNum )//如果是最后一頁(yè),則退出
			return;
		nID = m_pSelectID[ m_nPageIndex*10 ];

		m_nPageIndex++;
		if( m_nPageIndex > m_nPageNum )
			m_nPageIndex = 1;
	}

	if( m_nMenuFlag == 3 )//當(dāng)m_nMenuFlag == 3時(shí),是在songlist表里查詢歌曲
	{
		if( m_strPreSelect.IsEmpty() )
			return;
		ShowSelectSong(m_strPreSelect, "請(qǐng)按鍵選擇:", true, true);
	}
	else
	{
		int nPlayseq;
		strsql.Format("select playseq from request where username='%s' and ID=%d", 
			hostname, nID);
		
		_RecordsetPtr pRequestPtr;
		pRequestPtr = m_addrecord.GetRecordsetPtr(strsql);
		
		_variant_t vtplayseq = pRequestPtr->GetCollect("playseq");
		nPlayseq = atoi((_bstr_t)vtplayseq);
		
		if( nFlag == 1 )
		{
		    strsql.Format("select   songname, singer \
				           from     request \
					       where    username = '%s' \
					       group by songname, singer, playseq \
					       having   playseq < %d \
					       order by playseq", \
					       hostname, nPlayseq);
		
		}
		else 
		{
		    strsql.Format("select   songname, singer \
					       from     request \
					       where    username = '%s' \
					       group by songname, singer, playseq \
					       having   playseq > %d \
					       order by playseq", \
					       hostname, nPlayseq);
		
		}

		ShowSelectSong(strsql, "已點(diǎn)歌清單,按對(duì)應(yīng)的數(shù)字鍵播放:", true, false);
	}
}

//////////////////////////////////////////////////////////////////////////////////
//函數(shù)功能: 移動(dòng)坐標(biāo)
/*參數(shù)說(shuō)明: 1: 上移 
            2: 下移 
            3: 左移 
            4: 右移 */
void CClientWnd::MovePosition(int nMoveFlag)
{
	if( m_nMenuFlag == 3 )
		return;

	int nIndex;

	switch( nMoveFlag )
	{
	case 1://向上移 begin
		nIndex = m_selectmenu[m_nMenuIndex].GetUpDwnIndex();
		--nIndex;
		switch( m_nMenuIndex )
		{
		case 0://主菜單移動(dòng)
			if(nIndex < 1)
				nIndex = 4;
			break;
		case 1://處理語(yǔ)種查詢時(shí)的坐標(biāo)移動(dòng)
			if(nIndex < 1)
				nIndex = m_nSpeechNum;
			break;
		case 2://處理歌手查詢時(shí)的坐標(biāo)移動(dòng)
			if(nIndex < 1)
				nIndex = m_nSingerNum;
			break;
		case 3://處理字母查詢時(shí)的坐標(biāo)移動(dòng)

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成a人v欧美综合天堂下载| 日韩av午夜在线观看| 97se亚洲国产综合自在线不卡| 亚洲444eee在线观看| 日本一区二区三区久久久久久久久不 | av一二三不卡影片| 天堂av在线一区| 亚洲三级电影网站| 久久久精品国产免费观看同学| 欧美日韩一区久久| 粉嫩绯色av一区二区在线观看| 日韩国产一区二| 亚洲人吸女人奶水| 国产日韩精品一区二区三区| 日韩精品一区二区三区视频播放 | 有码一区二区三区| 中文字幕精品一区二区三区精品| 日韩欧美另类在线| 欧美美女直播网站| 欧美亚洲一区二区在线| 色婷婷亚洲综合| 午夜欧美大尺度福利影院在线看| 欧美国产在线观看| 久久免费视频一区| 欧美电影免费观看高清完整版| 色综合久久88色综合天天| 国产91高潮流白浆在线麻豆| 亚洲va国产va欧美va观看| 国产精品久久国产精麻豆99网站| 欧美电影免费提供在线观看| 欧美一级电影网站| 日韩欧美在线影院| 日韩欧美国产一二三区| 99久久久久久| 亚洲午夜av在线| 欧美日韩在线播| 欧美日本在线视频| 欧美性感一区二区三区| 欧美视频你懂的| 欧美日韩日日摸| 日韩一区和二区| 精品女同一区二区| 亚洲精品一二三| 久久国产生活片100| 亚洲精品国产一区二区三区四区在线| 久久久久久一级片| 国产女人18毛片水真多成人如厕| 日韩亚洲欧美成人一区| 欧美成人猛片aaaaaaa| 91麻豆精品国产| 在线观看av不卡| 欧美日韩一区二区在线视频| 成人免费高清视频在线观看| 国产v综合v亚洲欧| 成人a区在线观看| 成人app网站| 欧美午夜宅男影院| 日韩一级成人av| 91色视频在线| 国产成人一级电影| 亚洲成人av一区二区| 中文字幕日本不卡| 17c精品麻豆一区二区免费| 日日摸夜夜添夜夜添国产精品| 成人国产电影网| 欧美日韩一区二区欧美激情| 亚洲国产精品成人综合色在线婷婷| 日韩高清不卡一区二区| 色偷偷久久人人79超碰人人澡| 久久久精品免费网站| 午夜成人免费视频| 国产大陆a不卡| 久久伊人蜜桃av一区二区| 亚洲成人动漫在线免费观看| 91福利社在线观看| 一区二区视频在线| 色婷婷av一区二区三区软件| 国产精品美女久久久久久久久久久| 国产精品456露脸| 欧美mv日韩mv| 国精品**一区二区三区在线蜜桃| 欧美成人国产一区二区| 久久国产剧场电影| 亚洲精品一区二区三区影院| 黄网站免费久久| 国产人伦精品一区二区| 成人午夜短视频| 亚洲欧洲色图综合| 在线观看亚洲一区| 午夜久久久久久久久久一区二区| 欧美精品在线一区二区三区| 日韩在线一二三区| 欧美成人精品3d动漫h| 久久66热偷产精品| 国产精品素人一区二区| 91在线观看免费视频| 亚洲成人福利片| 日韩欧美区一区二| 丰满白嫩尤物一区二区| 亚洲精品乱码久久久久久日本蜜臀| 欧美亚洲国产一区二区三区va | 国产成人av福利| 最新久久zyz资源站| 欧美日韩久久一区| 久久国产日韩欧美精品| 国产精品久久网站| 欧美日本一区二区三区| 国产在线播放一区| 亚洲精品视频自拍| 日韩精品最新网址| 不卡在线观看av| 蜜桃久久久久久| 国产精品国产精品国产专区不片| 欧美三级蜜桃2在线观看| 激情都市一区二区| 亚洲国产美国国产综合一区二区| 3d成人动漫网站| 99综合影院在线| 亚洲成人tv网| 日韩美女视频19| 精品国精品自拍自在线| 不卡一区在线观看| 免费人成精品欧美精品| 亚洲激情六月丁香| 久久久综合九色合综国产精品| 欧美性做爰猛烈叫床潮| 国产精品一区二区在线播放| 亚洲国产精品久久不卡毛片| 国产精品欧美久久久久一区二区| 91精品国产色综合久久不卡蜜臀| 风间由美一区二区av101 | 精品理论电影在线| 日韩欧美国产一区二区在线播放| 99麻豆久久久国产精品免费| 三级不卡在线观看| 一区二区三区四区不卡视频| 国产欧美日韩一区二区三区在线观看| 91精品国产色综合久久不卡电影| 97精品国产97久久久久久久久久久久 | 日韩精品1区2区3区| 日韩毛片精品高清免费| 日韩欧美黄色影院| 在线观看视频一区二区| 风间由美一区二区三区在线观看| 老司机精品视频线观看86| 亚洲国产精品一区二区www在线 | 综合激情网...| 亚洲国产精品t66y| 国产色综合久久| 久久久久9999亚洲精品| 日韩美女视频在线| 精品免费国产一区二区三区四区| 欧美日韩国产精选| 日本乱人伦aⅴ精品| www.亚洲在线| www..com久久爱| 成人免费观看视频| 成人永久免费视频| 高清成人免费视频| 不卡视频在线观看| 色综合久久天天综合网| www.一区二区| av网站免费线看精品| 91亚洲男人天堂| 91国产成人在线| av成人免费在线观看| 激情综合色综合久久综合| 国产精品99久| 99精品视频在线免费观看| 色综合久久66| 69p69国产精品| www欧美成人18+| 国产精品拍天天在线| 综合亚洲深深色噜噜狠狠网站| 一区二区三区美女视频| 日韩成人午夜精品| 国产在线精品不卡| av电影在线观看完整版一区二区| 欧美这里有精品| 欧美大片一区二区三区| 国产精品久久久久久久久免费相片| 亚洲情趣在线观看| 婷婷亚洲久悠悠色悠在线播放| 麻豆国产精品视频| 福利一区二区在线| 欧美日韩国产综合一区二区| 欧美草草影院在线视频| 国产欧美综合在线观看第十页| 亚洲人成影院在线观看| 欧美高清激情brazzers| 欧美成人a视频| 亚洲精品综合在线| 日韩高清一区二区| 99久久精品国产毛片| 久久久久久久综合色一本| 中文在线资源观看网站视频免费不卡| 亚洲小说春色综合另类电影| 韩国精品在线观看| 欧美性色综合网| 久久青草国产手机看片福利盒子|