我在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<<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里面有没有求高、低位数值的函数?
------解决方案--------------------------------------------------------
使用 AEE_POINTER_GET_XY()
------解决方案--------------------------------------------------------
AEE_POINTER_GET_X
AEE_POINTER_GET_Y
不应该没有的
顺便说一下 有些手机 只发送PEN事件 有些手机只发送POINTER事件 还有的两个事件都发
需要处理好
另外 一些手机 在触摸屏幕边缘的时候(大概5pix左右) 取得的坐标是不正常的 适当屏蔽掉
------解决方案--------------------------------------------------------