📄 dlggroup.cpp
字号:
// DlgGroup.cpp : implementation file
//
#include "stdafx.h"
#include "MyShell.h"
#include "DlgGroup.h"
#include "Hero.h"
#include "GamePlayerset.h"
#include "GameMsg.h"
#include "3dGameMap.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDlgGroup dialog
CDlgGroup::CDlgGroup(CWnd* pParent /*=NULL*/)
: CDialog(CDlgGroup::IDD, pParent)
{
//{{AFX_DATA_INIT(CDlgGroup)
m_bShow = false ;
m_Pnt = CPoint ( 0, 0 ) ;
m_uTeamMode = TEAM_MODE_NONE ;
m_btOwnerPos = 0 ;
m_dwFocusTime = 0;
//}}AFX_DATA_INIT
}
void CDlgGroup::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDlgGroup)
DDX_Control(pDX, IDC_GROUP_BTN_5, m_GroupBtn5);
DDX_Control(pDX, IDC_GROUP_CHK_3, m_GroupBtn3);
DDX_Control(pDX, IDC_GROUP_IMG1, m_GroupImg1);
DDX_Control(pDX, IDC_GROUP_IMG2, m_GroupImg2);
DDX_Control(pDX, IDC_GROUP_IMG3, m_GroupImg3);
DDX_Control(pDX, IDC_GROUP_IMG4, m_GroupImg4);
DDX_Control(pDX, IDC_GROUP_BTN_1, m_GroupBtn1);
DDX_Control(pDX, IDC_GROUP_BTN_2, m_GroupBtn2);
DDX_Control(pDX, IDC_GROUP_BTN_4, m_GroupBtn4);
DDX_Control(pDX, IDC_GROUP_BTN_CLOSE, m_GroupCloseBtn);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDlgGroup, CDialog)
//{{AFX_MSG_MAP(CDlgGroup)
ON_WM_CTLCOLOR()
ON_WM_MOVE()
ON_BN_CLICKED(IDC_GROUP_BTN_CLOSE, OnGroupBtnClose)
ON_BN_CLICKED(IDC_GROUP_BTN_1, OnGroupBtn1)
ON_BN_CLICKED(IDC_GROUP_BTN_2, OnGroupBtn2)
ON_BN_CLICKED(IDC_GROUP_CHK_3, OnGroupChk3)
ON_BN_CLICKED(IDC_GROUP_BTN_4, OnGroupBtn4)
ON_BN_CLICKED(IDC_GROUP_IMG1, OnGroupImg1)
ON_BN_CLICKED(IDC_GROUP_IMG2, OnGroupImg2)
ON_BN_CLICKED(IDC_GROUP_IMG3, OnGroupImg3)
ON_BN_CLICKED(IDC_GROUP_IMG4, OnGroupImg4)
ON_WM_MOUSEMOVE()
ON_WM_LBUTTONDOWN()
ON_WM_LBUTTONUP()
ON_WM_RBUTTONDOWN()
ON_WM_RBUTTONUP()
ON_BN_CLICKED(IDC_GROUP_BTN_5, OnGroupBtn5)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDlgGroup message handlers
LRESULT CDlgGroup::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
if ( message == WM_ENABLE )
{
m_bShow = wParam ;
if ( !m_bShow )
{
DXPlaySound ( "Sound/window_close.wav" ) ;
if ( m_MenuGroup.m_bShow )
m_MenuGroup.EnableWindow( false ) ;
}
else
{
DXPlaySound ( "Sound/Open.wav" ) ;
// CDlgGroup::SetGroupContain();
}
}
else if ( message == WM_COMMAND )
{
if ( wParam == 1 )
{
return true ;
}
else if ( wParam == 2 )
{
CDlgGroup::OnGroupBtnClose () ;
return true ;
}
}
else if ( message == WM_MY_MESSAGE )
{
if ( wParam == MENU_GROUP_CLICK )
{
switch ( lParam )
{
case MONEY_CLICK:
g_objHero.SetTeamMoneyAccess ( m_MenuGroup.m_GroupChkMoney.GetCheckValue () ) ;
break ;
case ITEM_CLICK:
g_objHero.SetTeamItemAccess ( m_MenuGroup.m_GroupChkItem.GetCheckValue () ) ;
break ;
case GEAR_CLICK:
g_objHero.SetTeamGemAccess( m_MenuGroup.m_GroupChkStop.GetCheckValue() ) ;
break ;
case JOIN_CLICK:
{
if (m_MenuGroup.m_GroupChkJoin.GetCheckValue())
g_objHero.TeamClose();
else
g_objHero.TeamOpen();
}
}
}
}
return CDialog::WindowProc(message, wParam, lParam);
}
BOOL CDlgGroup::OnInitDialog()
{
CDialog::OnInitDialog();
CRect rect ;
CDlgGroup::GetWindowRect ( rect ) ;
// Init the Image
m_GroupImg1.Init ( rect.left, rect.top, NULL, FACE_IMAGE) ;
m_GroupImg2.Init ( rect.left, rect.top, NULL, FACE_IMAGE) ;
m_GroupImg3.Init ( rect.left, rect.top, NULL, FACE_IMAGE) ;
m_GroupImg4.Init ( rect.left, rect.top, NULL, FACE_IMAGE) ;
m_GroupImg1.SetItemPos( 1 ) ;
m_GroupImg2.SetItemPos( 2 ) ;
m_GroupImg3.SetItemPos( 3 ) ;
m_GroupImg4.SetItemPos( 4 ) ;
m_GroupImg1.EnableWindow( false ) ;
m_GroupImg2.EnableWindow( false ) ;
m_GroupImg3.EnableWindow( false ) ;
m_GroupImg4.EnableWindow( false ) ;
// Init the buttons
m_GroupBtn1.Init ( rect.left, rect.top, "Button190" );
m_GroupBtn2.Init ( rect.left, rect.top, "Button191" );
m_GroupBtn3.Init ( rect.left, rect.top, "Button197" );
m_GroupBtn4.Init ( rect.left, rect.top, "Button195" );
m_GroupBtn5.Init ( rect.left, rect.top, "Button198" );
m_GroupCloseBtn.Init ( rect.left, rect.top, "Button3" );
// Init the menu
m_MenuGroup.Create ( IDD_MENU_GROUP, this->GetParent () );
m_MenuGroup.SetParentWnd ( this ) ;
m_MenuGroup.ShowWindow( SW_SHOW ) ;
m_MenuGroup.EnableWindow( false ) ;
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
HBRUSH CDlgGroup::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
pDC->SetBkMode ( TRANSPARENT ) ;
return g_StockBrush ;
}
void CDlgGroup::OnMove(int x, int y)
{
CDialog::OnMove(x, y);
m_Pnt.x = x ;
m_Pnt.y = y ;
}
void CDlgGroup::Show()
{
// Show the owner
if ( m_bShow )
{
CAni* ShowAni = g_objGameDataSet.GetDataAni ( ( char * )g_strControlAni,
"Dialog19",
EXIGENCE_IMMEDIATE ) ;
if ( ShowAni != NULL )
{
switch(m_uTeamMode)
{
case TEAM_MODE_NONE:
ShowAni->Show( 0,
m_Pnt.x,
_SCR_HEIGHT -304) ;
break;
case TEAM_MODE_LEADER:
ShowAni->Show( 1,
m_Pnt.x - 2,
_SCR_HEIGHT -320) ;
break;
case TEAM_MODE_MEMBER:
ShowAni->Show( 0,
m_Pnt.x,
_SCR_HEIGHT -304) ;
break;
default:
break;
}
}
else
return ;
// Show the button
m_GroupBtn1.Show ( m_Pnt.x, m_Pnt.y ) ;
// if ( m_uTeamMode != TEAM_MODE_MEMBER )
m_GroupBtn2.Show ( m_Pnt.x, m_Pnt.y ) ;
if ( m_uTeamMode == TEAM_MODE_LEADER )
{
m_GroupBtn3.Show ( m_Pnt.x, m_Pnt.y ) ;
m_GroupBtn4.Show ( m_Pnt.x, m_Pnt.y ) ;
m_GroupBtn5.Show ( m_Pnt.x, m_Pnt.y) ;
}
m_GroupCloseBtn.Show ( m_Pnt.x, m_Pnt.y ) ;
// Show the menu
if ( m_MenuGroup.m_bShow )
m_MenuGroup.Show () ;
}
CAni* pShowAni = g_objGameDataSet.GetDataAni ( ( char * )g_strControlAni,
"Dialog191",
EXIGENCE_IMMEDIATE ) ;
if (pShowAni== NULL)
return;
int nYPos = 0;
if ( m_GroupImg1.GetImageLoadState() )
{
nYPos = 0 ;
pShowAni->Show(0,m_Pnt.x + 50 ,m_Pnt.y + nYPos);
m_GroupImg1.Show ( m_Pnt.x, m_Pnt.y) ;
int nIndex = 0 ;
if ( m_btOwnerPos <= 0 )
{
nIndex++ ;
}
TeamMemberInfo *pInfo = g_objHero.GetTeamMemberInfo( nIndex ) ;
if ( pInfo )
{
m_GroupImg1.ShowHp( m_Pnt.x, m_Pnt.y, pInfo->dwHp, pInfo->dwMaxHp ) ;
CPoint point;
::GetCursorPos(&point);
CRect rect;
m_GroupImg1.GetWindowRect(rect);
if (rect.PtInRect(point))
{
CPoint posPosition;
posPosition.x = m_Pnt.x + 26;
posPosition.y = m_Pnt.y + nYPos + 17;
CDlgGroup::ShowTeamMemberPosition(nIndex,posPosition);
}
}
}
if ( m_GroupImg2.GetImageLoadState() )
{
nYPos += 64 ;
pShowAni->Show(0,m_Pnt.x + 50 ,m_Pnt.y + nYPos );
m_GroupImg2.Show ( m_Pnt.x , m_Pnt.y ) ;
int nIndex = 1 ;
if ( m_btOwnerPos <= 1 )
{
nIndex++ ;
}
TeamMemberInfo *pInfo = g_objHero.GetTeamMemberInfo( nIndex ) ;
if ( pInfo )
{
m_GroupImg2.ShowHp( m_Pnt.x, m_Pnt.y, pInfo->dwHp, pInfo->dwMaxHp ) ;
CPoint point;
::GetCursorPos(&point);
CRect rect;
m_GroupImg2.GetWindowRect(rect);
if (rect.PtInRect(point))
{
CPoint posPosition;
posPosition.x = m_Pnt.x + 26;
posPosition.y = m_Pnt.y + nYPos + 17;
CDlgGroup::ShowTeamMemberPosition(nIndex,posPosition);
}
}
}
if ( m_GroupImg3.GetImageLoadState() )
{
nYPos += 64 ;
pShowAni->Show(0,m_Pnt.x + 50,m_Pnt.y + nYPos);
m_GroupImg3.Show ( m_Pnt.x, m_Pnt.y ) ;
int nIndex = 2 ;
if ( m_btOwnerPos <= 2 )
{
nIndex++ ;
}
TeamMemberInfo *pInfo = g_objHero.GetTeamMemberInfo( nIndex ) ;
if ( pInfo )
{
m_GroupImg3.ShowHp( m_Pnt.x, m_Pnt.y, pInfo->dwHp, pInfo->dwMaxHp ) ;
CPoint point;
::GetCursorPos(&point);
CRect rect;
m_GroupImg3.GetWindowRect(rect);
if (rect.PtInRect(point))
{
CPoint posPosition;
posPosition.x = m_Pnt.x + 26;
posPosition.y = m_Pnt.y + nYPos + 17;
CDlgGroup::ShowTeamMemberPosition(nIndex,posPosition);
}
}
}
if ( m_GroupImg4.GetImageLoadState() )
{
nYPos += 64 ;
pShowAni->Show(0,m_Pnt.x+50,m_Pnt.y + nYPos);
m_GroupImg4.Show ( m_Pnt.x , m_Pnt.y ) ;
int nIndex = 3 ;
if ( m_btOwnerPos <= 3 )
{
nIndex++ ;
}
TeamMemberInfo *pInfo = g_objHero.GetTeamMemberInfo( nIndex ) ;
if ( pInfo )
{
m_GroupImg4.ShowHp( m_Pnt.x, m_Pnt.y, pInfo->dwHp, pInfo->dwMaxHp ) ;
CPoint point;
::GetCursorPos(&point);
CRect rect;
m_GroupImg4.GetWindowRect(rect);
if (rect.PtInRect(point))
{
CPoint posPosition;
posPosition.x = m_Pnt.x + 26;
posPosition.y = m_Pnt.y + nYPos + 17;
CDlgGroup::ShowTeamMemberPosition(nIndex,posPosition);
}
}
}
switch(m_uFocusPlayer)
{
case 1:
m_GroupImg1.ShowFocus();
break;
case 2:
m_GroupImg2.ShowFocus();
break;
case 3:
m_GroupImg3.ShowFocus();
break;
case 4:
m_GroupImg4.ShowFocus();
break;
default:
break;
}
if (m_dwFocusTime !=0 && ::TimeGet() - m_dwFocusTime >= 5000)
{
m_dwFocusTime = 0;
m_uFocusPlayer = 0;
}
CDlgGroup::ShowMemberName();
}
void CDlgGroup::OnGroupBtnClose()
{
DXPlaySound( "Sound/Dlg_Ok.wav" ) ;
CDlgGroup::EnableWindow( false ) ;
}
void CDlgGroup::SetGroupContain()
{
m_GroupImg1.RemoveImage ( ) ;
m_GroupImg2.RemoveImage ( ) ;
m_GroupImg3.RemoveImage ( ) ;
m_GroupImg4.RemoveImage ( ) ;
m_GroupImg1.EnableWindow( false ) ;
m_GroupImg2.EnableWindow( false ) ;
m_GroupImg3.EnableWindow( false ) ;
m_GroupImg4.EnableWindow( false ) ;
m_btOwnerPos = 255 ;
m_uFocusPlayer = 0 ;
m_dwFocusTime = 0;
int nNum = 0 ;
for ( int i = 0; i < g_objHero.GetTeamMemberAmount (); i++ )
{
TeamMemberInfo *pTeamInfo = g_objHero.GetTeamMemberInfo ( i ) ;
// Test code
if ( pTeamInfo != NULL )
{
if ( pTeamInfo->id != g_objHero.GetID() )
{
nNum++ ;
int nIndex = i ;
if ( m_btOwnerPos != 255 && i > m_btOwnerPos )
{
nIndex-- ;
}
switch ( nIndex )
{
case 0:
m_GroupImg1.EnableWindow() ;
m_GroupImg1.InsertImage ( NULL, pTeamInfo->dwFace, pTeamInfo->dwLook, false ) ;
break ;
case 1:
m_GroupImg2.EnableWindow() ;
m_GroupImg2.InsertImage ( NULL, pTeamInfo->dwFace, pTeamInfo->dwLook, false ) ;
break ;
case 2:
m_GroupImg3.EnableWindow() ;
m_GroupImg3.InsertImage ( NULL, pTeamInfo->dwFace, pTeamInfo->dwLook, false ) ;
break ;
case 3:
m_GroupImg4.EnableWindow() ;
m_GroupImg4.InsertImage ( NULL, pTeamInfo->dwFace, pTeamInfo->dwLook, false ) ;
break ;
}
m_PlayerID[nIndex] = pTeamInfo->id ;
}
else
{
m_btOwnerPos = i ;
}
}
}
// Move the control buttons
CRect rect ;
CDlgGroup::GetWindowRect( rect ) ;
m_GroupBtn1.MoveWindow( 5,
rect.Height() - 66,
44,
22,false ) ;
m_GroupBtn1.ReInit( rect.left, rect.top ) ;
m_GroupBtn2.MoveWindow( 54,
rect.Height() - 66,
44,
22,false ) ;
m_GroupBtn2.ReInit( rect.left, rect.top ) ;
m_GroupBtn3.MoveWindow( 5,
rect.Height() - 53,
44,
22 ,false) ;
m_GroupBtn3.ReInit( rect.left, rect.top ) ;
m_GroupBtn4.MoveWindow( 54,
rect.Height() - 53,
44,
22 ,false) ;
m_GroupBtn4.ReInit( rect.left, rect.top ) ;
m_GroupCloseBtn.MoveWindow( rect.Width()-22,
rect.Height() - 34,
14,
14 ,false) ;
m_GroupCloseBtn.ReInit(rect.left,rect.top);
if ( g_objHero.IsTeamLeader () )
{
m_uTeamMode = TEAM_MODE_LEADER ;
m_GroupBtn1.ChangeImage ( "Button192" ) ;
m_GroupBtn2.ChangeImage ( "Button194" ) ;
m_GroupBtn1.MoveWindow( 5,
rect.Height() - 83,
44,
22 ,false) ;
m_GroupBtn1.ReInit( rect.left, rect.top ) ;
m_GroupBtn2.MoveWindow( 54,
rect.Height() - 83,
44,
22 ,false) ;
m_GroupBtn2.ReInit( rect.left, rect.top ) ;
m_GroupCloseBtn.MoveWindow( rect.Width()-23,
rect.Height() -13,
14,
14 ,false) ;
m_GroupCloseBtn.ReInit(rect.left,rect.top);
CRect Mrect;
m_MenuGroup.GetWindowRect( Mrect ) ;
m_MenuGroup.MoveWindow( m_Pnt.x - Mrect.Width(),
_SCR_HEIGHT - Mrect.Height() -228,
Mrect.Width(),
Mrect.Height(),false ) ;
}
else if ( i > 0 )
{
m_uTeamMode = TEAM_MODE_MEMBER ;
m_GroupBtn1.ChangeImage ( "Button193" ) ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -