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

📄 dlgskill.cpp

📁 网络游戏魔域源代码 测试可以完整变异
💻 CPP
📖 第 1 页 / 共 3 页
字号:
// DlgSkill.cpp : implementation file
//

#include "stdafx.h"
#include "MyShell.h"
#include "DlgSkill.h"

#include "Hero.h"
#include "GameMsg.h"
#include "Magic.h"

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

const int	AMOUNT_PET_PAGE = 6 ;
/////////////////////////////////////////////////////////////////////////////
// CDlgSkill dialog


CDlgSkill::CDlgSkill(CWnd* pParent /*=NULL*/)
	: CDialog(CDlgSkill::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDlgSkill)
	m_bShow = false ;
	m_Pnt = CPoint ( 0, 0 ) ;
	m_fFrameStep = 0.0f ;
	m_nFrameMode = 0 ;
	m_nPntX = 0 ;
	m_nCurIndex = 0 ;
	m_nTMagicIndex = 0;
	m_nSkillListMode = 0;
	//}}AFX_DATA_INIT
}


void CDlgSkill::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDlgSkill)
	DDX_Control(pDX, IDC_SKILLKEY_IMG1, m_SkillKey1Img);
	DDX_Control(pDX, IDC_SKILLKEY_IMG2, m_SkillKey2Img);
	DDX_Control(pDX, IDC_SKILLKEY_IMG3, m_SkillKey3Img);
	DDX_Control(pDX, IDC_SKILLKEY_IMG4, m_SkillKey4Img);
	DDX_Control(pDX, IDC_SKILLKEY_IMG5, m_SkillKey5Img);
	DDX_Control(pDX, IDC_SKILLKEY_IMG6, m_SkillKey6Img);
	DDX_Control(pDX, IDC_STA_NAME6, m_StaName6);
	DDX_Control(pDX, IDC_STA_NAME5, m_StaName5);
	DDX_Control(pDX, IDC_STA_NAME4, m_StaName4);
	DDX_Control(pDX, IDC_STA_NAME3, m_StaName3);
	DDX_Control(pDX, IDC_STA_NAME2, m_StaName2);
	DDX_Control(pDX, IDC_STA_NAME1, m_StaName1);
	DDX_Control(pDX, IDC_STA_EXP6, m_StaExp6);
	DDX_Control(pDX, IDC_STA_EXP5, m_StaExp5);
	DDX_Control(pDX, IDC_STA_EXP4, m_StaExp4);
	DDX_Control(pDX, IDC_STA_EXP3, m_StaExp3);
	DDX_Control(pDX, IDC_STA_EXP2, m_StaExp2);
	DDX_Control(pDX, IDC_STA_EXP1, m_StaExp1);
	DDX_Control(pDX, IDC_STA_DESC6, m_StaDesc6);
	DDX_Control(pDX, IDC_STA_DESC5, m_StaDesc5);
	DDX_Control(pDX, IDC_STA_DESC4, m_StaDesc4);
	DDX_Control(pDX, IDC_STA_DESC3, m_StaDesc3);
	DDX_Control(pDX, IDC_STA_DESC2, m_StaDesc2);
	DDX_Control(pDX, IDC_STA_DESC1, m_StaDesc1);
	DDX_Control(pDX, IDC_SKILL_IMG_6, m_Img6);
	DDX_Control(pDX, IDC_SKILL_IMG_1, m_Img1);
	DDX_Control(pDX, IDC_SKILL_IMG_2, m_Img2);
	DDX_Control(pDX, IDC_SKILL_IMG_3, m_Img3);
	DDX_Control(pDX, IDC_SKILL_IMG_4, m_Img4);
	DDX_Control(pDX, IDC_SKILL_IMG_5, m_Img5);
	DDX_Control(pDX, IDC_SKILL_BTN_UP, m_BtnUp);
	DDX_Control(pDX, IDC_SKILL_BTN_DOWN, m_BtnDown);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDlgSkill, CDialog)
	//{{AFX_MSG_MAP(CDlgSkill)
	ON_WM_CTLCOLOR()
	ON_WM_MOVE()
	ON_BN_CLICKED(IDC_SKILL_BTN_DOWN, OnSkillBtnDown)
	ON_BN_CLICKED(IDC_SKILL_IMG_1, OnSkillImg1)
	ON_BN_CLICKED(IDC_SKILL_IMG_2, OnSkillImg2)
	ON_BN_CLICKED(IDC_SKILL_IMG_3, OnSkillImg3)
	ON_BN_CLICKED(IDC_SKILL_IMG_4, OnSkillImg4)
	ON_BN_CLICKED(IDC_SKILL_IMG_5, OnSkillImg5)
	ON_BN_CLICKED(IDC_SKILL_IMG_6, OnSkillImg6)
	ON_BN_CLICKED(IDC_SKILL_BTN_UP, OnSkillBtnUp)
	ON_WM_MOUSEMOVE()
	ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
	ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
	ON_BN_CLICKED(IDC_BUTTON3, OnButton3)
	ON_BN_CLICKED(IDC_BUTTON4, OnButton4)
	ON_BN_CLICKED(IDC_BUTTON5, OnButton5)
	ON_BN_CLICKED(IDC_BUTTON6, OnButton6)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDlgSkill message handlers

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

