clayui界面库系列教程之三:详解CLAYUI_BFRAME

公有成员

void SetForeground (CLAYUI_FRAME *frame)
 将传入的子frame提到最前面.
void TriggerAnimation (DWORD msg, CLAYUI_FRAME_PATH_ID &pi)
 根据消息触发动画.
void TriggerAnimation (char *aname)
 触发标识为aname的动画.
int GetFrameIDByName (char *framename)
 根据名称标识别得到子frame的frameID.
void SetFrameIDByName (char *framename, int frameid)
 设置一个名称标识与frameID的关联.
CLAYUI_FRAMEGetChildByID (DWORD frameid)
 得到frameID为frameid的子frame
virtual void AddMsg_unity (CLAYUI_MSG *msg)
 为frame添加一条消息msg
void DeleteFrame (char *idname)
 删除名称标识为idname的子frame
virtual void UpdateLayout ()
 更新布局
virtual void SetLayout (BOOL isuselayout, int layoutslotindex, char *layoutname)
 设置使用布局库里的布局
virtual void Clear ()
 清除子frame,皮肤,动画资源
virtual void InitBFrame (CLAYUI_BFRAME *gitemframe, CLAYUI_BFRAME *parent, HL_GRAPHICS draw, BOOL iscreateIndex)
 初始化
virtual void LoadFromMem (BYTE *filebuffer, DWORD filesize, BOOL isMemMgr=TRUE)
 从内存块里读取布局
int LoadFromFile (char *filepath)
 从文件里读取布局
virtual void UserAction (CLAYUI_MSGINFO *msginfo, int x, int y, DWORD msg)
 用户消息响应函数
int AddGraphicsItem (HL_GITEM graitem)
 添加一个图形
void AddAnimation (CLAYUI_ANIMATION *anim)
 添加一个动画
CLAYUI_FRAMEAddFrame (BOOL iscreateIndex, char *framename, int x, int y, int width, int height, INT64 life)
 添加一个子frame
CLAYUI_FRAMEAddCustomFrame (BOOL iscreateIndex, char *framename, int x, int y, int width, int height, INT64 life, CLAYUI_FRAME *fram, int insertindex=-1)
 添加一个自定义的frame
CLAYUI_ANIMATION * GetAnimation (char *idname)
 通过idname得到动画对象
CLAYUI_FRAMEGetChildFrame (char *idname)
 通过idname得到子frame
HL_GITEM GetGraphicsItem (char *idname)
 通过idname得到图形对象
void TriggerAnimation (DWORD msg, CLAYUI_FRAME *frame)
 由消息触发动画

成员函数文档

void CLAYUI_BFRAME::AddAnimation (CLAYUI_ANIMATION * anim) 

添加一个动画

anim对象必须是通过new操作符生成的对象,加入到frame里后,由frame负责销毁

 


 

CLAYUI_FRAME* CLAYUI_BFRAME::AddCustomFrame(BOOL iscreateIndex,
  char * framename,
  int x,
  int y,
  int width,
  int height,
  INT64 life,
  CLAYUI_FRAMEfram,
  int insertindex = -1 
 )  

添加一个自定义的frame

改函数可以传入一个以CLAYUI_FRAME为基类的指针

 


 

CLAYUI_FRAME* CLAYUI_BFRAME::AddFrame(BOOL iscreateIndex,
  char * framename,
  int x,
  int y,
  int width,
  int height,
  INT64 life 
 )  

添加一个子frame

iscreateIndex: 设为0

framename: 名称标识

x, y: 子frame的坐标,以其父frame的左上角坐标为原点

width, height: 子frame的宽度和高度

life: 生命周期

该函数返回创建的子frame的指针

 


 

int CLAYUI_BFRAME::AddGraphicsItem (HL_GITEM graitem) 

添加一个图形

添加图形后,图形就由frame负责管理,销毁

 


 

virtual void CLAYUI_BFRAME::AddMsg_unity (CLAYUI_MSG * msg)[virtual]

为frame添加一条消息msg

如果frame里已经有相同类型的消息,则此条消息会被丢弃并删除

相同类型的消息是指:消息ID与消息发送方相同。

但是当消息里含有用户自定义的数据时,即使消息ID与消息发送方相同,也会被认为是不同的消息

 


 

virtual void CLAYUI_BFRAME::Clear ( )[virtual]

清除子frame,皮肤,动画资源

重载CLAYUI_FRAME

 


 

void CLAYUI_BFRAME::DeleteFrame (char * idname) 

删除名称标识为idname的子frame

这里并不是真正删除,只是给子frame设置一个"删除"的标记

 


 

CLAYUI_ANIMATION* CLAYUI_BFRAME::GetAnimation (char * idname) 

通过idname得到动画对象

 


 

CLAYUI_FRAME* CLAYUI_BFRAME::GetChildByID(DWORD frameid) 

得到frameID为frameid的子frame

一旦设置关联后,凡是名称标识为framename的frame被添加时,frameID都为frameid

 


 

CLAYUI_FRAME* CLAYUI_BFRAME::GetChildFrame (char * idname) 

通过idname得到子frame

 


 

HL_GITEM CLAYUI_BFRAME::GetGraphicsItem (char * idname) 

通过idname得到图形对象

 


 

virtual void CLAYUI_BFRAME::InitBFrame (CLAYUI_BFRAMEgitemframe,
  CLAYUI_BFRAMEparent,
  HL_GRAPHICS draw,
  BOOL iscreateIndex 
 ) [virtual]

初始化

gitemframe: 管理图形资源的frame

iscreateIndex: 设为0

 


 

int CLAYUI_BFRAME::LoadFromFile (char * filepath) 

从文件里读取布局

 


 

virtual void CLAYUI_BFRAME::LoadFromMem (BYTE * filebuffer,
  DWORD filesize,
  BOOL isMemMgr = TRUE 
 ) [virtual]

从内存块里读取布局

isMemMgr == TRUE:filebuffer由BFRAME负责销毁,

isMemMgr == FALSE:filebuffer由外部负责销毁

 


 

void CLAYUI_BFRAME::SetFrameIDByName (char * framename,
  int frameid 
 )  

设置一个名称标识与frameID的关联.

一旦设置关联后,凡是名称标识为framename的frame被添加时,frameID都为frameid

 


 

virtual void CLAYUI_BFRAME::SetLayout (BOOL isuselayout,
  int layoutslotindex,
  char * layoutname 
 ) [virtual]

设置使用布局库里的布局

isuselayout: 是否使用布局库

layoutslotindex: 布局槽编号

layoutname: 布局名称

 


 

void CLAYUI_BFRAME::TriggerAnimation (DWORD msg,
  CLAYUI_FRAMEframe 
 )  

由消息触发动画

 


 

virtual void CLAYUI_BFRAME::UpdateLayout ( )[virtual]

更新布局

 


 

virtual void CLAYUI_BFRAME::UserAction (CLAYUI_MSGINFO * msginfo,
  int x,
  int y,
  DWORD msg 
 ) [virtual]

用户消息响应函数

用户可以在这里编写消息处理的相关代码


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值