游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2439|回复: 2

我想请问下在CEGUI中如何实现键盘的连续输入和连续删除

[复制链接]

1

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2011-1-17 16:09:00 | 显示全部楼层 |阅读模式
在cegui中,通过键盘连续输入,比如我一直按住f,那么在editbox框内应该依次递增多个f,直到我松开此键。这个是如何响应的呢。还有就是我一直退格键的时候,如何连续在editbox中连续删除多个字符呢。各位大大,请直到的帮帮忙啦。

4

主题

29

帖子

29

积分

注册会员

Rank: 2

积分
29
发表于 2011-1-19 21:03:00 | 显示全部楼层

Re:我想请问下在CEGUI中如何实现键盘的连续输入和连续删除

在windows的消息回调函数里增加
        case WM_CHAR:
                return g_pStateMgr->OnChar(wParam);
        case WM_KEYDOWN:
                {
                        //输入法状态时,输入不传递到UI系统中去。
                        UINT vk = (UINT)ImmGetVirtualKey(g_pRender->_hwnd);
                        if(vk == wParam)
                                break;
                }
                return CEGUI::System::getSingleton().injectKeyDown((CEGUI::utf32)(VirtualKeyToScanCode(wParam, lParam)));
        case WM_KEYUP:
                return CEGUI::System::getSingleton().injectKeyUp((CEGUI::utf32)(VirtualKeyToScanCode(wParam, lParam)));

///////////////////////////////////////////////////

UINT VirtualKeyToScanCode(WPARAM wParam, LPARAM lParam)   
{   
        if(HIWORD(lParam) & 0x0F00)   
        {   
                UINT scancode = MapVirtualKey(wParam, 0);   
                return scancode | 0x80;   
        }   
        else   
        {   
                return HIWORD(lParam) & 0x00FF;   
        }   
}

0

主题

7

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2011-1-26 14:14:00 | 显示全部楼层

Re:我想请问下在CEGUI中如何实现键盘的连续输入和连续删除

精彩,看来简单,学习了哦质量管理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-4 22:04

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表