BOOL CDlgSkill::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	CRect rect ;
	CDlgSkill::GetWindowRect( rect ) ;
	m_fFrameStep = ( float ) rect.Width () / DLG_FRAME_AMOUNT ;

	// Init the image
	m_Img1.Init( rect.left, rect.top, NULL, SKILL_IMAGE ) ;
	m_Img2.Init( rect.left, rect.top, NULL, SKILL_IMAGE ) ;
	m_Img3.Init( rect.left, rect.top, NULL, SKILL_IMAGE ) ;
	m_Img4.Init( rect.left, rect.top, NULL, SKILL_IMAGE ) ;
	m_Img5.Init( rect.left, rect.top, NULL, SKILL_IMAGE ) ;
	m_Img6.Init( rect.left, rect.top, NULL, SKILL_IMAGE ) ;

	// Init the static
	m_StaName6.Init( rect.left, rect.top ) ;
	m_StaName5.Init( rect.left, rect.top ) ;
	m_StaName4.Init( rect.left, rect.top ) ;
	m_StaName3.Init( rect.left, rect.top ) ;
	m_StaName2.Init( rect.left, rect.top ) ;
	m_StaName1.Init( rect.left, rect.top ) ;
	m_StaExp6.Init( rect.left, rect.top ) ;
	m_StaExp5.Init( rect.left, rect.top ) ;
	m_StaExp4.Init( rect.left, rect.top ) ;
	m_StaExp3.Init( rect.left, rect.top ) ;
	m_StaExp2.Init( rect.left, rect.top ) ;
	m_StaExp1.Init( rect.left, rect.top ) ;
	m_StaDesc6.Init( rect.left, rect.top ) ;
	m_StaDesc5.Init( rect.left, rect.top ) ;
	m_StaDesc4.Init( rect.left, rect.top ) ;
	m_StaDesc3.Init( rect.left, rect.top ) ;
	m_StaDesc2.Init( rect.left, rect.top ) ;
	m_StaDesc1.Init( rect.left, rect.top ) ;
	
	// Init the buttons
	m_SkillKey1Img.Init(rect.left, rect.top,NULL,BG_IMAGE);
	m_SkillKey2Img.Init(rect.left, rect.top,NULL,BG_IMAGE);
	m_SkillKey3Img.Init(rect.left, rect.top,NULL,BG_IMAGE);
	m_SkillKey4Img.Init(rect.left, rect.top,NULL,BG_IMAGE);
	m_SkillKey5Img.Init(rect.left, rect.top,NULL,BG_IMAGE);
	m_SkillKey6Img.Init(rect.left, rect.top,NULL,BG_IMAGE);
	
	m_BtnUp.Init( rect.left, rect.top, "Button815" ) ;
	m_BtnDown.Init( rect.left, rect.top, "Button816" ) ;
  	//Init the HotKey Dialog
	m_DlgSkillHotKey.Create ( IDD_DIALOG_SKILL_HOTKEYS, this->GetParent()->GetParent() );
	m_DlgSkillHotKey.SetParentWnd( this );
	CRect MRect;
	m_DlgSkillHotKey.GetWindowRect(MRect);
	m_DlgSkillHotKey.MoveWindow ( _SCR_WIDTH-rect.Width()-100 - MRect.Width(),
								500-rect.Height(),
								MRect.Width(),
								MRect.Height());
	m_DlgSkillHotKey.ShowWindow( SW_SHOW ) ;
	m_DlgSkillHotKey.EnableWindow( false ) ;


	CRect BRect,ERect;

	m_Img1.GetWindowRect(BRect);
	m_SkillKey1Img.GetWindowRect(ERect);
	m_PrgRect[0] = CRect(m_Pnt.x + BRect.left,
		m_Pnt.y + BRect.top, m_Pnt.x + ERect.right,m_Pnt.y + ERect.bottom);

	m_Img2.GetWindowRect(BRect);
	m_SkillKey2Img.GetWindowRect(ERect);
	m_PrgRect[1] = CRect(BRect.left,BRect.top,ERect.right,ERect.bottom);

	m_Img3.GetWindowRect(BRect);
	m_SkillKey3Img.GetWindowRect(ERect);
	m_PrgRect[2] = CRect(BRect.left,BRect.top,ERect.right,ERect.bottom);
	
	m_Img4.GetWindowRect(BRect);
	m_SkillKey4Img.GetWindowRect(ERect);
	m_PrgRect[3] = CRect(BRect.left,BRect.top,ERect.right,ERect.bottom);

	m_Img5.GetWindowRect(BRect);
	m_SkillKey5Img.GetWindowRect(ERect);
	m_PrgRect[4] = CRect(BRect.left,BRect.top,ERect.right,ERect.bottom);

	m_Img6.GetWindowRect(BRect);
	m_SkillKey6Img.GetWindowRect(ERect);
	m_PrgRect[5] = CRect(BRect.left,BRect.top,ERect.right,ERect.bottom);

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CDlgSkill::OnMove(int x, int y) 
{
	CDialog::OnMove(x, y);
	
	m_nPntX = x ;
	m_Pnt.y = y ;
}

