完善资料让更多小伙伴认识你,还能领取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
|
|
|
|
|
|
嗯,不客气,我是在别人例程上修改的,他们给的例程不好上手,所以我就把修改后的传上来了
|
|
|
|
|
只有小组成员才能发言,加入小组>>
1022 浏览 1 评论
1852 浏览 0 评论
1833 浏览 1 评论
3258 浏览 5 评论
3585 浏览 9 评论
1026浏览 1评论
1853浏览 1评论
如何知道嵌入式电子控制单元 (ECU) 中的RAM使用情况?
1365浏览 1评论
1856浏览 0评论
1181浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 21:36 , Processed in 1.002582 second(s), Total 63, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1383