⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dlgplayertasklist.cpp

📁 网络游戏魔域源代码 测试可以完整变异
💻 CPP
字号:
// DlgPlayerTaskList.cpp : implementation file
//

#include "stdafx.h"
#include "myshell.h"
#include "DlgPlayerTaskList.h"
#include "Hero.h"

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

/////////////////////////////////////////////////////////////////////////////
// CDlgPlayerTaskList dialog


CDlgPlayerTaskList::CDlgPlayerTaskList(CWnd* pParent /*=NULL*/)
	: CDialog(CDlgPlayerTaskList::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDlgPlayerTaskList)
	m_bShow = false;
	m_nListKind = 0;
	m_nListUnPage = 0;
	m_nListAcPage = 0;
	m_nListMyPage = 0;
	m_bListDown = true;
	m_bListUp = false;
	m_Pnt = CPoint(0,0);// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void CDlgPlayerTaskList::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDlgPlayerTaskList)
	DDX_Control(pDX, IDC_BTN_LISTUP, m_BtnListUp);
	DDX_Control(pDX, IDC_BTN_LISDOWN, m_BtnListDown);
	DDX_Control(pDX, IDC_LIST_PLAYERTASK, m_ListPlayerTask);
	DDX_Control(pDX, IDC_BTN_LISTCLOSE, m_BtnListClose);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDlgPlayerTaskList, CDialog)
	//{{AFX_MSG_MAP(CDlgPlayerTaskList)
	ON_BN_CLICKED(IDC_BTN_LISTCLOSE, OnBtnListclose)
	ON_WM_CTLCOLOR()
	ON_WM_MOVE()
	ON_BN_CLICKED(IDC_BTN_LISTUP, OnBtnListup)
	ON_BN_CLICKED(IDC_BTN_LISDOWN, OnBtnLisdown)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDlgPlayerTaskList message handlers

void CDlgPlayerTaskList::Show()
{
	if (m_bShow)
	{
		CAni* ShowAni = g_objGameDataSet.GetDataAni ( ( char * )g_strControlAni,
			"Dialog70",
			EXIGENCE_IMMEDIATE ) ;
		if ( ShowAni != NULL )
			ShowAni->Show ( 0, m_Pnt.x, m_Pnt.y );
		else
			return ;

		m_BtnListClose.Show(m_Pnt.x,m_Pnt.y);
		
		if (m_BtnListDown.IsWindowEnabled())
			m_BtnListDown.Show(m_Pnt.x, m_Pnt.y);
		if (m_BtnListUp.IsWindowEnabled())
			m_BtnListUp.Show(m_Pnt.x, m_Pnt.y);
		m_ListPlayerTask.Show(m_Pnt.x,m_Pnt.y);
	}
}

void CDlgPlayerTaskList::OnBtnListclose() 
{
	// TODO: Add your control notification handler code here
	CDlgPlayerTaskList::EnableWindow(false);
}

LRESULT CDlgPlayerTaskList::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) 
{
	// TODO: Add your specialized code here and/or call the base class
	switch ( message )
	{
	case WM_ENABLE:
		m_bShow = wParam ;
		if (m_bShow)
		{
			DXPlaySound("Sound/Open.wav");			
			CDlgPlayerTaskList::ResetTaskList();
		}
		else
			DXPlaySound("Sound/window_close.wav");		
		break ;
	case WM_COMMAND:
		if ( wParam == 1 )
		{
			return true ;
		}
		else if ( wParam == 2 )
		{
			CDlgPlayerTaskList::OnBtnListclose();
			return true ;
		}
		break ;
	case LB_SETSEL:
		{
			if ( wParam == 0 )
			{
				if ( lParam != -1 )
				{
					g_objHero.QueryPlayerTaskDetial(g_objHero.GetPlayerTaskIndex(lParam)->idTask);
					CDlgPlayerTaskList::GetParent()->PostMessage(WM_MY_MESSAGE,ON_TASKVIEW_OPEN);
				}
			}
		}
		break ;
	}
	
	return CDialog::WindowProc(message, wParam, lParam);
}

HBRUSH CDlgPlayerTaskList::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
	pDC->SetBkMode ( TRANSPARENT ) ;
	return g_StockBrush;	
}

