皮皮网

【ruby源码集合】【etcd源码分析存储】【新亚视修复源码】ucguibuilder源码

来源:vip资源网源码 时间:2024-11-23 04:04:54

1.求教学习emwin的源码方法
2.ucgui的BUTTON控件问题

ucguibuilder源码

求教学习emwin的方法

       准备工作及快速上手emWin

       学习emWin,首先需要了解其准备工作,源码以及如何快速上手。源码这对于初学者来说至关重要,源码因为正确的源码开始能够为后续深入学习打下坚实的基础。

       1. 初学者重要提示

       对于刚开始接触emWin的源码ruby源码集合学习者,以下几点提示至关重要:

       - 掌握获取emWin相关资源的源码方法,了解有哪些学习资料可用,源码以便于更好地学习。源码

       - 学习如何使用emWin模拟器,源码这将有助于在实际界面设计前进行调试和测试,源码节省时间并提高效率。源码

       - 熟悉GUIBuilder和uCGUIBuilder这两款界面创建工具的源码etcd源码分析存储使用,它们能简化界面设计和布局的源码过程。

       在初学阶段,源码应避免直接研究emWin的底层驱动接口,以免影响学习积极性。待基础知识扎实后,再逐步深入研究。新亚视修复源码

       2. 开发环境

       为了顺利开发和测试emWin应用,需要搭建合适的开发环境:

       - 推荐使用VC6.0作为模拟器开发环境,同时支持VS、VS、VS等后续版本。

       - 支持两种IDE开发环境:MDK和IAR。自助查询终端源码MDK版本要求4.7X或5.XX,而IAR则固定使用7.5版本。

       - 调试器可以使用J-Link、U-Link或S-Link。

       - 配合的开发板为S V6,适用于STM系列微控制器。门店crm系统源码

       3. emWin参考资料

       在学习过程中,以下资料将提供极大帮助:

       - 官方提供的英文版emWin用户手册,当前版本为emWin5.。

       - 周立功翻译的emWin5.中文版用户手册,适合初学者使用,可在电子论坛下载。

       - emWin模拟器下载,版本为emWin5.,需在S官网注册账号后下载。

       - 针对STM系列的emWin软件包下载,存放在STMCubeF中,需从ST官网下载。

       4. emWin的调试工具

       emWinSPY是一款实用的调试工具,从emWin5.2x版本开始支持,但初期仅支持网络调试。从emWin5.版本开始支持JLINK调试,但该版本存在兼容性问题。随着emWin版本的更新,预计这些问题将得到解决。

       5. 总结

       本章节为初学者提供了学习emWin的基础指导。建议初学者投入时间了解emWin用户手册,以便在后续学习中能够熟练查阅并应用其中的信息。

ucgui的BUTTON控件问题

       #include <stddef.h>

       #include "GUI.h"

       #include "DIALOG.h"

       #include "WM.h"

       #include "BUTTON.h"

       #include "FRAMEWIN.h"

       /*主界面的资源链表*/

       static const GUI_WIDGET_CREATE_INFO _aDialogCreate[] = {

           {  FRAMEWIN_CreateIndirect,  "Caption",           0,                       0,  0,  ,,FRAMEWIN_CF_MOVEABLE,0},

           {  BUTTON_CreateIndirect,    "BUTTON0",           GUI_ID_BUTTON0,          , , ,, 0,0}

       };

       /*按钮按下之后的资源链表*/

       static const GUI_WIDGET_CREATE_INFO _aButtonCreate[] = {

           {  FRAMEWIN_CreateIndirect,  "Caption",           0,                       0,  0,  ,,FRAMEWIN_CF_MOVEABLE,0},

       };

       /*主界面的绘制函数*/

       void PaintDialog(WM_MESSAGE * pMsg)

       {

           WM_HWIN hWin = pMsg->hWin;

       }

       /*主界面的初始化函数,初始化标题栏的最大化,最小化,关闭按钮*/

       void InitDialog(WM_MESSAGE * pMsg)

       {

           WM_HWIN hWin = pMsg->hWin;

           //

           //FRAMEWIN

           //

           FRAMEWIN_AddCloseButton(hWin, FRAMEWIN_BUTTON_RIGHT, 0);

           FRAMEWIN_AddMaxButton(hWin, FRAMEWIN_BUTTON_RIGHT, 1);

           FRAMEWIN_AddMinButton(hWin, FRAMEWIN_BUTTON_RIGHT, 2);

       }

       /*按钮弹出界面的回调函数*/

       static void _cbButtonCallback(WM_MESSAGE * pMsg) 

       {

           WM_HWIN hWin = pMsg->hWin;

           switch (pMsg->MsgId) 

           {

       case WM_INIT_DIALOG:

                   InitDialog(pMsg);

                   break;

               default:

                   WM_DefaultProc(pMsg);

           }

       }

       /*主界面的回调函数*/

       static void _cbCallback(WM_MESSAGE * pMsg) 

       {

           int NCode, Id;

           WM_HWIN hWin = pMsg->hWin;

           switch (pMsg->MsgId) 

           {

               case WM_PAINT://绘制界面

                   PaintDialog(pMsg);

                   break;

               case WM_INIT_DIALOG://初始化界面

                   InitDialog(pMsg);

                   break;

       #if 0

       //这个是接收键盘上的按键的相应

               case WM_KEY:

                   switch (((WM_KEY_INFO*)(pMsg->Data.p))->Key) 

                   {

                       case GUI_KEY_ESCAPE:

                           GUI_EndDialog(hWin, 1);

                           break;

                       case GUI_KEY_ENTER:

                           GUI_EndDialog(hWin, 0);

                           break;

                   }

                   break;

       #endif

               case WM_NOTIFY_PARENT:

                   Id = WM_GetId(pMsg->hWinSrc); 

                   NCode = pMsg->Data.v;        

                   switch (Id) 

                   {

                       case GUI_ID_BUTTON0:

                           if(NCode==WM_NOTIFICATION_RELEASED)

       {

                              GUI_ExecDialogBox(_aButtonCreate, GUI_COUNTOF(_aButtonCreate), &_cbButtonCallback, 0, 0, 0);

                           }

       break;           

                   }

                   break;

               default:

                   WM_DefaultProc(pMsg);

           }

       }

       /