void CDlgSkill::Show(int x,int y)
{
	if ( m_bShow ) 
	{
		// Show the images
		m_Img1.Show( m_Pnt.x + x, m_Pnt.y + y ) ;
		m_Img2.Show( m_Pnt.x + x, m_Pnt.y + y ) ;
		m_Img3.Show( m_Pnt.x + x, m_Pnt.y + y ) ;
		m_Img4.Show( m_Pnt.x + x, m_Pnt.y + y ) ;
		m_Img5.Show( m_Pnt.x + x, m_Pnt.y + y ) ;
		m_Img6.Show( m_Pnt.x + x, m_Pnt.y + y ) ;
	
		// Show the static
		m_StaName6.Show( m_Pnt.x+x, m_Pnt.y+y ) ;
		m_StaName5.Show( m_Pnt.x+x, m_Pnt.y+y ) ;
		m_StaName4.Show( m_Pnt.x+x, m_Pnt.y+y ) ;
		m_StaName3.Show( m_Pnt.x+x, m_Pnt.y+y ) ;
		m_StaName2.Show( m_Pnt.x+x, m_Pnt.y+y ) ;
		m_StaName1.Show( m_Pnt.x+x, m_Pnt.y+y ) ;
		m_StaExp6.Show( m_Pnt.x+x, m_Pnt.y+y ) ;
		m_StaExp5.Show( m_Pnt.x+x, m_Pnt.y+y ) ;
		m_StaExp4.Show( m_Pnt.x+x, m_Pnt.y+y ) ;
		m_StaExp3.Show( m_Pnt.x+x, m_Pnt.y+y ) ;
		m_StaExp2.Show( m_Pnt.x+x, m_Pnt.y+y ) ;
		m_StaExp1.Show( m_Pnt.x+x, m_Pnt.y+y ) ;
		m_StaDesc6.Show( m_Pnt.x+x, m_Pnt.y+y ) ;
		m_StaDesc5.Show( m_Pnt.x+x, m_Pnt.y+y ) ;
		m_StaDesc4.Show( m_Pnt.x+x, m_Pnt.y+y ) ;
		m_StaDesc3.Show( m_Pnt.x+x, m_Pnt.y+y ) ;
		m_StaDesc2.Show( m_Pnt.x+x, m_Pnt.y+y ) ;
		m_StaDesc1.Show( m_Pnt.x+x, m_Pnt.y+y ) ;

		// Show the buttons
		m_SkillKey1Img.Show(m_Pnt.x +x, m_Pnt.y +y);
		m_SkillKey2Img.Show(m_Pnt.x +x, m_Pnt.y +y);
		m_SkillKey3Img.Show(m_Pnt.x +x, m_Pnt.y +y);
		m_SkillKey4Img.Show(m_Pnt.x +x, m_Pnt.y +y);
		m_SkillKey5Img.Show(m_Pnt.x +x, m_Pnt.y +y);
		m_SkillKey6Img.Show(m_Pnt.x +x, m_Pnt.y +y);
		
		if (m_BtnUp.IsWindowEnabled())
			m_BtnUp.Show( m_Pnt.x+x, m_Pnt.y+y ) ;
		if (m_BtnDown.IsWindowEnabled())
			m_BtnDown.Show( m_Pnt.x+x, m_Pnt.y+y ) ;
		if (m_DlgSkillHotKey.m_bShow)
			m_DlgSkillHotKey.Show();
	}
}

