BREW里面的触摸屏,点击的时候取出的点击点X、Y坐标怎么数值好大?

shc8marry 2011-06-07 06:41:32

我在EVT_POINTER_DOWN这个事件中捕获按下去的点的X,Y坐标。代码如下:


void HF_touch_down(uint32 dwParam,happyfamily240x320* pMe)
{
uint32 m_local;
pMe->click_x = dwParam>>16;
m_local = dwParam<<16;
pMe->click_y = m_local>>16;
if( ( pMe->click_x>HF_TOUCH_ONE_X && pMe->click_x<(HF_TOUCH_ONE_X+40) ) && ( pMe->click_x>HF_TOUCH_ONE_Y && pMe->click_x<(HF_TOUCH_ONE_Y+35)) )
{
HF_key_2_press(pMe);
}
}


帮我看看有错吗?



我跟踪代码后 发现(我在触摸屏上随便点的,但是数值太大)
dwParam 等于 54581248
pMe->click_x 等于 832
pMe->click_y 等于 55296

屏幕是240*320的


谁给我个触摸屏的简单的例子也行,BREW里面有没有求高、低位数值的函数?
...全文
1689 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
shc8marry 2011-06-13
  • 打赏
  • 举报
回复
已经解决,谢谢大家了!

if(AEE_POINTER_GET_XY(pStr, &pMe->click_x, &pMe->click_y)!=SUCCESS)
{
//DBGPRINTF("Touch Screen MOVE");
return;
}
strayedbird 2011-06-08
  • 打赏
  • 举报
回复
使用 AEE_POINTER_GET_XY()
kuangyeren_lld 2011-06-08
  • 打赏
  • 举报
回复
[Quote=引用楼主 shc8marry 的回复:]
我在EVT_POINTER_DOWN这个事件中捕获按下去的点的X,Y坐标。代码如下:


C/C++ code

void HF_touch_down(uint32 dwParam,happyfamily240x320* pMe)
{
uint32 m_local;
pMe->click_x = dwParam>>16;
m_local = dwParam……
[/Quote]

你这种方式只适合处理EVT_PEN_DOWN、EVT_PEN_MOVE、EVT_PEN_UP该组触摸事件。
对于EVT_POINTER_DOWN、EVT_POINTER_MOVE、EVT_POINTER_UP该组事件则不合适。
kuangyeren_lld 2011-06-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 shc8marry 的回复:]
这个函数怎么在BREW文档里面找不到?
[/Quote]

该函数在BrewSDK3.1.5里面的AEEPointerHelpers.h中。
wings4ever 2011-06-08
  • 打赏
  • 举报
回复
AEE_POINTER_GET_X
AEE_POINTER_GET_Y

不应该没有的

顺便说一下 有些手机 只发送PEN事件 有些手机只发送POINTER事件 还有的两个事件都发

需要处理好

另外 一些手机 在触摸屏幕边缘的时候(大概5pix左右) 取得的坐标是不正常的 适当屏蔽掉
shc8marry 2011-06-08
  • 打赏
  • 举报
回复
这个函数怎么在BREW文档里面找不到?

2,851

社区成员

发帖
与我相关
我的任务
社区描述
本论坛以AI、WoS 、XR、IoT、Auto、生成式AI等核心板块组成,为开发者提供便捷及高效的学习和交流平台。 高通开发者专区主页:https://qualcomm.csdn.net/
人工智能物联网机器学习 技术论坛(原bbs) 北京·东城区
社区管理员
  • csdnsqst0050
  • chipseeker
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