STemWin专题

STemWin图形化界面设计专题

STemWin-控件设计

如果你是个小白,你即将对STemWin这方面进行一个开发,你需要先初始化一些东西,就是所谓的学前准备工作,也是对软件的一个基本配置。

软件的基本配置

对于软件,我个人选择的是MDK,基于是哪个版本,大家最好是选用keil474以上版本,基本上keil的高版本都是对下层的版本基本兼容。
对于keil,相信很多人在开发学习51的时候都是首选的keil,在keil这个软件中,或许有很多人,会被keil下过很多个坑,在这里我就不带一些个人情绪,
我们直接开干。

  1. keil474的获取:https://pan.baidu.com/s/1f5HRJdfUPBwLtCtv8XgYCg 提取码:cxos (PS:keil474、keil525、keil530都有,*择取)
  2. keil的安装:基本上,keil的安装也没啥事,就填个email取个名啥的,需要注意的是,你的keil安装目录要取个有意义的名字,比如说你选择keil474,那么你可以在安装路径下改成kei474,我是默认C盘;然后后面这些都可以随意,基本上一切都默认下一步即可。安装好后,什么也别管,先**。
  3. keil的**:**前,先把杀毒软件什么的全关掉,然后以管理员身份运行**器,**器:链接:https://pan.baidu.com/s/1gTlCY-EL7mwqZouoA58c_g
    提取码:auux
    相关详细教程:链接:https://pan.baidu.com/s/1Hewc2jE8n6wRsJFzk-9c_g
    提取码:tx7r
  4. 芯片包:如果说keil的安装是人的骨架,芯片包就相当于一个人的血液,这东西大大的重要。相关资源:链接:https://pan.baidu.com/s/191YjuhLuoEgzUBA4n5F8zQ
    提取码:4vap
  5. 值得注意的是把Real-Time OS进行**
  6. STemWin专题
  7. 去到:https://www.segger.com/downloads/emwin这个网站下载seggerSTemWin专题STemWin专题
  8. 下载好后,以VC++运行这个工作区STemWin专题
  9. 在keil的安装目录下可以找到这个软件,这里的软件都是一些控件的设计,还有其他的一些图片,动图等的代码转化工具。STemWin专题
  10. 设计好相关控件后,转化成代码fiel—>saveSTemWin专题
  11. 然后在在该路径下会生成一个代码段,点开就好
    STemWin专题
    12.把相关代码复制到simulation工程下的这个文件中STemWin专题
    `
    #include “DIALOG.h”

#define ID_FRAMEWIN_0 (GUI_ID_USER + 0x00)
#define ID_BUTTON_0 (GUI_ID_USER + 0x01)
#define ID_SCROLLBAR_0 (GUI_ID_USER + 0x02)
#define ID_PROGBAR_0 (GUI_ID_USER + 0x04)

static const GUI_WIDGET_CREATE_INFO _aDialogCreate[] = {
{ FRAMEWIN_CreateIndirect, “Framewin”, ID_FRAMEWIN_0, -5, -4, 800, 480, 0, 0x64, 0 },
{ BUTTON_CreateIndirect, “MGUO”, ID_BUTTON_0, 269, 69, 258, 39, 0, 0x0, 0 },
{ SCROLLBAR_CreateIndirect, “Scrollbar”, ID_SCROLLBAR_0, 251, 119, 288, 34, 0, 0x0, 0 },
{ PROGBAR_CreateIndirect, “Progbar”, ID_PROGBAR_0, 304, 166, 191, 23, 0, 0x0, 0 },

};

static void _cbDialog(WM_MESSAGE * pMsg) {
WM_HWIN hItem;
int NCode;
int Id;
switch (pMsg->MsgId) {
case WM_INIT_DIALOG:
hItem = pMsg->hWin;
FRAMEWIN_SetFont(hItem, GUI_FONT_32B_ASCII);
FRAMEWIN_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
FRAMEWIN_SetText(hItem, “FEILUO”);
break;
case WM_NOTIFY_PARENT:
Id = WM_GetId(pMsg->hWinSrc);
NCode = pMsg->Data.v;
switch(Id) {
case ID_BUTTON_0: // Notifications sent by ‘MGUO’
switch(NCode) {
case WM_NOTIFICATION_CLICKED:
break;
case WM_NOTIFICATION_RELEASED:
break;
}
break;
case ID_SCROLLBAR_0: // Notifications sent by ‘Scrollbar’
switch(NCode) {
case WM_NOTIFICATION_CLICKED:
break;
case WM_NOTIFICATION_RELEASED:
break;
case WM_NOTIFICATION_VALUE_CHANGED:
break;
}
break;
}
break;
default:
WM_DefaultProc(pMsg);
break;
}
}

WM_HWIN CreateFramewin(void);
WM_HWIN CreateFramewin(void) {
WM_HWIN hWin;

hWin = GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), _cbDialog, WM_HBKWIN, 0, 0);
return hWin;
}

void MainTask(void)
{
WM_SetCreateFlags(WM_CF_MEMDEV);
GUI_Init();
CreateFramewin();
while(1)
{
GUI_Delay(100);
}
}

`
13.最后会显示下面的图形,也就是刚刚所说的自己设计的一个控件STemWin专题

最后:送给大家的小鸡汤,喝了这碗还有下碗。

希望大家在学习STemWin的时候不骄不躁,一步一个脚印慢慢来,你做到最后就会发现自己居然会设计一些想做的控件,随着大家的深入了解于积累,相信不久的将来,大家都可以在这方面有一个自己的绝对领域,在这个领域里,我们相互学习,相互促进,形成强大的知识网。希望本专题对大家有所作用吧!大家一起加油吧!
相关下载:keil下载:https://pan.baidu.com/s/1f5HRJdfUPBwLtCtv8XgYCg 提取码:cxos
keil**:https://pan.baidu.com/s/1gTlCY-EL7mwqZouoA58c_g 提取码:auux
芯片包:https://pan.baidu.com/s/191YjuhLuoEgzUBA4n5F8zQ 提取码:4vap