剪切板功能实现,具体方法很简单:分2部分
测试:在Editbox里实现剪切板
第一,字符的转换,在Editbox里加入了2个函数,是CEGUI::String 和 std::string之间的转换
第二,在void Editbox::onKeyDown(KeyEventArgs& e)函数里
通过 getSelectionStartIndex 和 getSelectionLength 获得了所选编辑框里的文本的起始位置和所选长度
再在
WindowEventArgs args(this);
switch (e.scancode)
{
//添加CTRL+C 按键响应
case Key::V://ctrl+v
{
if (e.sysKeys & Control)
{
//用substr获得所选的字符串,起始位置和所选长度上面我们保存了
//转换字符串为std::string
//然后是WIN复制
}
}
break;
}
实际上,用的还是WIN的剪切板,我们做的就是对CEGUI里字符串的处理罢了
此方法对中文有效