LRESULT CDlgSkill::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) 
{
	if ( message == WM_ENABLE )
	{
		m_bShow = wParam ;
		if ( wParam == false )
		{
			if (m_DlgSkillHotKey.m_bShow)
			{
				m_DlgSkillHotKey.EnableWindow(false);
			}
		}
		else
		{
			if (m_nSkillListMode == 1) 
				CDlgSkill::SetTeamMagicSkill();
			else
				CDlgSkill::SetMagicSkill();
			m_dwLastShowTime = TimeGet() ;
			m_nFrameMode = 1 ;
			CRect rect ;
			CDlgSkill::GetWindowRect( rect ) ;
			m_nPntX = _SCR_WIDTH ;
//			CDlgSkill::GetParent()->PostMessage( WM_MY_MESSAGE, ON_RSIDEDLG_OPEN ) ;
		}
	}
	else if ( message == WM_COMMAND )
	{
		if ( wParam == 1 )
			return true ;
		else if (wParam == 2)
		{
			return true;
		}
	}

	return CDialog::WindowProc(message, wParam, lParam);
}

void CDlgSkill::SetMagicSkill()
{
	DWORD dwFalseColor = 0xc0c0c0;
	DWORD dwBaseColor = 0xffffff;
	CDlgSkill::ClearMagicSkill() ;
	m_nSkillListMode = 0;
	int nAmount = ( g_objHero.GetMagicAmount() > m_nCurIndex + AMOUNT_PET_PAGE ) ? m_nCurIndex + AMOUNT_PET_PAGE : g_objHero.GetMagicAmount();

	if (m_nCurIndex <= 0) 
		m_BtnUp.EnableWindow(false);
	else 
		m_BtnUp.EnableWindow();
	
	if (m_nCurIndex + AMOUNT_PET_PAGE >= g_objHero.GetMagicAmount()) 
		m_BtnDown.EnableWindow(false);
	else
		m_BtnDown.EnableWindow();

	for ( int i = m_nCurIndex; i < nAmount; i++ )
	{
		CMagic* pMagic = g_objHero.GetMagicByIndex(i) ;
		if ( pMagic != NULL && pMagic->m_infoMagicType.dwActionSort != MAGICSORT_TEAM_MAGIC)
		{
			char SkillType[32] ;
			sprintf ( SkillType, "MagicSkillType%d", pMagic->GetIDType() ) ;
			
			int j;
			char strExp[64] ;
			sprintf( strExp, g_objGameDataSet.GetStr(10137), pMagic->GetLevel()+1, pMagic->GetExp(), pMagic->GetNextLevelExp() ) ;
			switch ( i - m_nCurIndex )
			{
			case 0:
				m_StaName1.SetFontColor(dwBaseColor) ;
				m_StaDesc1.SetFontColor(dwBaseColor) ;
				m_Img1.InsertImage( SkillType, 0 , pMagic->GetIDType(), false ) ;
				m_StaName1.SetWindowText( pMagic->GetName() ) ;
				m_StaDesc1.SetWindowText( strExp ) ;
				for(j=0;j<8;j++)
				{
					if (pMagic->GetIDType() == m_DlgSkillHotKey.m_HotKeyIdType[j]) 
					{
						sprintf(strExp, "Check%d",601+j);
						m_SkillKey1Img.InsertImage(strExp);
						break;
					}
				}
				if (j==8)
					m_SkillKey1Img.InsertImage("Check609");
				if (pMagic->TestTarget(MAGIC_PASSIVE)) 
				{
					m_SkillKey1Img.RemoveImage();
					m_StaName1.SetFontColor(dwFalseColor) ;
					m_StaDesc1.SetFontColor(dwFalseColor) ;
				}
				else if(pMagic->m_infoMagicType.dwXp == TYPE_XPSKILL)
					m_SkillKey1Img.RemoveImage();
				break ;
			case 1:
				m_StaName2.SetFontColor(dwBaseColor) ;
				m_StaDesc2.SetFontColor(dwBaseColor) ;
				m_Img2.InsertImage( SkillType, 0, pMagic->GetIDType(), false ) ;
				m_StaName2.SetWindowText( pMagic->GetName() ) ;
				m_StaDesc2.SetWindowText( strExp ) ;
				for(j=0;j<8;j++)
				{
					if (pMagic->GetIDType() == m_DlgSkillHotKey.m_HotKeyIdType[j]) 
					{
						sprintf(strExp, "Check%d",601+j);
						m_SkillKey2Img.InsertImage(strExp);
						break;
					}
				}
				if (j==8)
					m_SkillKey2Img.InsertImage("Check609");
				if (pMagic->TestTarget(MAGIC_PASSIVE)) 
				{
					m_SkillKey2Img.RemoveImage();
					m_StaName2.SetFontColor(dwFalseColor) ;
					m_StaDesc2.SetFontColor(dwFalseColor) ;					
				}
				else if (pMagic->m_infoMagicType.dwXp == TYPE_XPSKILL)
				{
					m_SkillKey2Img.RemoveImage();					
				}
				break ;
			case 2:
				m_StaName3.SetFontColor(dwBaseColor) ;
				m_StaDesc3.SetFontColor(dwBaseColor) ;									
				m_Img3.InsertImage( SkillType, 0, pMagic->GetIDType(), false ) ;
				m_StaName3.SetWindowText( pMagic->GetName() ) ;
				m_StaDesc3.SetWindowText( strExp ) ;
				for(j=0;j<8;j++)
				{
					if (pMagic->GetIDType() == m_DlgSkillHotKey.m_HotKeyIdType[j]) 
					{
						sprintf(strExp, "Check%d",601+j);
						m_SkillKey3Img.InsertImage(strExp);
						break;
					}
				}
				if (j==8)
					m_SkillKey3Img.InsertImage("Check609");
				if (pMagic->TestTarget(MAGIC_PASSIVE)) 
				{
					m_StaName3.SetFontColor(dwFalseColor) ;
					m_StaDesc3.SetFontColor(dwFalseColor) ;										
					m_SkillKey3Img.RemoveImage();
				}
				else if (pMagic->m_infoMagicType.dwXp == TYPE_XPSKILL)
				{
					m_SkillKey3Img.RemoveImage();
				}
				break ;
			case 3:
				m_StaName4.SetFontColor(dwBaseColor) ;

⌨️ 快捷键说明

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