CSectsInfomation.cpp文件
#include "SectsInfomation.h"
#include "WidgetMgr.h"
#include "XButton.h"
#include "XSroll.h"
#include "Config.h"
#include "XCommon.h"
#include "XStatic.h"
#include "XImage.h" #if(CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
#include "GameCenter.h"
#include "AppExtra.h"
#endif
/*******************************
*函数名称:CSectsInfomation
*函数功能:构造函数
*函数参数:void
*函数返回值:void
*备注:
*******************************/
CSectsInfomation::CSectsInfomation(void)
{
m_pBtnExit = NULL;
m_pSta = NULL;
m_PageNum = ;
m_FirstId = ;
m_PageTotal = ;
CCLabelTTF *pLabel = NULL;
memset(acPage,,);
} CSectsInfomation::~CSectsInfomation(void)
{
}
/*******************************
*函数名称:init
*函数功能:初始化函数
*函数参数:void
*函数返回值:true--初始化成功;false--初始化失败
*备注:
*******************************/
bool CSectsInfomation::init()
{
bool bRet = false; CWidgetMgr::getInstance()->loadWidget(this, _IDD_CSectsInfomation);
CWidgetMgr::getInstance()->addWnd(this); for (deque<CXWindow*>::const_iterator it = this->getDequeWnd().begin(); it != this->getDequeWnd().end(); it++)
{
//给按钮添加响应函数
if (UI_BUTTON == (*it)->getUIType())
{
(*it)->setClickListener(this, callfuncO_selector(CSectsInfomation::btnMsgCallback));
}
//通过id中的第三位映射到相应的图片,每个按钮的id都加上200就是对应要显示的图片
int iNum = (*it)->getId();
iNum = (*it)->getId() / ;
iNum = iNum % ;
if (iNum >= )
{
(*it)->setVisible(false);
m_vecImage.push_back(*it);
}
//显示第一页
iNum = (*it)->getId();
iNum = (*it)->getId() / ;
if (iNum != )
{
(*it)->setVisible(false);
}
//保存最大页码
if (iNum > m_PageTotal)
{
m_PageTotal = iNum;
}
//第一张任务图片要显示
if ((*it)->getId() == )
{
(*it)->setVisible(true);
}
}
//显示页码
m_pSta = (CXStatic*)(this->getCtrl());
char acTemp[] = {};
strcpy(acPage,"1/");
itoa(m_PageTotal,acTemp,);
strcat(acPage,acTemp);
pLabel = CCLabelTTF::create(acPage,"Gautami",);
m_pSta->setLabel(pLabel);
m_pSta->setPosition(,);
m_pSta->setVisible(true);
//选中框的图片
m_pImg = (CXImage*)(this->getCtrl());
this->setVisible(false);
return true;
} /*******************************
*函数名称:btnMsgCallback
*函数功能:按钮的响应函数
*函数参数:CCObject* pSender--这里传进来的是this指针
*函数返回值:void
*备注:这里处理四种情况:
1.上一页
2.下一页
3.返回
4.点击任务列表中某项的响应
这里不做页面循环,当到最后一页时取消下一页按钮的响应
当到了第一页时取消上一页按钮的响应
*******************************/
void CSectsInfomation::btnMsgCallback(CCObject* pSender)
{
int iAddNum = ;
CXImage *pImage = NULL;
CXButton *pButton = (CXButton*)pSender;
if (pButton->getId() == )
{
this->setVisible(false);
}
else if (pButton->getId() == )
{
m_PageNum = m_PageNum - ; if ( > m_PageNum)
{
m_PageNum = ;
}
else
{
//上一页
for (deque<CXWindow*>::const_iterator it = this->getDequeWnd().begin(); it != this->getDequeWnd().end(); it++)
{
int iNum = ;
iNum = (*it)->getId() / ;
if (iNum != m_PageNum)
{
(*it)->setVisible(true);
}
iNum = (*it)->getId() / ;
iNum = iNum % ;
if (iNum >= )
{
(*it)->setVisible(false);
}
if ((*it)->getId() == m_PageNum * + )
{ CCPoint point = (*it)->getPosition();
m_pImg->setPosition(point.x ,point.y);
}
int num = m_PageNum * + + ;
if ((*it)->getId() == num)
{
(*it)->setVisible(true);
}
}
memset(acPage,,);
char acTotal[] = {};
char acTemp[] = {};
itoa(m_PageNum,acTemp,);
itoa(m_PageTotal,acTotal,);
strcpy(acPage,acTemp);
strcat(acPage,"/");
strcat(acPage,acTotal);
pLabel->setString(acPage);
} }
else if (pButton->getId() == )
{
m_PageNum = m_PageNum + ; if (m_PageTotal < m_PageNum)
{
m_PageNum = m_PageTotal;
}
else
{
//下一页
for (deque<CXWindow*>::const_iterator it = this->getDequeWnd().begin(); it != this->getDequeWnd().end(); it++)
{
int iNum = ;
iNum = (*it)->getId() / ;
if (iNum != m_PageNum)
{
(*it)->setVisible(true);
}
iNum = (*it)->getId() / ;
iNum = iNum % ;
if (iNum >= )
{
(*it)->setVisible(false);
}
if ((*it)->getId() == m_PageNum * + )
{
CCPoint point = (*it)->getPosition();
m_pImg->setPosition(point.x ,point.y);
}
int num = m_PageNum * + + ;
if ((*it)->getId() == num)
{
(*it)->setVisible(true);
}
}
memset(acPage,,);
char acTotal[] = {};
char acTemp[] = {};
itoa(m_PageNum,acTemp,);
itoa(m_PageTotal,acTotal,);
strcpy(acPage,acTemp);
strcat(acPage,"/");
strcat(acPage,acTotal);
pLabel->setString(acPage);
} }
else
{
//获取当前选中按钮所在的坐标,然后通过这个坐标,边框显示在相应位置
CCPoint point = pButton->getPosition();
m_pImg->setPosition(point.x ,point.y); SectsNotVisible(); //通过id获取图片控件的指针
pImage = (CXImage*)(this->getCtrl(pButton->getId() + ));
pImage->setVisible(true);
}
} void CSectsInfomation::btnMsgSrollCallback(CCObject* pSender)
{ }
/*******************************
*函数名称:SectsNotVisible
*函数功能:屏蔽所有任务图片控件
*函数参数:void
*函数返回值:void
*备注:
*******************************/
void CSectsInfomation::SectsNotVisible()
{
for (deque<CXWindow*>::const_iterator it = m_vecImage.begin(); it != m_vecImage.end(); it++)
{
(*it)->setVisible(false);
}
}
CSectsInfomation.cpp文件的更多相关文章
- atom 调用g++编译cpp文件
atom 有script插件可以直接调用很多编译器,试了很多次一直出问题找不到文件,查了文档之后发现script只支持OSX和linux. 所以,还是使用gpp-compiler比较靠谱 gpp-co ...
- C++链接两个cpp 文件
我们在编程中,有没有想过,分别写代码,然后把两个cpp,文件合并,两个自身本不能运行的文件,在一起却可以运行(主要牵扯函数调用,一个有声明和调用,另一个定义).那么具体如何实现呢? 跟着我的步骤: 1 ...
- ios工程中加入.c/.cpp文件
如果你在工程里拉入.c/.cpp文件就会导致工程报错, 现在有两种解决方式 1. 把.c文件的后缀全部改成.m的后缀 把.cpp文件的后缀改成.mm的后缀 2. 使用 工程名-Prefix.pch 并 ...
- C中头文件在cpp文件中引用和.h文件引用
1.编译器会单独编译每个cpp文件.头文件会复制到cpp文件中. 2.有时会遇到这样的一个问题a.cpp要调用b.cpp中的函数,而b.cpp又要调用a.cpp中的函数.这就牵扯到相互调用.这时如果我 ...
- [vim配置]windows下在vim中使用gcc/g++编译调试c/cpp文件
在Linux里面混了一个多月,vim编程用得甚爽.无奈前天将Linux里面的编程文件夹误删,而技术不精无法找回,悲痛欲绝.再者,无限怀念windows里面的游戏,并觉得现在在Linux里面也学不到什么 ...
- C++学了这么多年,你也许不知道为什么类定义要放在.h文件,类实现放在cpp文件。它们如何关联?
原文 http://blog.csdn.net/ithzhang/article/details/8119286 主题 C++ C++学了这么多年你知道为什么定义类时,类的定义放在.h文件中,而类 ...
- QT-- MainWindow外的cpp文件调用ui
这几天在学习QT,想写一个类似VIM的小软件,刚开始不注重代码结构,全部实现都写在MainWindow文件中,导致MianWindow文件十分的长而且很难去阅读,就想着把函数按照功能分到不同的cpp文 ...
- WIN10 64位下VS2015 MFC直接添加 halcon 12的CPP文件实现视觉检测
近段时间开始接触halcon,但是在VS2015里面使用,无论是配置还是生产EXE文件,都不如意. 加上网上的教程很多,经过多次测试,其实有很多地方无需修改,如果修改的太多也失去了直接添加封装的意义. ...
- 一个简单的makefile,一次性编译本文件夹下所有的cpp文件
代码: CXX := g++ CFLAGS := -g TARGET := xxx.exe SRCS := $(wildcard *.cpp) OBJS := $(patsubst %cpp,%o,$ ...
随机推荐
- Java多线程学习(吐血超具体总结)
林炳文Evankaka原创作品. 转载请注明出处http://blog.csdn.net/evankaka 写在前面的话:此文仅仅能说是java多线程的一个入门.事实上Java里头线程全然能够写一本书 ...
- BeagleBone折腾记(一):连接你的狗板
BeagleBone折腾记一连接你的狗板 准备 了解BeagleBone BeagleBone社区 所需软硬件 USB连接 TTL连接 结语 准备 了解BeagleBone BeagleBone可能一 ...
- HDU1411++几何+四面体体积
公式题... 自己闲的用cos sin推出个公式 还不知道对不对,明天补上.. #include<stdio.h> #include<math.h> #include<i ...
- LoadLibrary文件路径及windows API相关的文件路径问题
LoadLibrary HMODULE WINAPI LoadLibrary( _In_ LPCTSTR lpFileName ); Loads the specified module into ...
- ExtJS ComboBox 录入智能提示
ExtJS ComboBox非常复杂,有很多的属性:其中有的属性是针对某一种特定的方案而设计的,不是所有情况下都有效.我想下拉选择能支持录入,并且录入时能智能提示,弄了半天可以了,但是只能是mode= ...
- 如何查看ESXi的网卡的MAC地址?
直接上图 图一, 物理网卡 图二, vmkernel虚拟网卡 参考资料 ============================ How To Determine Vmkernel Inter ...
- [转载][概念]Storage Pool, Private RAID Group, Private LUN
Storage Pool的起源 ========================== Some time ago, EMC introduced the concept of Virtual Prov ...
- SQL Server 2008新特性——策略管理
策略管理是SQL Server 2008中的一个新特性,用于管理数据库实例.数据库以及数据库对象的各种属性.策略管理在SSMS的对象资源管理器数据库实例下的“管理”节点下,如图: 从图中可以看到,策略 ...
- JDBC基本操作介绍
一 .JDBC主要的API介绍 JDBC为开发人员提供了一套标准的API,都是由JAVA语言编写的类和接口.用于连接数据库和执行SQL语句.JDBC也是JAVA核心类库的一部分,位于Java.sql包 ...
- Logon database Tiger引起DataGuard不同步问题
当DataGuard升级CPU后.发现主备库不能同步了,日志报错,所以在主库的运行的升级的后脚本"@catbundle.sql cpu apply"不能同步到备库 现象: brok ...