本帖最后由 与龙共舞 于 2018-8-3 16:25 编辑 最近解除STEMWIN,跟着网上的指点做的,遇到一个问题困惑4天了,还是来问一问。 我的目的是:点击UI的按键,画面显示做出反应,比如画一个圆圈,换一个 背景图。 参考:http://blog.csdn.net/neqee/article/details/53074913emWin 2天速成实例教程003_Framewin和Window窗口控件和2D绘图 我现在的问题是:不能自动重绘 代码 extern GUI_CONST_STORAGE GUI_BITMAP bmQQ;//做的一个图片 int bgroundE=0;//做一个全局变量吧 标识一下 static void _cbDialog(WM_MESSAGE * pMsg) { WM_HWIN hItem; int NCode; int Id; // USER START (Optionally insert additional variables) // USER END switch (pMsg->MsgId) { case WM_PAINT: //就只这个 自己手工添加的重绘 if(bgroundE) {GUI_DrawBitmap(&bmQQ, 0, 0);}//就是这里了 如果是1就会换背景! break; case WM_INIT_DIALOG: //初始化 hItem = pMsg->hWin; FRAMEWIN_SetText(hItem, "page1"); FRAMEWIN_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER); FRAMEWIN_SetFont(hItem, GUI_FONT_20_1); FRAMEWIN_SetText(hItem, "neqee.com"); FRAMEWIN_SetTextColor(hItem, (0x008000FF)); FRAMEWIN_SetTitleHeight(hItem, 24); FRAMEWIN_AddCloseButton(hItem, FRAMEWIN_BUTTON_RIGHT, 0); FRAMEWIN_AddMaxButton(hItem, FRAMEWIN_BUTTON_RIGHT, 0); FRAMEWIN_AddMinButton(hItem, FRAMEWIN_BUTTON_RIGHT, 0); FRAMEWIN_SetClientColor(pMsg->hWin, GUI_GREEN); hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_0); BUTTON_SetText(hItem, "GetDialogItem"); BUTTON_SetFont(hItem, GUI_FONT_16_1); break; case WM_NOTIFY_PARENT://处理按键消息 Id = WM_GetId(pMsg->hWinSrc); NCode = pMsg->Data.v; switch(Id) { case ID_BUTTON_0: // Notifications sent by 'Button' switch(NCode) { case WM_NOTIFICATION_CLICKED: break; case WM_NOTIFICATION_RELEASED: bgroundE = !bgroundE;、、问题就是这里!!这里0-1取反以后 下面在失能画面 按照教程 就应该自动重绘的呀??? WM_InvalidateWindow(pMsg->hWin); hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_0);//这个是可以成功的 很快button就换了名字 BUTTON_SetText(hItem, "bgroundE"); break; } break; } break; default: WM_DefaultProc(pMsg); break; } } 今天找问题 偶然发现 背景图 出来了 需要右上角最大化最小化之类的操作一下 我觉得 我的学的教程的逻辑是对的 就是没有自动去重绘 是哪里还有东西吗? |
话说楼主,忠心的给您建议,拿到该 emWin 版本的应用手册直接看,直接呼叫其函数应用会更学习与掌握其操作。
我在约莫是 2006 年捣鼓这 GUI 时,还是得将底层先 Poiting 好后再学如何点 LCD,成功后才再拿手册来玩了下应用层啊!
感觉这 Segger 他们提供的 Demo 及 Build 工具等,是能用,但是串在一起跑几圈后堆栈就溢出了,没做好离开 Demo 后要清空所占用记忆区块的动作,光是这事当时也是搞死我也。故建议直接使用较好学习及控制,也仅止于建议。最后住楼主早日学习有成!
点评
评分
查看全部评分
最后发现这个工具换成别人的就好了
好奇怪。。。
其实 是会自动重绘的
评分
查看全部评分
评分
查看全部评分
感觉楼主真幸福,现代 Segger 的 emWin 已对大多 MCU 厂商都做好了 Library 的编译库文件及周边应用等工具确实方便。
想当初我们买 Segger 的 GUI 源码,从 1.34 版买到了 5.20 版,一路都得自己移植,工作之辛苦不在言下,待移植好后应用不用练习自然也都已上手了。
楼主日后若有心得别忘记要来社区跟大夥多交流啊!...
评分
查看全部评分