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

📄 dialogscenelayer.cpp

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

#include "stdafx.h"
#include "Architect.h"
#include "DialogSceneLayer.h"
#include "ArchitectDlg.h"
#include "3DGameMap.h"
#include "2DMapPuzzleObj.h"
#include "SceneLayer.h"

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

/////////////////////////////////////////////////////////////////////////////
// CDialogSceneLayer dialog


CDialogSceneLayer::CDialogSceneLayer(CWnd* pParent /*=NULL*/)
	: CDialog(CDialogSceneLayer::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDialogSceneLayer)
	m_strXRate = _T("");
	m_strYRate = _T("");
	//}}AFX_DATA_INIT
	m_pData = NULL;
}


void CDialogSceneLayer::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDialogSceneLayer)
	DDX_Text(pDX, IDC_EDIT_XRATE, m_strXRate);
	DDX_Text(pDX, IDC_EDIT_YRATE, m_strYRate);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDialogSceneLayer, CDialog)
	//{{AFX_MSG_MAP(CDialogSceneLayer)
	ON_WM_TIMER()
	ON_BN_CLICKED(IDC_BUTTON_SETRATE, OnButtonSetrate)
	ON_BN_CLICKED(IDC_BUTTON_LOADPUZZLE, OnButtonLoadpuzzle)
	ON_WM_SHOWWINDOW()
	ON_WM_PAINT()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDialogSceneLayer message handlers

BOOL CDialogSceneLayer::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	this->SetTimer(WM_TIMER, 30, NULL);
	this->m_strXRate = "10";
	this->m_strYRate = "10";
	this->UpdateData(false);
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}



void CDialogSceneLayer::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
	extern CArchitectDlg* g_pDialog;
	int nIndex = g_pDialog->m_ctrlList.GetCurSel();
	CMapLayer* pLayer = g_objGameMap.GetLayerByIndex(nIndex);

	BOOL bFlash = false;
	if(m_pData != pLayer)
	{
		m_pData = pLayer;
		bFlash = true;
	}
	
	if(bFlash)
	{
		if(pLayer && pLayer->GetType() == CMapLayer::LAYER_SCENE)
		{
			this->ShowWindow(SW_SHOW);
		}
		else
		{
			this->ShowWindow(SW_HIDE);
		}
	}
	CDialog::OnTimer(nIDEvent);
}

void CDialogSceneLayer::OnButtonSetrate() 
{
	// TODO: Add your control notification handler code here
	this->UpdateData(true);
	int nX = atoi(this->m_strXRate);
	int nY = atoi(this->m_strYRate);
	extern CArchitectDlg* g_pDialog;
	int nIndex = g_pDialog->m_ctrlList.GetCurSel();
	CMapLayer* pLayer = g_objGameMap.GetLayerByIndex(nIndex);
	if(pLayer && pLayer->GetType() == CMapLayer::LAYER_SCENE)
	{
		pLayer->SetMoveRateX(nX);
		pLayer->SetMoveRateY(nY);
	}
}

void CDialogSceneLayer::OnAddPuzzle()
{
	extern CArchitectDlg* g_pDialog;
    static TCHAR strFileName[MAX_PATH] = TEXT("");
    static TCHAR strPath[MAX_PATH] = TEXT("");

	char szCurDir[_MAX_PATH];
	char szFileName[_MAX_PATH];
	GetCurrentDirectory(_MAX_PATH,szCurDir);
    // Setup the OPENFILENAME structure
    OPENFILENAME ofn = { sizeof(OPENFILENAME), this->GetSafeHwnd(), NULL,
                         TEXT("拼图文件\0*.pul\0所有文件\0*.*\0\0"), NULL,
                         0, 1, strFileName, MAX_PATH, NULL, 0, strPath,
                         TEXT("打开拼图文件"),
                         OFN_FILEMUSTEXIST|OFN_HIDEREADONLY|OFN_NOCHANGEDIR,
						 0, 0,
                         TEXT(".pul"), 0, NULL, NULL };

	
    // Display the OpenFileName dialog. Then, try to load the specified file
	try
	{
		if( TRUE != GetOpenFileName( &ofn ) )
		{
			return;
		}
	}
	catch(...)
	{

	}
	int nLen = strlen(szCurDir);
	for(int k = 0; k < _MAX_PATH-nLen-1; k++)
	{
		szFileName[k] =  strFileName[nLen+k+1];
	}

	int nIndex = g_pDialog->m_ctrlList.GetCurSel();
	CMapLayer* pLayer = g_objGameMap.GetLayerByIndex(nIndex);
	if(pLayer && pLayer->GetType() == CMapLayer::LAYER_SCENE)
	{
		C2DMapPuzzleObj* pObj = new C2DMapPuzzleObj;
		if(!pObj)
			return;
		pObj->LoadFile(szFileName);
		CSceneLayer* pSceneLayer = (CSceneLayer*)pLayer;
		pSceneLayer->AddObj(pObj);
	}
	
}

void CDialogSceneLayer::OnButtonLoadpuzzle() 
{
	// TODO: Add your control notification handler code here
	this->OnAddPuzzle();
}

void CDialogSceneLayer::OnShowWindow(BOOL bShow, UINT nStatus) 
{
	CDialog::OnShowWindow(bShow, nStatus);
	
	// TODO: Add your message handler code here
	extern CArchitectDlg* g_pDialog;
	int nIndex = g_pDialog->m_ctrlList.GetCurSel();
	CMapLayer* pLayer = g_objGameMap.GetLayerByIndex(nIndex);
	if(pLayer)
	{
		char szTemp[256];
		sprintf(szTemp, "%d", pLayer->GetMoveRateX);
		sprintf(szTemp, "%d", pLayer->GetMoveRateY);
		this->m_strXRate = szTemp;
		this->m_strYRate = szTemp;
		this->UpdateData(false);
	}
}

void CDialogSceneLayer::OnPaint() 
{
	CPaintDC dc(this); // device context for painting
	
	// TODO: Add your message handler code here
	extern CArchitectDlg* g_pDialog;
	int nIndex = g_pDialog->m_ctrlList.GetCurSel();
	CMapLayer* pLayer = g_objGameMap.GetLayerByIndex(nIndex);
	if(pLayer)
	{
		char szTemp[256];
		sprintf(szTemp, "%d", pLayer->GetMoveRateX());
		sprintf(szTemp, "%d", pLayer->GetMoveRateY());
		this->m_strXRate = szTemp;
		this->m_strYRate = szTemp;
		this->UpdateData(false);
	}
	
	// Do not call CDialog::OnPaint() for painting messages
}

⌨️ 快捷键说明

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