emwin触屏上的按钮,按钮的长按按钮和点击执行不同的语句怎么写

查看: 868|回复: 0
emwin 实现触摸按钮长按动作【解决方案】
主题帖子精华
高级会员, 积分 826, 距离下一级还需 174 积分
在线时间362 小时
在网上以及论坛上,看到很多人都在为 &emwin中实现触摸按钮长按动作& 而迷茫!
那就看看本人是怎么实现的吧!
说明: 本人提供的代码已经在自己的产品上,应用很多年了。在此与大家分享一下!
运行机制说明:
&&1、一个任务中,定时向主窗体发送更新消息;
&&2、主窗体任务, 实时接收更新消息;
&&3、如果按钮长时间按下,对应的变量递增;
&&4、持续按下的时间,还没有达到设定时间, 按钮抬起,执行一般的动作;
&&5、递增到设定的时间后,响应长时间按下的功能动作;
#define SCREEN_PARAM_SET& && & 10+4
#define SCREEN_CALIB_SET& && && &10+5
#define SCREEN_DISTABOUT& && &&&10+6
#define SCREEN_DEVICE_CHK& && & 10+7
#define SCREEN_TEST_RUN& && && & 10+8
#define SCREEN_STOP_TEST& && && &10+9
typedef struct tagSendMsgInfo{
& & char *str[10];& & & &
} SEND_MSG_INFO;
static SEND_MSG_INFO&&t_& & & &
u8&&curr_screen =0;&&
static WM_HWIN _hC& &&&//用户区窗口句柄& & & & & & & &
static WM_MESSAGE M& &&&//用户窗体信息
WM_HWIN&&ParamSet_hW&&//参数设置窗口---句柄& & & &
WM_HWIN&&Calib_hW& & & && & //校准窗口--------句柄& & & &
****************************************************************************& & & &
* 功& & 能:& & 用户信息更新-------任务
*----------------------------------------------------------------------------------------------------------*
* 入口参数:&&p_arg-----A pointer to parameter passed to task.
* 出口参数:&&nil
****************************************************************************/& & & &
void Task_UserMsg_Update (void *p_arg)
& &&&while (1)
& && && &&&/*----例如: 发送日期消息----------------------------*/
& && && &&&// t_msg.item=5;&&//显示日期的信息识别号
& & & && & //&&t_msg.str[5]=(char *)Date_& & & & //发送日期消息内容& & & &
& && && & switch(curr_screen)&&//当前的窗口
& & & && &&&{
& && && && && && &&&case SCREEN_PARAM_SET: //参数设置屏幕& & & &
&&& & & & & & & & & & & & & & & && &Msg.MsgId = WM_USER + 50;
& & & & & & & & & & & && && && &&&Msg.Data.p = &t_ //可以发送附属的信息& & & & & & & & & & & & & & & &
& & & & & & & & & & & & & & & & & & & &
& & & & & & & & & & & && && && && &_hClinet=WM_GetClientWindow(ParamSet_hWin);//获得用户区窗口句柄& & & & & & & & & & & &
& & & & & & & & & & & & & & & && & WM_SendMessage(_hClinet, &Msg);& &
& & & & & & & & & & & & & & & & & & & && &
& & & & & & & & & & & & & & & && &
& && && && && && && &case SCREEN_CALIB_SET: //校准屏幕
& & & & & & & & & & & & & & & && &Msg.MsgId = WM_USER + 60;
& & & & & & & & & & & & & & & && &Msg.Data.p = &t_& & & & & & & & & & & & & & & & & & & &
& & & & & & & & & & & & & & & & & & & &
& & & & & & & & & & & & & & & && &_hClinet=WM_GetClientWindow(Calib_hWin);//获得用户区窗口句柄& & & & & & & & & & & &
& & & & & & & & & & & & & & & && &WM_SendMessage(_hClinet, &Msg); & & & & & & & & & & & & & & & &
& & & & & & & & & & & & & & & && &
& && && && && && && &//.......................................
& && && && && && && &//.......................................
& && && && && && &&&//.......................................
& && && && &}
& && && &OSTimeDly (200); //每0.2S更新一次
/****************************************************************************& & & &
* 功& & 能:& &&&应用开始主任务
*---------------------------------------------------------------------------*
* 入口参数:pdata& & & & A pointer to parameter passed to task.
* 出口参数:nil
****************************************************************************/& & & &
static&&void&&AppTaskStart (void *p_arg)
& & while(1)
& && && && &TFT_MainFrame() ;&&//主界面窗体
& && && && &OSTimeDly(100);
static u8& &&&at_status[2]={0,0};
static u8& &&&flag_press_bt[2]={0,0};
static u32& &num_press_bt[2]={0,0};
#define&&PARAM_SET_MSG_ID& &&&(WM_USER + 50)
/*********************************************************************
*& && & MainFrame
**********************************************************************
void TFT_MainFrame(void)
{&&& & & &
& &&&#if OS_CRITICAL_METHOD == 3& &
& && &&&OS_CPU_SR&&cpu_sr = 0;
& &&&#endif& & & &
& &&&//...............................
& &&&//...............................
& && &OS_ENTER_CRITICAL();
& && &curr_screen=SCREEN_PARAM_SET;
& && &OS_EXIT_CRITICAL();
& && &ParamSet_hWin = GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), &_cbCallback, 0, 0, 0);& & & & & & & & & & & &
& && &WM_SetFocus(WM_GetDialogItem(ParamSet_hWin, GUI_ID_BUTTON2));& & & & //焦点于按钮2& & & &
********************************************************************
* ParamSet_hWin窗口下的 回调函数& && && && && && && && && && && && && && && && && && && && & *
********************************************************************
static void _cbCallback(WM_MESSAGE * pMsg)& &
{& & & && &&&
& &&&int NCode, Id;& & & &
& &&&WM_HWIN hI& & & &
& && &#if OS_CRITICAL_METHOD == 3& &
& && &OS_CPU_SR&&cpu_sr = 0;
& && &#endif& & & & & & & && &
& && &WM_HWIN hDlg = pMsg-&hW
& && &switch (pMsg-&MsgId)
& & & && &&&//...............................
& && && && &//...............................& & & & & & & && &
& & & && &&&case PARAM_SET_MSG_ID:&&//此窗口下的消息更新
& && && && && &if(flag_press_bt[0]==1){& & & & & & & & & & & &
& & & & & & & && & num_press_bt[0]++;& & & & & & & & & & & &
& & & & & & & & }& & & &
& & & & & & & & if(flag_press_bt[1]==1){& & & & & & & & & & & &
& & & & & & & && & num_press_bt[1]++;& & & & & & & & & & & &
& & & & & & & & }& & & && && && && & & & & & & & & & & & & &
& && && && && &
& && && && &case WM_NOTIFY_PARENT:
& && && && && & Id& & = WM_GetId(pMsg-&hWinSrc);
& & & & & & & & NCode = pMsg-&Data.v;
& & & & & & & & switch(NCode)
& & & & & & & && &{& & & & & & & & & & & & & & & & & & & & & & & & & & & &&&
& && && && && && && & case WM_NOTIFICATION_SEL_CHANGED:
& && && && && && && && && &//...............................
& && && && && && && && && &//...............................& & & &
& && && && && && && && &&&
& && && && && && && & case WM_NOTIFICATION_CLICKED:&&//控件点击---响应
& && && && && && && && &&&switch(Id){& & & &&&& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &&&& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & && &
& & & & & & & & & & & & & & & & case& & & & GUI_ID_BUTTON40:& & & & //长按作用按钮1
& & & & & & & & & & & && && && && && && &num_press_bt[0]=0; //clear& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &
& & & & & & & & & & & & & & & && && && & flag_press_bt[0]=1;& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &&&
& & & & & & & & & & & & & & & && && && && & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &
& & & & & & & & & & & & & & & & case& & & & GUI_ID_BUTTON41:
& & & & & & & & & & & & & & & & & & & & num_press_bt[1]=0; //长按作用按钮2& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &
& & & & & & & & & & & & & & & & & & & & flag_press_bt[1]=1;& & & & & & & & & & & & & & & &
& & & & & & & & & & & & & & & & & & & && & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &
& & & & & & & & & & & & & & & & case& & & & GUI_ID_BUTTON3:& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &&&
& & & & & & & & & & & & & & & & & & & && & & & & & & & & & & &
& & & & & & & & & & & & & & & & case& & & & GUI_ID_BUTTON4:& && && && && && && && &
& & & & & & & & & & & & & & & & & & & && & & & & & & & & & & & & & & &&&
& && && && && && && && &&&}& & & && && && && && && && &
& && && && && && && && &&&
& && && && && && && &case&&WM_NOTIFICATION_RELEASED: //按钮释放---响应
& & & & & & & & & & & && & switch(Id){& & & &
& & & & & & & & & & & && && &&&case& & & & GUI_ID_BUTTON40:& & & &&&//长按作用按钮1& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &&&
& & & & & & & & & & & & & & & && &&&if(num_press_bt[0]&15){& &//定时3s:&&15*0.2s=3s&&[ 注: 0.2s更新一次]& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &&&
& & & & & & & & & & & & & & & && && && & flag_press_bt[0]=2;& &//改变状态
& & & & & & & & & & & & & & & && && && & num_press_bt[0]=0; //clear
& && && && && && && && && && && && && && &//...............................
& && && && && && && && && && && && && && &//执行用户自己的功能代码
& && && && && && && && && && && && && &&&//...............................& & & &
& && && && && && && && && && && && &}else{
& && && && && && && && && && && && && & flag_press_bt[0]=0;//clear
& & & & & & & & & & & & & & & & & & & & num_press_bt[0]=0; //clear& & & &
& && && && && && && && && && && && && &&&//...............................& & & && && && && && && && && && && && && && && &//执行用户自己的功能代码& && && && && && && && && && &
& && && && && && && && && && && &&&}& & & &
& && && && && && && && && && && &&&& & & &
& && && && && && && && && && &case& & & & GUI_ID_BUTTON41:& & & &&&//长按作用按钮2& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &&&& & & & & & & & & & & & & & & && &&&if(num_press_bt[1]&15){& &//定时3s:&&15*0.2s=3s&&[ 注: 0.2s更新一次]& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &&&
& & & & & & & & & & & & & & & && && && & flag_press_bt[1]=2;& &//改变状态
& & & & & & & & & & & & & & & && && && & num_press_bt[1]=0; //clear
& && && && && && && && && && && && && && &//...............................
& && && && && && && && && && && && && && &//执行用户自己的功能代码
& && && && && && && && && && && && && &&&//...............................& & & &
& && && && && && && && && && && && &}else{
& && && && && && && && && && && && && & flag_press_bt[1]=0;//clear
& & & & & & & & & & & & & & & & & & & & num_press_bt[1]=0; //clear& & & &
& && && && && && && && && && && && && &&&//...............................& & & && && && && && && && && && && && && && && &//执行用户自己的功能代码& && && && && && && && && && &
& && && && && && && && && && && &&&}& & & &
& && && && && && && && && && && && & & & & & & &
& && && && && && && && && && & //...............................
& && && && && && && && && && &&&//其它的功能按钮响应
& && && && && && && && && && & //...............................& & & &
& && && && && && && && && &&&}
& && && && && && && && &&&& & & & & & & & & & & & & & & & & & & & & & & &
& && && && && && &}
Powered by&>&MFC实现长按按钮,不断执行某一语句,实现长按功能
MFC实现长按按钮,不断执行某一语句,实现长按功能
上传大小:1.79MB
MFC实现长按按钮,不断执行某一语句,实现长按功能
综合评分:4.5(13位用户评分)
下载个数:
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var parentWrap = $(this).parents(".respond_box"),
q = parentWrap.find(".form1").serializeArray(),
resStr = $.trim(parentWrap.find(".res_area_r").val());
console.log(q);
//var res_area_r = $.trim($(".res_area_r").val());
if (resStr == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
//var mess = $(".res_area_r").val();
var mess = resS
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, _username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click",'.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
var parentWrap = $(v).parents(".respond_box");
parentWrap.find(".res_area_r").val($.trim(parentWrap.find(".res_area").val()));
评论共有9条
还可以,实现了想要的效果
不错的资源,具有一定的参考价值
已经在使用中
上传时间:积分/C币:0
上传者:fanhu6816
上传时间:积分/C币:5
上传者:zuo
上传时间:积分/C币:3
上传者:yangxin1113
上传时间:积分/C币:3
上传者:cp
上传时间:积分/C币:5
上传者:xiaanming
上传时间:积分/C币:11
上传者:izheer
上传时间:积分/C币:3
上传者:chen
上传时间:积分/C币:3
上传者:ttdevs
上传时间:积分/C币:3
上传者:yidong2
上传时间:积分/C币:3
上传时间:积分/C币:5
上传者:arthurzss
上传时间:积分/C币:3
上传者:lowprofile_coding
上传时间:积分/C币:8
上传者:zhagwei
上传时间:积分/C币:3
上传者:wxm
上传时间:积分/C币:3
上传时间:积分/C币:3
上传者:qq_
上传时间:积分/C币:0
上传者:qq_
上传时间:积分/C币:3
上传者:gxflh
上传时间:积分/C币:10
上传者:android_yck
上传时间:积分/C币:5
审核通过送C币
C++语言程序设计
创建者:weixin_
现代C++精品资料
创建者:vanmit
软件工程毕业设计之基于MFC的手机生产制造执行系统的设计与开发
上传者其他资源上传者专辑
VC++画可以移动的圆
利用list Control实现的条目上移和下移功能
升级 WIN8.1 VC6.0和 Visual Assist 的使用问题,亲测,可以用!
AUDIO--杜比音质增强--正版软件
Visual Assist X 10.7.1925 完美破解版
VIP会员动态
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
扫码关注并点击右下角获取下载码
输入下载码
为了良好体验,不建议使用迅雷下载
MFC实现长按按钮,不断执行某一语句,实现长按功能
会员到期时间:
剩余下载个数:
剩余C币:593
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
(仅够下载10个资源)
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可奖励5下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
MFC实现长按按钮,不断执行某一语句,实现长按功能触摸问题|uCOS &
emWin & embOS - 安富莱电子论坛 - Powered by phpwind
查看完整版本: [--
我的触摸程序是根据&&安富莱4.3寸,5寸,7寸屏触摸校准程序和安富莱的emWin 60期的教程来移植的,但移植完后触摸功能时灵时不灵。在TouchScan()程序中加上DEBUG(&\r\n emWin test!\r\n&);这条语句时,运行官网例程TOUCH_Calibrate触摸有反应,可以用来校正,但过几秒钟就卡死了,在怎么触摸都没反应。若不加那条语句,触摸没反应。其实DEBUG()就是printf()的一个宏,用串口来打印信息的。校正好后,根据安富莱emWin教程,运行官方DIALOG_SliderColor例程,除显示Cancel有问题,其它的显示都没有问题。触摸屏是没反应,即触摸按钮和滑动条都是没反应的。&&不知道我在移植过程中缺少哪些步骤,请各位教教,谢谢。void TouchScan(void){&&&&uint8_t s_invalid_count = 0;&&&&&&&&//if(Touch_Status())&&&&if(TOUCH_PressValid == 0)&&&&&&&&{&&&&&&&&&&&&&&&&&&&&//DEBUG(&\r\n emWin test!\r\n&);&&&&&&&&while(!GetTouchADCVal(&g_TouchADC.touchADCX,&g_TouchADC.touchADCY) && s_invalid_count & 20)&&&&&&&&{&&&&&&&&&&&&s_invalid_count++;&&&&&&&&}&&&&&&&&if(s_invalid_count &= 20)&&&&&&&&{&&&&&&&&&&&&g_TouchADC.touchADCX = -1;&&&&&&&&&&&&g_TouchADC.touchADCY = -1;&&&&&&&&}&&&&}&&&&else&&&&{&&&&&&&&g_TouchADC.touchADCX = -1;&&&&&&&&g_TouchADC.touchADCY = -1;&&&&&&&&}&&&&&&&&&&&&}
楼主,你用的什么屏和触摸IC。
:楼主,你用的什么屏和触摸IC。 ( 13:10) 版主,我用的是RAIO 8870 和 8875 差不多的,自带触摸功能的哦
:楼主,你用的什么屏和触摸IC。 ( 13:10) 模拟屏,驱动屏的控制器是RA8870
:模拟屏,驱动屏的控制器是RA8870 ( 15:17) RA8870也是在的触摸IC的吗
:RA8870也是在的触摸IC的吗 ( 10:28) 什么意思呀。&&&&RA8870文档没说是什么触摸IC。 触摸功能是通过寄存器来开启和使用的
:什么意思呀。    RA8870文档没说是什么触摸IC。 触摸功能是通过寄存器来开启和使用的 ( 12:57) 不好意思,文字没有表达清楚,有时候这个触摸的周期等参数需要适当的重新配置,要不的确会出现这种情况。
:不好意思,文字没有表达清楚,有时候这个触摸的周期等参数需要适当的重新配置,要不的确会出现这种情况。 ( 17:29) 哦,触摸的周期等参数配置有什么技巧吗? 我修改了一下,还是不行。我想问一下&&&&&& 如果开通触摸屏中断功能,在调用TouchScan()函数后,为什么您的程序里面不用清除触摸屏的中断标志位(清除其中断标志位即是对寄存器F1H的第2位写1),就可以连续触摸呢。而官方文档不是说一次触摸中断后,要清除触摸屏的中断标志位才可以感应下一次触摸吗?还想问一下,寄存器71H第2位中的弹跳电路是什么电路来的,干什么用的呢?谢谢您
:哦,触摸的周期等参数配置有什么技巧吗? 我修改了一下,还是不行。我想问一下       如果开通触摸屏中断功能,在调用TouchScan()函数后,为什么您的程序里面不用清除触摸屏的中断标志位(清除其中断标志位即是对寄存器F1H的第2位写1),就可以连 .. ( 20:57) 我没有开启中断,我这里只是读取这个引脚的状态。那个弹跳电路,我没有研究过。
查看完整版本: [--
Powered by
Time 0.130833 second(s),query:2 Gzip enabled还没有帐号? 赶紧
用户版块帖子
emwin 中如何实现按钮长按动作,请教大神
在线时间4小时
金币5威望1
按键好像只有三个消息,但是没有长按消息,我想实现按键长按,然后不断刷屏,然后相应进度条动态显示,应该如何做,感谢能够指点一下
在线时间105小时
金币99威望3
我也碰到这样的问题,想按键长按调音量。兄台的问题解决了么?
在线时间23046小时
金币21832威望3253
我们最近发布的示波器的长按动作不是emwin实现的,而是按键本身的驱动就支持长按,然后给emWin发消息就行。
努力做的更好,专注,Fighting!努力打造高质量微信公众号:
在线时间27小时
金币21威望4
我用的思路和板凳位一样。可以改改按键部分的驱动,加上长按和短按的判断部分。
在线时间814小时
金币106威望14
ucos的作者写过一本好像叫系统构件的书,里面有矩阵键盘在ucos下的应用,其中有长按的处理,可以找来看看。
在线时间4小时
金币5威望1
,我是新手,思路上的东西可能还没理解清楚,我想的是在主循环中查询按键,然后发送按键消息到窗口,但是有感觉这是外置按键的操作,我现在是直接现在触摸屏上操作按键,不知道思路啊
在线时间4小时
金币5威望1
回 waterx3 的帖子
:ucos的作者写过一本好像叫系统构件的书,里面有矩阵键盘在ucos下的应用,其中有长按的处理,可以找来看看。 ,我是新手,思路上的东西可能还没理解清楚,我想的是在主循环中查询按键,然后发送按键消息到窗口,但是有感觉这是外置按键的操作,我现在是直接现在触摸屏上操作按键,不知道思路啊
在线时间4小时
金币5威望1
回 eric2013 的帖子
:我们最近发布的示波器的长按动作不是emwin实现的,而是按键本身的驱动就支持长按,然后给emWin发消息就行。
我是新手,思路上的东西可能还没理解清楚,我想的是在主循环中查询按键,然后发送按键消息到窗口,但是有感觉这是外置按键的操作,我现在是直接现在触摸屏上操作按键,不知道思路啊
在线时间814小时
金币106威望14
emwin中文手册,22.5 游戏操纵杆输入示例
在线时间23046小时
金币21832威望3253
回 zm 的帖子
:我是新手,思路上的东西可能还没理解清楚,我想的是在主循环中查询按键,然后发送按键消息到窗口,但是有感觉这是外置按键的操作,我现在是直接现在触摸屏上操作按键,不知道思路啊 ( 10:43) 你说的按键是指触摸屏上面的按钮吗
努力做的更好,专注,Fighting!努力打造高质量微信公众号:
在线时间4小时
金币5威望1
回 eric2013 的帖子
:你说的按键是指触摸屏上面的按钮吗 ( 20:04) 是的啊,
在线时间105小时
金币99威望3
楼主,你现在解决了么?跟你分享我现在的解决的办法,在定时器里判断按键是否按下 用这个语句&&&&&&&&if(BUTTON_IsPressed(WM_GetDialogItem(pMsg-&hWin, GUI_ID_BUTTON7))) 我现在是这么弄的,感觉还可以
在线时间1小时
金币1威望0
楼上可以再说详细点吗?这个BUTTON_IsPressed返回的是按下的时间吗?
在线时间32小时
金币42威望6
可以不用定时器,直接在 while (1)&&GUI_Delay (10) ; 每隔10ms去 polling 就好,一连串的按下动作就能判断是长按了,就好像ADC采集一样的原理,如果嫌10ms不准,还可以调小,根据人的敏捷值去调.....
在线时间32小时
金币42威望6
哦,对了,还要加上 move_out 判断,就是在 button&&上,move_out 就认为是 release了,就OK了
在线时间105小时
金币99威望3
回 slovak 的帖子
:楼上可以再说详细点吗?这个BUTTON_IsPressed返回的是按下的时间吗? ( 09:47) 不是,是判断是否正按下,。如果按下就返回1
在线时间241小时
金币654威望31
回 true_casey 的帖子
:可以不用定时器,直接在 while (1)  GUI_Delay (10) ; 每隔10ms去 polling 就好,一连串的按下动作就能判断是长按了,就好像ADC采集一样的原理,如果嫌10ms不准,还可以调小,根据人的敏捷值去调..... ( 17:17) 在回调函数用delay就是 找死啊
在线时间241小时
金币654威望31
回 true_casey 的帖子
:哦,对了,还要加上 move_out 判断,就是在 button  上,move_out 就认为是 release了,就OK了  ( 17:18) move_OUT:已单击单选按钮,并且指针已移出单选按钮,但没有释放这个必须 移出所选对象外面才触发啊
UID:10463
在线时间11小时
金币5威望0
同样问题&&楼主解决了吗
UID:10463
在线时间11小时
金币5威望0
UID:10463
在线时间11小时
金币5威望0
回 xiaosir 的帖子
:楼主,你现在解决了么?跟你分享我现在的解决的办法,在定时器里判断按键是否按下 用这个语句        if(BUTTON_IsPressed(WM_GetDialogItem(pMsg-&hWin, GUI_ID_BUTTON7))) 我现在是这么弄的,感觉还可以 ( 16:51) 真的可以!感激不尽啊
UID:10463
在线时间11小时
金币5威望0
回 waterx3 的帖子
:emwin中文手册,22.5 游戏操纵杆输入示例  ( 11:49) 我试过了,在仿真里面是可以,但是上板子就不行了
访问内容超出本站范围,不能确定是否安全
限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
您目前还是游客,请
&回复后跳转到最后一页
Powered by & Copyright Time now is:12-16 07:09 &
版权所有 Gzip enabled
Total 0.313569(s) query 4,

我要回帖

更多关于 android按钮长按事件 的文章

 

随机推荐