(9)hge 中 GUI 对象和控件.doc_第1页
(9)hge 中 GUI 对象和控件.doc_第2页
(9)hge 中 GUI 对象和控件.doc_第3页
(9)hge 中 GUI 对象和控件.doc_第4页
(9)hge 中 GUI 对象和控件.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1. hge 中 GUI 对象和控件hge 中 GUI 对象被看作是一个控件的容器,hge 提供了创建 GUI 对象的类 hgeGUI 类2. hgeGUI 类1)AddCtrl 函数void AddCtrl( hgeGUIObject *ctrl / hgeGUIObject 对象的指针);我们通常可以有这样的写法:gui-AddCtrl(new hgeGUIMenuItem(1,fnt,snd,400,200,0.0f,Play);这里 hgeGUIMenuItem 是一个控件,继承于 hgeGUIObject 类,注意,我们创建了 hgeGUIObject 对象,但是却没有去销毁它,因为 hgeGUI 类的析构函数会去处理这些问题。2)SetNavMode设置 GUI 导航模式(Navigate mode):void SetNavMode( int navmode);HGEGUI_NONAVKEYS - 无键盘导航HGEGUI_LEFTRIGHT - 左右按键导航HGEGUI_UPDOWN - 上下按键导航HGEGUI_CYCLED - 循环默认情况下,navmode 被设置为 HGEGUI_NONAVKEYS,对于一个菜单,我们可以这样设置:SetNavMode(HGEGUI_UPDOWN | HGEGUI_CYCLED);使用上下键导航,并且循环。3)SetCursor设置光标 sprite:void SetCursor( hgeSprite *sprite);设置光标对应的 sprite,如果为0,表示不显示光标,默认情况为0。注意,光标不受 GUI 对象的管理,也就是用户必须自己释放光标资源。4)SetFocusvoid SetFocus( int id);每个控件都有一个对应的 ID 号,这个 ID 号被称之为控件的标识符,这里通过控件标识符来设置焦点。键盘事件只会被分发到成为焦点的控件上。5)Enter开始 GUI Enter 动画3. hgeGUIObjecthgeGUIObject 是一个抽象类,它有一个纯虚函数 RenderhgeGUIObject 类的子类的对象并不是 GUI 对象,而是 GUI 控件,这一点应该清楚1)hgeGUIObject 的成员变量hgeGUIObject 的成员变量都为 public:/ 必须在构造函数中初始化的变量int id; / 控件标识符bool bStatic; / 如果为 true 控件无法成为焦点也不会接受键盘事件,同时它将被 navigate 例程忽略(前面已谈到设置 navigate)bool bVisible; / 控件是否可见,如果为 false,控件将不被渲染bool bEnabled; / false 时,控件对用户的输入不作出任何回应,但是控件是可以接受到用户的通知(区别于 bStatic)hgeRect rect; / 控件有界框(bounding box)在屏幕上的区域DWORD color; / 控件颜色/ 不需要在构造函数中初始化的变量hgeGUI *gui; / GUI 对象指针hgeGUIObject *next; / 连接 GUI 对象中的所有控件,子类不需要改变它hgeGUIObject *prev; / 连接 GUI 对象中的所有控件,子类不需要改变它/ hge 指针static HGE *hge;2)void Render(void)渲染控件到屏幕3)void Update(float fDt)fDt 上次调用 Update 函数到现在所用的时间(单位是秒)4)void Enter(void)控件出现在屏幕上的时候被调用,用于播放控件出现时的动画5)void Leave(void)控件离开屏幕的时候被调用,用于播放控件离开屏幕的动画6)bool IsDone(void)判断控件出现动画和控件离开动画是否播放完毕7)void Focus(bool bFocused)控件获得焦点,bFocused 为 true,反之为 false8)bool MouseMove(float x, float y)以控件左上为原点,鼠标指针的坐标。如果控件状态改变,需要通知调用者,那么返回 true,否则返回 false9)bool MouseLButton( bool bDown)bDown 如果为 true,表示按下鼠标左键,如果 bDown 为 false,表示松开鼠标左键10)bool KeyClick( int key, int chr)key 表示按键的虚拟代码(Virtual code of the pressed key),见下表:HGEK_LBUTTONLeft mouse buttonHGEK_RBUTTONRight mouse buttonHGEK_MBUTTONMiddle mouse button (wheel button)HGEK_ESCAPEESCAPE keyHGEK_BACKSPACEBACKSPACE keyHGEK_TABTAB keyHGEK_ENTERAny of the two ENTER keysHGEK_SPACESPACE keyHGEK_SHIFTAny of the two SHIFT keysHGEK_CTRLAny of the two CTRL keysHGEK_ALTAny of the two ALT keysHGEK_LWINLeft WINDOWS keyHGEK_RWINRight WINDOWS keyHGEK_APPSAPPLICATIONS keyHGEK_PAUSEPAUSE keyHGEK_CAPSLOCKCAPS LOCK keyHGEK_NUMLOCKNUM LOCK keyHGEK_SCROLLLOCKSCROLL LOCK keyHGEK_PGUPPAGE UP keyHGEK_PGDNPAGE DOWN keyHGEK_HOMEHOME keyHGEK_ENDEND keyHGEK_INSERTINSERT keyHGEK_DELETEDELETE keyHGEK_LEFTLEFT ARROW keyHGEK_UPUP ARROW keyHGEK_RIGHTRIGHT ARROW keyHGEK_DOWNDOWN ARROW keyHGEK_0Main keyboard 0 keyHGEK_1Main keyboard 1 keyHGEK_2Main keyboard 2 keyHGEK_3Main keyboard 3 keyHGEK_4Main keyboard 4 keyHGEK_5Main keyboard 5 keyHGEK_6Main keyboard 6 keyHGEK_7Main keyboard 7 keyHGEK_8Main keyboard 8 keyHGEK_9Main keyboard 9 keyHGEK_AA keyHGEK_BB keyHGEK_CC keyHGEK_DD keyHGEK_EE keyHGEK_FF keyHGEK_GG keyHGEK_HH keyHGEK_II keyHGEK_JJ keyHGEK_KK keyHGEK_LL keyHGEK_MM keyHGEK_NN keyHGEK_OO keyHGEK_PP keyHGEK_QQ keyHGEK_RR keyHGEK_SS keyHGEK_TT keyHGEK_UU keyHGEK_VV keyHGEK_WW keyHGEK_XX keyHGEK_YY keyHGEK_ZZ keyHGEK_GRAVEGrave accent ()HGEK_MINUSMain keyboard MINUS key (-)HGEK_EQUALSMain keyboard EQUALS key (=)HGEK_BACKSLASHBACK SLASH key ()HGEK_LBRACKETLeft square bracket ()HGEK_RBRACKETRight square bracket ()HGEK_SEMICOLONSemicolon (;)HGEK_APOSTROPHEApostrophe ()HGEK_COMMAComma (,)HGEK_PERIODMain keyboard PERIOD key (.)HGEK_SLASHMain keyboard SLASH key (/)HGEK_NUMPAD0Numeric keyboard 0 keyHGEK_NUMPAD1Numeric keyboard 1 keyHGEK_NUMPAD2Numeric keyboard 2 keyHGEK_NUMPAD3Numeric keyboard 3 keyHGEK_NUMPAD4Numeric keyboard 4 keyHGEK_NUMPAD5Numeric keyboard 5 keyHGEK_NUMPAD6Numeric keyboard 6 keyHGEK_NUMPAD7Numeric keyboard 7 keyHGEK_NUMPAD8Numeric keyboard 8 keyHGEK_NUMPAD9Numeric keyboard 9 keyHGEK_MULTIPLYNumeric keyboard MULTIPLY key (*)HGEK_DIVIDENumeric keyboard DIVIDE key (/)HGEK_ADDNumeric keyboard ADD key (+)HGEK_SUBTRACTNumeric keyboard SUBTRACT key (-)HGEK_DECIMALNumeric keyboard

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论