BOOL CDlgPlayerTaskList::OnInitDialog() 
{
	CDialog::OnInitDialog();
	CRect rect;
	CDlgPlayerTaskList::GetWindowRect(rect);
	m_ListPlayerTask.Init(rect.left,rect.top,NULL,2);
	m_ListPlayerTask.SetParentCob(this);
	m_BtnListClose.Init(rect.left,rect.top,"Button540");

	m_BtnListUp.Init(rect.left,rect.top,"Button161");
	m_BtnListDown.Init(rect.left,rect.top,"Button162");
	// TODO: Add extra initialization here
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CDlgPlayerTaskList::OnMove(int x, int y) 
{
	CDialog::OnMove(x, y);
	
	// TODO: Add your message handler code here
	m_Pnt.x = x;
	m_Pnt.y = y;
}

void CDlgPlayerTaskList::SetTaskListKind(int nKind)
{
	m_nListKind = nKind;
	switch(m_nListKind)
	{
	case 0:
		g_objHero.QueryPlayerTaskUnacceptedList(m_LastPageidUnTask[m_nListUnPage]);
		break;
	case 1:
		g_objHero.QueryPlayerTaskAcceptedList(m_LastPageidAcTask[m_nListAcPage]);
		break;
	case 2:
		g_objHero.QueryPlayerMyTaskList(m_LastPageidMyTask[m_nListMyPage]);
		break;
	default:
		break;
	}	
}

void CDlgPlayerTaskList::GetTaskList()
{
 	int nAmount = g_objHero.GetPlayerTaskAmout();
	m_ListPlayerTask.ResetContent();

	if (nAmount>0)
	{
		ST_TASK_TITLE* pTaskTitle = NULL;
		for(int i = 0;i<nAmount;i++)
		{
			pTaskTitle = g_objHero.GetPlayerTaskIndex(i);
			if (pTaskTitle)
			{
				m_ListPlayerTask.InsertString(i, pTaskTitle->szTitle);
				m_ListPlayerTask.SetListRealIndex(i,1);

				if (nAmount == 15)
				{
					CDlgPlayerTaskList::SetLastPageTaskID(m_nListKind,pTaskTitle->idTask);	
					break;
				}				
			}
		}
 	}			
	bool bCanUp = false;
	bool bCanDown = false;
	switch(m_nListKind) 
	{
	case 0:
		if (m_nListUnPage > 0) 
			bCanUp = true;
		if (nAmount > 15)
			bCanDown = true;
		break;
	case 1:
		if (m_nListAcPage > 0) 
			bCanUp = true;
		if (nAmount > 15)
			bCanDown = true;
		break;
	case 2:
		break;
	default:
		break;
	}
	if (bCanUp)
		m_BtnListUp.EnableWindow();
	else
		m_BtnListUp.EnableWindow(false);
	if (bCanDown)
		m_BtnListDown.EnableWindow();
	else
		m_BtnListDown.EnableWindow(false);	
}



void CDlgPlayerTaskList::OnBtnListup() 
{
	// TODO: Add your control notification handler code here
	DXPlaySound("Sound/up_Page.wav");
	m_bListDown = true;
	m_bListUp = false;
	switch(m_nListKind)
	{
	case 0:
		g_objHero.QueryPlayerTaskUnacceptedList(m_LastPageidUnTask[m_nListUnPage+1]);
		break;
	case 1:
		g_objHero.QueryPlayerTaskAcceptedList(m_LastPageidAcTask[m_nListAcPage+1]);
		break;
	case 2:
		g_objHero.QueryPlayerMyTaskList(m_LastPageidMyTask[m_nListMyPage+1]);
		break;
	default:
		break;
	}	
}

void CDlgPlayerTaskList::OnBtnLisdown() 
{
	// TODO: Add your control notification handler code here
	DXPlaySound("Sound/up_Page.wav");
	m_bListUp = true;
	m_bListDown = false;
	switch(m_nListKind)
	{
	case 0:
		g_objHero.QueryPlayerTaskUnacceptedList(m_LastPageidUnTask[m_nListUnPage]);
		break;
	case 1:
		g_objHero.QueryPlayerTaskAcceptedList(m_LastPageidAcTask[m_nListAcPage]);
		break;
	case 2:
		g_objHero.QueryPlayerMyTaskList(m_LastPageidMyTask[m_nListMyPage]);
		break;
	default:
		break;
	}	
}

void CDlgPlayerTaskList::SetLastPageTaskID(int nKind, OBJID idTask)
{
	switch(nKind)
	{
	case 0:
		if(m_bListDown)
			m_nListUnPage++;
		else if (m_bListUp && m_nListUnPage>0)
			m_nListUnPage--;		
		m_LastPageidUnTask[m_nListUnPage] = idTask;
		break;
	case 1:
		if(m_bListDown)
			m_nListAcPage++;
		else if (m_bListUp && m_nListAcPage>0)
			m_nListAcPage--;		
		m_LastPageidAcTask[m_nListAcPage] = idTask;
		break;
	case 2:
		if(m_bListDown)
			m_nListMyPage++;
		else if (m_bListUp && m_nListMyPage>0)
			m_nListMyPage--;		
		m_LastPageidMyTask[m_nListMyPage] = idTask;
		break;
	default:
		break;
	}
}

void CDlgPlayerTaskList::ResetTaskList()
{
	for(int i=0;i<64;i++)
	{
		m_LastPageidUnTask[i] = 0;
		m_LastPageidAcTask[i] = 0;
		m_LastPageidMyTask[i] = 0;
	}
	m_nListUnPage = 0;
	m_nListAcPage = 0;
	m_nListMyPage = 0;
	m_bListDown = true;
	m_bListUp = false;
	m_ListPlayerTask.ResetContent();	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -