公有成员 | |
virtual void | SetBmpEffect (short type, short radius, short x, short y, short r, short g, short b, short a) |
设置滤镜. | |
BOOL | IsEnable () |
判断frame是否响应用户的交互操作. | |
void | GetClipRect (NC_RECT_INT *cliprect) |
得到裁减矩形. | |
virtual void | GetFrameValue (CLAYUI_VARIANT *var) |
返回frame的用户输出值. | |
void | Die () |
这个很好理解,就是让窗口销毁. | |
void | DistbMsgToReceivers (CLAYUI_MSG *msg) |
将消息发送给接收者. | |
void | SetMsgReceiver (CLAYUI_FRAME *frame) |
设置消息接收窗口. | |
void | SetFrameID (DWORD frameid) |
强制设置frame的ID. | |
DWORD | GetFrameID () |
得到frame的ID. | |
void | GetRelativeMatrix (CNC_MATRIX *m) |
得到自身的变换矩阵. | |
void | GetScale (float &x, float &y) |
得到frame的缩房系数. | |
void | GetAngle (float &angle) |
得到frame的旋转角度. | |
void | GetTrans (float &x, float &y) |
得到frame的坐标. | |
void | GetOri (int &x, int &y) |
得到frame的中心点坐标. | |
UINT | GetFrameFlags (UINT flag) |
得到frame的窗口设置参数. | |
void | SetFrameFlags (UINT flagtype, short flagvalue) |
设置frame的窗口设置参数. | |
void | SetClip (int isclip, int left, int top, int width, int height) |
设置窗口的裁减矩形. | |
virtual void | UpdateSkin () |
更新皮肤. | |
virtual void | Clear () |
清除窗口里的皮肤和动画资源. | |
void | Enable (BOOL isEnable) |
设置窗口的Enable状态. | |
virtual void | SetOri (FIXEDT x, FIXEDT y) |
设置窗口的中心点坐标. | |
BOOL | GetIsTransform () |
获取窗口是否需要被更新. | |
virtual void | SetIsTransform (BOOL isTransform) |
设置窗口需要被更新. | |
BOOL | GetIsChildTransform () |
获取子窗口是否发生了更新. | |
void | SetParent (CLAYUI_BFRAME *bframe) |
强制设置父窗口. | |
void | SetDragMode (int dragmode) |
设置窗口是否可以被鼠标拖拽. | |
CLAYUI_BFRAME * | GetParent () |
得到父窗口指针. | |
virtual void | Init (CLAYUI_BFRAME *parent, HL_GRAPHICS draw, BOOL iscreateIndex) |
初始化. | |
virtual int | OnKeyDown (CLAYUI_CHAR n_char, UINT n_repcnt, UINT flags) |
响应键盘消息. | |
virtual int | OnLButtonUP (int x, int y, int flag) |
响应左键弹起. | |
virtual int | OnRButtonUP (int x, int y, int flag) |
响应右键弹起. | |
virtual int | OnMouseMove (int x, int y, int flag) |
响应鼠标滑过. | |
virtual int | OnLButtonDown (int x, int y, int flag) |
响应左键按下. | |
virtual int | OnRButtonDown (int x, int y, int flag) |
响应右键按下. | |
void | SetIdname (char *idname) |
设置frame的名称标识. | |
BOOL | PtInFramerect (int x, int y) |
判断点是否落在窗口内. | |
BOOL | PtInCliprect (int x, int y) |
判断点是否落在裁减矩形内. | |
CLAYUI_FRAME_ITEM * | AddFrameItem (HL_GITEM gitem, GRAPHICS_EXTINFO *gextinfo, int x, int y, int angle, float xscale, float yscale, float alpha) |
加入一个皮肤对象. | |
virtual void | SetFrameSize (int width, int height) |
设置frame的高度和宽度 | |
void | GetFrameSize (int &width, int &height) |
得到frame的高度和宽度 | |
void | AlphaTo (int alpha) |
将frame的透明度设置到alpha | |
void | ScaleTo (float x, float y) |
将frame的缩放系数设置为x, y | |
void | RotateTo (float angle) |
将frame的旋转角度设置为angle | |
void | MoveTo (float x, float y) |
将frame移动到坐标(x, y) | |
void | SetColorTrans (int amult, int rmult, int gmult, int bmult, int aadd, int radd, int gadd, int badd) |
设置frame的颜色变换 | |
virtual void | Update () |
每桢对frame进行更新 | |
友元 | |
class | CLAYUI_BFRAME |
class | CLAYUI_FRAME_ITEM |
class | CLAYUI_TTEXT |
成员函数文档
CLAYUI_FRAME_ITEM* CLAYUI_FRAME::AddFrameItem | ( | HL_GITEM | gitem, |
GRAPHICS_EXTINFO * | gextinfo, | ||
int | x, | ||
int | y, | ||
int | angle, | ||
float | xscale, | ||
float | yscale, | ||
float | alpha | ||
) |
加入一个皮肤对象.
HL_GITEM gitem: 图形对象
GRAPHICS_EXTINFO* gextinfo:如果图形对象是一个栅格图形,并需要只显示其中某个区域(left, top, right, bottom)
那么gextinfo应该按照如下方式初始化
GRAPHICS_EXTINFO* exinfo = new GRAPHICS_EXTINFO; exinfo->gwidth = right - left; exinfo->gheight = bottom - top; exinfo->bmpsrcinfo = new GRAPHICS_BMP_SRCINFO; exinfo->bmpsrcinfo->m_colorkey = 0; exinfo->bmpsrcinfo->m_srcx = left; exinfo->bmpsrcinfo->m_srcy = top;
在其他情况,gextinfo的值是NULL
x, y: 皮肤在窗口里的坐标
angle, xscale, yscale, alpha: 皮肤的旋转角度,缩放系数,透明度
void CLAYUI_FRAME::AlphaTo | ( | int | alpha | ) |
将frame的透明度设置到alpha
alpha取值范围为0-100
void CLAYUI_FRAME::Die | ( | ) |
这个很好理解,就是让窗口销毁.
需要注意的是,Die()函数调用后,窗口并不会马上被delete掉,只是变成了“准备销毁”的状态
在CLAYUI_HLG_Draw里,窗口会被真正销毁
void CLAYUI_FRAME::DistbMsgToReceivers | ( | CLAYUI_MSG * | msg | ) |
将消息发送给接收者.
关于CLAYUI_MSG的详细说明,请查看clayui的消息机制说明
void CLAYUI_FRAME::Enable | ( | BOOL | isEnable | ) |
设置窗口的Enable状态.
Enable状态决定frame是否响应鼠标和键盘消息的
void CLAYUI_FRAME::GetClipRect | ( | NC_RECT_INT * | cliprect | ) |
得到裁减矩形.
返回的裁减矩形是以frame的自身坐标系为参考,即以frame的左上角为原点
void CLAYUI_FRAME::GetFrameSize | ( | int & | width, |
int & | height | ||
) |
得到frame的高度和宽度
virtual void CLAYUI_FRAME::GetFrameValue | ( | CLAYUI_VARIANT * | var | ) | [virtual] |
返回frame的用户输出值.
在clayui里,每个窗口都有一个用户输出值,例如:
CLAYUI_TTEXT的输出值为一串字符串
CLAYUI_CHECKBOX的输出值为check状态
这个主要是复合型控件会用到的一个功能
BOOL CLAYUI_FRAME::GetIsTransform | ( | ) |
获取窗口是否需要被更新.
当窗口发生了位移,旋转,缩放,颜色,宽高改变时,更新状态将被设置为TRUE
void CLAYUI_FRAME::GetOri | ( | int & | x, |
int & | y | ||
) |
得到frame的中心点坐标.
frame的中心点坐标是相对于frame的左上角坐标的偏移值
virtual void CLAYUI_FRAME::Init | ( | CLAYUI_BFRAME * | parent, |
HL_GRAPHICS | draw, | ||
BOOL | iscreateIndex | ||
) | [virtual] |
初始化.
parent: 父窗口指针 draw: 绘图设备 iscreateIndex: 目前没有作用的参数
BOOL CLAYUI_FRAME::IsEnable | ( | ) |
判断frame是否响应用户的交互操作.
返回值是FALSE时,frame是不响应鼠标和键盘消息的
void CLAYUI_FRAME::MoveTo | ( | float | x, |
float | y | ||
) |
将frame移动到坐标(x, y)
virtual int CLAYUI_FRAME::OnLButtonDown | ( | int | x, |
int | y, | ||
int | flag | ||
) | [virtual] |
virtual int CLAYUI_FRAME::OnLButtonUP | ( | int | x, |
int | y, | ||
int | flag | ||
) | [virtual] |
响应左键弹起.
响应鼠标消息的函数,如果用户重载了此函数,请在函数最后再调用CLAYUI_FRAME::OnLButtonUP(int x, int y, int flag);
x,y: 鼠标的坐标在clayui绘图区域内的坐标 flag: clayui系统的参数,用户不能更改
virtual int CLAYUI_FRAME::OnMouseMove | ( | int | x, |
int | y, | ||
int | flag | ||
) | [virtual] |
virtual int CLAYUI_FRAME::OnRButtonDown | ( | int | x, |
int | y, | ||
int | flag | ||
) | [virtual] |
virtual int CLAYUI_FRAME::OnRButtonUP | ( | int | x, |
int | y, | ||
int | flag | ||
) | [virtual] |
BOOL CLAYUI_FRAME::PtInCliprect | ( | int | x, |
int | y | ||
) |
判断点是否落在裁减矩形内.
x, y是clayui绘图区域的坐标
BOOL CLAYUI_FRAME::PtInFramerect | ( | int | x, |
int | y | ||
) |
判断点是否落在窗口内.
x, y是clayui绘图区域的坐标
void CLAYUI_FRAME::RotateTo | ( | float | angle | ) |
将frame的旋转角度设置为angle
void CLAYUI_FRAME::ScaleTo | ( | float | x, |
float | y | ||
) |
将frame的缩放系数设置为x, y
virtual void CLAYUI_FRAME::SetBmpEffect | ( | short | type, |
short | radius, | ||
short | x, | ||
short | y, | ||
short | r, | ||
short | g, | ||
short | b, | ||
short | a | ||
) | [virtual] |
设置滤镜.
short type: 滤镜的类型,可以取的值为
TYPE_BMPEFT_NONE:无滤镜
TYPE_BMPEFT_NONE:阴影滤镜,阴影滤镜只对本身投射阴影,对子FRAME不产生作用
short radisu: 滤镜的模糊半径
short x, y: 滤镜相对于frame的位移
short r,g,b,a: 滤镜的颜色
void CLAYUI_FRAME::SetClip | ( | int | isclip, |
int | left, | ||
int | top, | ||
int | width, | ||
int | height | ||
) |
设置窗口的裁减矩形.
裁减矩形是以frame的自身坐标系为参考,即以frame的左上角为原点
void CLAYUI_FRAME::SetColorTrans | ( | int | amult, |
int | rmult, | ||
int | gmult, | ||
int | bmult, | ||
int | aadd, | ||
int | radd, | ||
int | gadd, | ||
int | badd | ||
) |
设置frame的颜色变换
颜色变换的公式为dest = src * mult + add
mult的取值范围为0-100
add的取值范围为-255-255
其中a, r, g, b, 前缀分别代表:透明度,红色分量,绿色分量,兰色分量
void CLAYUI_FRAME::SetDragMode | ( | int | dragmode | ) |
设置窗口是否可以被鼠标拖拽.
0:不支持拖拽
1:可以被鼠标左键拖拽
2:可以被鼠标右键拖拽
void CLAYUI_FRAME::SetFrameFlags | ( | UINT | flagtype, |
short | flagvalue | ||
) |
设置frame的窗口设置参数.
clayui的窗口有如下设置参数:
CLAYUI_FS_KEYINPUT: 是否接收键盘消息,默认是不接收
以下为在不同窗口(不包括父窗口)间传递消息的设置参数//
这里有点复杂,如果不需要在窗口间转发消息或者自己处理的,可以略过
这里对clayui的消息简单说明一下,在clayui里,每个frame都会给自身以及父窗口发送以下7个基本消息
CLAYUI_ONLBUTTONDOWN:鼠标左键按下消息
CLAYUI_ONLBUTTONUP:鼠标左键弹起消息
CLAYUI_ONMOUSEIN:鼠标滑入消息
CLAYUI_ONMOUSEOUT:鼠标滑出消息
CLAYUI_ONMOUSEMOVE:鼠标滑动消息
CLAYUI_ONRBUTTONDOWN:鼠标右键按下消息
CLAYUI_ONRBUTTONUP:鼠标右键弹起消息
这7个消息以下简称基本消息
CLAYUI_FS_SENDMSG_RULE_AS:转发所有非基本消息的消息
CLAYUI_FS_SENDMSG_RULE_SES:转发自身的基本消息
CLAYUI_FS_SENDMSG_RULE_CSES:转发子FRAME的基本消息
CLAYUI_FS_SENDMSG_RULE_OTHER:转发由别的窗口(非子窗口)转发的消息
窗口初始化时,默认CLAYUI_FS_SENDMSG_RULE_AS是开启的,其它3个都是关闭的
//
void CLAYUI_FRAME::SetFrameID | ( | DWORD | frameid | ) |
强制设置frame的ID.
在clayui里,每个窗口都有一个ID,这个ID仅在不同窗口(不包括父窗口)间传递消息时发挥作用
在一个frame被加到其父窗口中时,父窗口会给这个frame自动分配一个ID,所以用户并不用自己设置
父窗口会根据子frame的名称标识(idname)分配一个唯一的ID并保存这个对应关系,也就是说,当这个frame被销毁了,下次仍然以原来的名称标识加入到父窗口时,分配的ID仍然是原先的ID
virtual void CLAYUI_FRAME::SetFrameSize | ( | int | width, |
int | height | ||
) | [virtual] |
设置frame的高度和宽度
void CLAYUI_FRAME::SetIdname | ( | char * | idname | ) |
设置frame的名称标识.
每个frame在其父frame里的名称标识都是唯一的,
void CLAYUI_FRAME::SetMsgReceiver | ( | CLAYUI_FRAME * | frame | ) |
设置消息接收窗口.
这个函数用于在不同的窗口间传递消息,frame会将自身的一部分消息发送给接收窗口
只有在发送方和接收方都有父窗口的情况下,此函数才有效,当然,主窗口是个例外,因为主窗口没有父窗口
frame会默认将自身消息发送给父窗口,所以,不用设置父窗口为消息接收窗口
关于发送消息的详细情况,请查看
-
参见:
SetFrameFlags()
virtual void CLAYUI_FRAME::SetOri | ( | FIXEDT | x, |
FIXEDT | y | ||
) | [virtual] |
设置窗口的中心点坐标.
frame的中心点坐标是相对于frame的左上角坐标的偏移值
void CLAYUI_FRAME::SetParent | ( | CLAYUI_BFRAME * | bframe | ) |
强制设置父窗口.
非特殊情况,不建议使用
virtual void CLAYUI_FRAME::Update | ( | ) | [virtual] |
每桢对frame进行更新
virtual void CLAYUI_FRAME::UpdateSkin | ( | ) | [virtual] |
更新皮肤.
如果更改了当前的皮肤槽,需要调用主窗口的UpdateSkin()来更新皮肤