📄 resourcelib.cpp
字号:
// ***************************************************************
// HtextureLib version: 1.0
// -------------------------------------------------------------
// File Name: HtextureLib.cpp
// Created: 2007/07/18
// Modified: 2007/07/20 00:52
// Author: William.Liang
// Msn: lwq49@msn.com
// Email: lwq49@21cn.com, lwq49@msn.com
// Description:
//
// Purpose:
// -------------------------------------------------------------
// license:
//
// The contents of this file are subject to the Mozilla Public
// License Version 1.1 (the "License"); you may not use this file
// except in compliance with the License. You may obtain a copy
// of the License at http://www.mozilla.org/MPL/ Software dis-
// tributed under the License is distributed on an "AS IS"
// basis, WITHOUT WARRANTY OF ANY KIND, either express or im-
// plied. See the License for the specific language governing
// rights and limitations under the License.
//
// The Initial Developer of the Original Code is William.Liang .
// Copyright (C) 2007 - All Rights Reserved.
// ***************************************************************
#include "StdAfx.h"
#include ".\ResourceLib.h"
//************************************
// <p>Description: 构造函数</p>
// <p>Parameters: </p>
// <p> LPGDI lpGDI</p>
//
// <p>Returns: </p>
//************************************
CResourceLib::CResourceLib(LPGDI lpGDI)
{
m_lpGDI = lpGDI;
m_lstResourcs.Push(new CResource("_SYSTEM_", lpGDI, Resource_Reserve), "_SYSTEM_");
}
//************************************
// <p>Description: 析构函数</p>
//************************************
CResourceLib::~CResourceLib(void)
{
//清除资源
if(m_lstResourcs.GetCount()>0){
CResource* pResource = m_lstResourcs.Iterators(true);
while(pResource){
SafeDelete(pResource);
pResource = m_lstResourcs.Iterators();
}
m_lstResourcs.RemoveAll();
}
//清除资源包
if(m_lstResourcePacks.GetCount()>0){
//LPCTSTR lpFileName = m_lstResourcePacks.Iterators(true);
//while(lpFileName){
// SafeDelete(lpFileName);
// lpFileName = m_lstResourcePacks.Iterators();
//}
m_lstResourcePacks.RemoveAll();
m_lpGDI->Resource_RemoveAllPacks();
}
}
//************************************
// <p>Description: 加载资源包</p>
// <p>Parameters: </p>
// <p> LPCTSTR lpFileName</p>
//
// <p>Returns: void</p>
//************************************
void CResourceLib::LoadTexture(LPCTSTR lpFileName){
if(m_lpGDI->Resource_AttachPack(lpFileName)){
//char szFileName[MAX_PATH];
//strcpy(szFileName, lpFileName);
_CString szFileName = lpFileName;
//加载包成功后,保存在链表中
m_lstResourcePacks.Push(szFileName);
}
}
//************************************
// <p>Description: 添加资源</p>
// <p>Parameters: </p>
// <p> LPCTSTR lpFileName</p>
// <p> _CString szName</p>
//
// <p>Returns: void</p>
//************************************
void CResourceLib::Add(LPCTSTR lpFileName, _CString szName, enResourceType ResourceType){
CResource* pResource = new CResource(lpFileName, m_lpGDI, ResourceType);
if(pResource)
m_lstResourcs.Push(pResource, szName);
}
//************************************
// <p>Description: 返回帖图资源</p>
// <p>Parameters: </p>
// <p> INT_PTR nIndex</p>
//
// <p>Returns: CResource*</p>
//************************************
CResource* CResourceLib::operator[](INT_PTR nIndex){
return m_lstResourcs[nIndex];
}
//************************************
// <p>Description: 返回帖图资源</p>
// <p>Parameters: </p>
// <p> _CString szName</p>
//
// <p>Returns: CResource*</p>
//************************************
CResource* CResourceLib::GetTexture(_CString szName){
return m_lstResourcs.GetBy(szName);
}
//************************************
// <p>Description: 返回资源</p>
// <p>Parameters: </p>
// <p> _CString szName</p>
//
// <p>Returns: CResource*</p>
//************************************
CResource* CResourceLib::GetResource(_CString szName){
return m_lstResourcs.GetBy(szName);
}
//************************************
// <p>Description: 返回资源的大小</p>
// <p>Parameters: </p>
// <p> INT_PTR nIndex</p>
//
// <p>Returns: _SIZE</p>
//************************************
_SIZE CResourceLib::GetTextureSize(INT_PTR nIndex){
_SIZE siSize;
CResource* pResource = m_lstResourcs[nIndex];
if(pResource)
siSize = pResource->GetSize();
return siSize;
}
//************************************
// <p>Description: 返回资源的大小</p>
// <p>Parameters: </p>
// <p> _CString szName</p>
//
// <p>Returns: _SIZE</p>
//************************************
_SIZE CResourceLib::GetTextureSize(_CString szName){
return GetTextureSize(m_lstResourcs.GetPositionBy(szName));
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -