阅读此文章前请先确认你已经阅读以下文章:
制作要点:遵循 hgeGUI 和 hgeGUIObject 类原则,即所有控件需从 hgeGUIObject 派生。
步骤:
1. 重载 hgeGUIObject 的相关函数,具体文件尾代码。
2. 在每一帧结束时通过 hge->Input_GetIMEEvent(&imeEvent) 进行中文和英文输入获取。
3. 取得中文和英文后添加到字符串列表中。
4. 绘制字符串列表。
5. 重复2-5步骤。以此循环。
代码:
1. 头文件 <hgeedit.h>
#pragma once
#include "helpers/hgegui.h"
#include "helpers/hgevector.h"
#include "helpers/hgerect.h"
#include "helpers/hgefontcn.h"
#include <atlstr.h>
//-------------------------------------------------------------
// 描述 :
//-------------------------------------------------------------
class tEditBox : public hgeGUIObject
{
public:
tEditBox(HTEXTURE tex, int id,
float tx, float ty, float tw, float th,
hgeFontCN* font, int len = 0x10, float dstX = 0, float dstY = 0);
virtual void Update(float dt);
virtual void Render();
virtual void Leave();
virtual void MouseOver(bool bOver);
virtual void Focus(bool bFocused){ tudb_focus = bFocused, tudb_cursor = bFocused;}
virtual bool KeyClick(int key, int chr);
virtual bool MouseMove(float x, float y) { return true; }
CString GetString(){ return tudb_str; }
void SetString(CString str){ tudb_str = str; tudb_pos = tudb_str.GetLength(); reflength(); }
void Clear(){ SetString(""); }
void SetExpt(float x, float y){ tudb_ex = x, tudb_ey = y; }
private: