完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在课余时间玩GUI有一段时间了,这几天终于告一段落,仅仅是把空间演示了一遍。为了减少和我一样初学者的 痛苦,为此我把我的这个例程上传上来,希望减少大家像我一样的痛,真的学这个的时候 移植不是太难,不加触屏时候 控件也不难,但是加了触摸屏后,我就一直卡这里了,没有例程,在百度上找资料也很无力,帮的很少,最后一个偶然的以后让我找到问题所在了,咱这论坛里有一哥们写了一个按钮触屏的,在mini板子跑着一直死机,当时问也没人说,找不到问题所在们其实就是在,取ad值的问题,如果把那个函数改成取ad值就好了。。。这是偶然发现的,因为那个哥们的例程,我相信了他,就没有怀疑过那个地方会出错,就找我控件的问题,直到我把控件写好,发给其他电友,他们说没问题时候 我才重新在底层找问题。就是在
int GUI_TOUCH_X_MeasureX(void) 这个函数的问题,希望其他人不要再重犯我的歧途。不过还是谢谢那个大侠,要不是他我可能还是不能踏入触屏。 这个例子是实现了按钮,复选框,进度条,活动条 的功能,希望对初学者有用,大神们就不用看了 ,仅供初学者参考 touch.rar (1.62 MB ) |
|
相关推荐
49个回答
|
|
收藏,顶起。
|
|
|
|
楼主用的那个版本的keil,怎么没办法编译!
|
|
|
|
3和4都用过 都可以
|
|
|
|
你好,我用你的例子作为工程模板,不知道为什么创建不了窗口,代码很简单
#include "gui.h" #include "math.h" #include "stddef.h" #include "delay.h" #include "ROGBAR.h" //进度条 #include "lcd9341.h" #include "touch.h" #include "BUTTON.h" #include "WM.h" #include "DIALOG.h" #include "string.h" #include "DROPDOWN.h" #include "GUI_Protected.h" //Mini STM32开发板范例代码10 //TFTLCD显示 实验 //发烧友@ALIENTEK //技术论坛:www.openedv.com static void cbForegroundWin(WM_MESSAGE* pMsg) { switch (pMsg->MsgId) { case WM_PAINT: GUI_SetBkColor(GUI_GREEN); GUI_Clear(); GUI_DispString("Foreground window"); break; default: WM_DefaultProc(pMsg); } } static void DemoRedraw(void) { GUI_HWIN hWnd; while(1) { /* Create foreground window */ hWnd = WM_CreateWindow(10, 10, 100, 100, WM_CF_SHOW, cbForegroundWin, 0); /* Show foreground window */ delay_ms(1000); /* Delete foreground window */ WM_DeleteWindow(hWnd); GUI_DispStringAt("Foreground of window has not been redrawn", 10, 10); /* Wait a while, background will not be redrawn */ delay_ms(1000); GUI_Clear(); } } int main(void) { SystemInit(); delay_init(72); //延时初始化 GUI_Init(); //GUI 初始化 Touch_Init(); DemoRedraw(); while (1) ; } GUI_WINSUPPORT 是定义为1的 |
|
|
|
创建完窗口后 应该调用窗口回调函数
hWnd = WM_CreateWindow(10, 10, 100, 100, WM_CF_SHOW, cbForegroundWin, 0); /* Show foreground window */ delay_ms(1000); WM_Exec(); 这样就可以了,你试试。刚开始就这样,加油!!! |
|
|
|
恩,我还有个问题就是,创建对话框的时候如果使用GUI_ExecDialogBox()创建的话,当程序运行到这条语句时就卡到了这里,原因好像是它在不断的执行回调函数直到结束对话框为止,这样我的触屏功能加进去就没用了。如果GUI_CreateDialogBox()创建的话,触屏虽然能使用,但是回调函数中控件的功能就没用了,列如按 按钮 想在 编辑框 出现1.
|
|
|
|
GUI_CreateDialogBox() 用它创建以后 在他的基础上创建其他控件 句柄要一样 这样就可以了
|
|
|
|
恩,GUI_CreateDialogBox() 创建后实际是可以的,但就是按下按钮或者其他的控件后,控件释放不了,就跟你的程序中一样,按下按钮后,按钮弹不起来,我把WM_NOTIFICATION_RELEASED改成WM_NOTIFICATION_CLICKED,按钮就可以用了,我想知道怎么使控件释放
|
|
|
|
没事了,我今天又下了你的历程,和以前的那个不一样,不知道以前的是不是这个,这个历程非常好,非常感谢啊!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
|
|
|
|
嗯,不客气,我是在别人例程上修改的,他们给的例程不好上手,所以我就把修改后的传上来了
|
|
|
|
只有小组成员才能发言,加入小组>>
649 浏览 1 评论
2098 浏览 5 评论
2403 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2160 浏览 6 评论
2142 浏览 7 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
289浏览 9评论
283浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
419浏览 6评论
283浏览 5评论
331浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-3-29 13:46 , Processed in 0.937729 second(s), Total 55, Slave 46 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 深圳华秋电子有限公司
电子发烧友 (电路图) 粤公网安备 44030402000349 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号