完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
前提,触摸屏移植成功,
触摸屏光标随触点能正常移动 建立了一个按钮控件,想通过使用触摸屏点击按钮实现LED的两灭, 但是发现在屏幕上点击按钮没反应, 该怎么实现按钮盒触摸屏的关联呢? 下边是一个书上的例子,这个又是怎么触发button动作呢 static void _DemoButton(void) { BUTTON_Handle hButton; GUI_SetFont(&GUI_Font8x16); GUI_DispStringHCenterAt("Click on button...",160,90); hButton = BUTTON_CreateAsChild(110,110,100,40,WM_GetActiveWindow(),GUI_ID_OK,WM_CF_SHOW); BUTTON_SetText(hButton,"Click me..."); while(GUI_WaitKey() != GUI_ID_OK); BUTTON_Delete(hButton); GUI_ClearRect(0,50,319,239); GUI_DispStringHCenterAt("hello",160,120); GUI_Delay(1000); } |
|
相关推荐
18个回答
|
|
下载一个ucGUIBuilder建立一个DIALOG
然后再DIALOG上建立一个BUTTON 然后开启BUTTON的事件处理函数中的CLICK事件 最后在Event.c文件中会产生一个函数,名字貌似为_OnButtonClick();吧,在这里面插入你的代码 以上操作都是在ucGUIBuilder软件生成的 最后点击软件上面一个绿色的实体箭头,run,生成三个文件 将这三个文件添加到你的工程里面 在main中调用Code.c文件中生成的那个_Demo();函数,即可 |
|
|
|
手边没有现成的软件,只能口头描述一下了
|
|
|
|
窗口的WM_NOTIFY_PARENT消息
|
|
|
|
我按照你的方法建立了界面,但是点击屏幕上的按钮没任何反应的,光标也没反应,
|
|
|
|
你把相应的代码贴上来,明天我给你看一下
|
|
|
|
我认为是我触摸屏移植的有问题,之前是使用了战舰开发板的坐标转换方法实现光标移动的,这样和UCGUI结合不起来
又重新移植了, 我是参考 http://www.xiaomengyc.com/?post=9 这的文章移植的 但是移植完之后 光标不会移动 我单步跟踪到 static void _PID_Load(void) { #if (GUI_WINSUPPORT) WM_pfHandlePID = WM_HandlePID; #endif } 处发现这个条件编译是成立的, 执行 WM_pfHandlePID = WM_HandlePID; 但是不执行WM_HandlePID的函数体,这是怎么回事 我改成 static void _PID_Load(void) { #if (GUI_WINSUPPORT) WM_HandlePID(); #endif } 光标就能移动了, 但是不是很准确,偏差较大 为什么呢? |
|
|
|
|
|
|
|
typedef int WM_tfHandlePID(void);
WM_tfHandlePID* WM_pfHandlePID; WM_pfHandlePID = WM_HandlePID; WM_HandlePID是一个函数 请问WM_pfHandlePID是什么类型的 |
|
|
|
uCGUI自己的机制是使用回调函数,当你点击按钮的时候,GUI内部函数会调用回调函数,里面有对ID的反馈,依据ID识别按的是什么,并执行你想要的操作,还有一般不用...AsChild 方式创建,否则需要指定父向窗口,直接Button_Create(...),一般是在窗体里面创建Button 参数里面有要求回调函数的
|
|
|
|
|
|
已经成功了,非常感谢,
|
|
|
|
在uCGUIBuilder.exe里如何会的控件句柄
我知道调用函数 LISTBOX_Handle LISTBOX_Create(const GUI_ConstString * ppText, int x0, int y0, int xSize, int ySize, int Flags);能返回相应的句柄 但是uCGUIBuilder使用的是对话框 建立了一个资源表,会调用上边的函数 但是返回值存哪去了,怎么得到??? |
|
|
|
这个返回值,就是控件的句柄,得不得到没有任何关系——你可以看一看_Demo();函数中是怎么利用资源列表创建函数的,那个返回值没有用
你可以通过ID查找到这个ID对应的控件的句柄,见Code.c文件中,有一个通过ID查找句柄的函数,好像叫WM_GetDialogItem(hParent,ID);,具体的记不清了 |
|
|
|
我大概是知道了 但是又有问题了
我是在一个事件里这样操作的 void OnDropDownSelChanged(WM_MESSAGE * pMsg) { int SelItemNum;//选中条目的索引 WM_HWIN ListBoxHwin; WM_HWIN Hwin; Hwin=pMsg->hWin; ListBoxHwin= WM_GetDialogItem(Hwin,GUI_ID_DROPDOWN0);//Returns the window handle of a dialog box item (widget). SelItemNum = LISTBOX_GetSel(ListBoxHwin);//获得当前选择的单元的数量 LISTBOX_GetItemText(ListBoxHwin, SelItemNum , g_ListBoxItemBuffer, sizeof(g_ListBoxItemBuffer));//获得对应的内容 } 但是 我发现读到的ListBoxHwin正确,但是读到的SelItemNum 不正确,我明明选择的第三个,返回的确实0X00061,不是应该返回2吗? 是哪里的问题、????????、 |
|
|
|
控件是DROPDOWN,你干嘛调用LISTBOX的API呢?!!!!!
试一下这个函数,int DROPDOWN_GetSel (DROPDOWN_Handle hObj); |
|
|
|
移植了UCGUI之后还要在进行触摸屏移植才能触发BUTTON控件吗??
|
|
|
|
当然了,。
|
|
|
|
你好,请问如何开启BUTTON的事件处理函数中的CLICK事件?新人小白一脸懵逼
|
|
|
|
只有小组成员才能发言,加入小组>>
771 浏览 0 评论
1146 浏览 1 评论
2527 浏览 5 评论
2858 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2709 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1056浏览 3评论
189浏览 2评论
453浏览 2评论
364浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
449浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 01:18 , Processed in 1.503734 second(s), Total 115, Slave 94 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号