例如我要定义一个WM_IC的消息

1.在emwin窗口文件的头文件.h文件中声明 #define WM_IC (WM_USER + 0x00)//自定义消息

2.然后在 switch (pMsg->MsgId) {....}中定义一个case WM_IC:...break;

然后就是想在地方产生此消息用WM_SendMessageNoPara(WM_GetClientWindow(hDlg),WM_IC)即可

其中WM_GetClientWindow为返回客户端窗口句柄。具体在《emWin5中文手册》窗口管理器(WM)中14.5WM API这一节中。

#include "DIALOG.h"
#include "3DDLG.h"
#include "EmWinHZFont.h"
#include "shezhi_winDLG.h"
#include "delay.h"
#include "led.h"
#include "rc522.h"
#include "tftlcd.h"
#include "ltdc.h"/*********************************************************************
*
*       Defines
*
**********************************************************************
*/
#define ID_FRAMEWIN_0 (GUI_ID_USER + 0x00)
#define ID_BUTTON_1 (GUI_ID_USER + 0x01)//设置 3
#define ID_BUTTON_2 (GUI_ID_USER + 0x02)//主页 4
#define ID_BUTTON_3 (GUI_ID_USER + 0x03)//配置 5#define ID_BUTTON_4 (GUI_ID_USER + 0x04)//状态 1
#define ID_BUTTON_5 (GUI_ID_USER + 0x05)//位置 2
#define ID_BUTTON_6 (GUI_ID_USER + 0x06)//位置 2#define ID_TEXT_1 (GUI_ID_USER + 0x07)//打印机温度
#define ID_TEXT_2 (GUI_ID_USER + 0x08)//打印机温度
#define ID_TEXT_3 (GUI_ID_USER + 0x09)//打印机温度static int m=1,n=0;//m为行,n为列
BUTTON_SKINFLEX_PROPS Props1;
u8 flag1=1,flag2=1,flag3=1;
char IC_buf0[2];
char IC_buf1[2];
char IC_buf2[2];
char IC_buf3[2];
/**********外部变量声明***************/
extern u16 info;
extern unsigned char IC_SN[4]; //卡号
extern u8 RS485buf[80];
extern u8 show_IC;
/**********外部变量声明***************/const FRAMEWIN_SKINFLEX_PROPS pProps={ GUI_WHITE,GUI_WHITE,GUI_WHITE,GUI_WHITE,GUI_WHITE,                                     0,5,5,5,1,5,};static const GUI_WIDGET_CREATE_INFO _aDialogCreate[] = {{ FRAMEWIN_CreateIndirect, "3D", ID_FRAMEWIN_0, 0, 0, 480, 272, 0, 0x0, 0 },{ BUTTON_CreateIndirect, "Button", ID_BUTTON_1, 0, 0, 470, 86, 0, 0x0, 0 },//{ BUTTON_CreateIndirect, "Button", ID_BUTTON_2, 160, 86, 160, 87, 0, 0x0, 0  },//{ BUTTON_CreateIndirect, "Button", ID_BUTTON_3, 320, 86, 160, 87, 0, 0x0, 0}, //{ BUTTON_CreateIndirect, "Button", ID_BUTTON_4, 0, 173, 160, 62, 0, 0x0, 0  },//{ BUTTON_CreateIndirect, "Button", ID_BUTTON_5, 160, 173, 160, 62, 0, 0x0, 0 },//{ BUTTON_CreateIndirect, "Button", ID_BUTTON_6, 320, 173, 160, 62, 0, 0x0, 0},//{ TEXT_CreateIndirect, "Text", ID_TEXT_1, 60, 20, 26, 20, 0, 0x64, 0 },    { TEXT_CreateIndirect, "Text", ID_TEXT_2, 80, 20, 160, 50, 0, 0x0, 0 },{ TEXT_CreateIndirect, "Text", ID_TEXT_3, 310, 55, 26, 20, 0, 0x64, 0 },
};static void _cbDialog(WM_MESSAGE * pMsg)
{WM_HWIN hItem,hItem1,hItem2,hItem3,hItem4,hItem5;WM_HWIN hText1,hText2,hText3;hItem1= WM_GetDialogItem(pMsg->hWin, ID_BUTTON_1);  hItem2= WM_GetDialogItem(pMsg->hWin, ID_BUTTON_2);hItem3= WM_GetDialogItem(pMsg->hWin, ID_BUTTON_3);hItem4= WM_GetDialogItem(pMsg->hWin, ID_BUTTON_5);hItem5= WM_GetDialogItem(pMsg->hWin, ID_BUTTON_6);hText1=WM_GetDialogItem(pMsg->hWin, ID_TEXT_1);hText2=WM_GetDialogItem(pMsg->hWin, ID_TEXT_2);   hText3=WM_GetDialogItem(pMsg->hWin, ID_TEXT_3);WM_HWIN XZ_hItem[2][2]={hItem2,hItem3,hItem4,hItem5};//button1,int     NCode;int     Id;switch (pMsg->MsgId) {case WM_INIT_DIALOG:hItem = pMsg->hWin;FRAMEWIN_SetSkinFlexProps(&pProps,FRAMEWIN_SKINFLEX_PI_ACTIVE);BUTTON_GetSkinFlexProps(&Props1, BUTTON_SKINFLEX_PI_FOCUSSED);Props1.aColorFrame[0] = 0x007FB13C;Props1.aColorFrame[1] = 0x008FfF8F;Props1.aColorFrame[2] = 0x008FfF8F;Props1.aColorUpper[0]=0x008FfF8F;Props1.aColorUpper[1]=0x008FfF8F;Props1.aColorLower[0]=0x008FfF8F;Props1.aColorLower[1]=0x008FfF8F;Props1.Radius = 6;BUTTON_SetSkinFlexProps(&Props1, BUTTON_SKINFLEX_PI_FOCUSSED);//被选中之后的颜色FRAMEWIN_SetTextColor(hItem,GUI_BLACK);FRAMEWIN_SetTextAlign(hItem, GUI_TA_LEFT);FRAMEWIN_SetTitleHeight(hItem, 30);FRAMEWIN_SetFont(hItem, &GUI_FontHZ24);FRAMEWIN_SetText(hItem, "welcome");TEXT_SetFont(hText1, &GUI_Font16B_1);TEXT_SetText(hText1,"ID:");TEXT_SetFont(hText2, &GUI_Font16B_1); TEXT_SetText(hText2," ");                 //初始化BUTTON1            hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_1);BUTTON_SetText(hItem, "");//初始化BUTTON2hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_2);WM_SetFocus(hItem2);BUTTON_SetText(hItem, "");//  //初始化BUTTON3hItem = WM_GetDialogItem(pMsg->hWin,ID_BUTTON_3);BUTTON_SetFocussable(hItem,1);BUTTON_SetText(hItem, "");//初始化 BUTTON4//      hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_4);BUTTON_SetText(hItem, "");       //初始化BUTTON5hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_5);BUTTON_SetText(hItem, ""); //初始化BUTTON6hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_6);BUTTON_SetText(hItem, "");  break;case WM_KEY://按键控制switch (((WM_KEY_INFO*)(pMsg->Data.p))->Key) {case GUI_KEY_UP:m--;if(m<0) m=0;WM_SetFocus(XZ_hItem[m][n]);break;case GUI_KEY_DOWN:m++;if(m>1) m=1;WM_SetFocus(XZ_hItem[m][n]);break;case GUI_KEY_LEFT:n--;if(n<0) n=0;WM_SetFocus(XZ_hItem[m][n]);break;case GUI_KEY_RIGHT:n++;if(n>1) n=1;WM_SetFocus(XZ_hItem[m][n]);break;case GUI_KEY_END:GUI_EndDialog(pMsg->hWin, 0);Createsehzhi_win();}break;case WM_IC:if(show_IC){sprintf((char*)IC_buf0,"%0x",IC_SN[0]);sprintf((char*)IC_buf1,"%0x",IC_SN[1]);sprintf((char*)IC_buf2,"%0x",IC_SN[2]);sprintf((char*)IC_buf3,"%0x",IC_SN[3]);TEXT_SetFont(hText1, &GUI_Font16B_1);TEXT_SetText(hText1,"ID:");TEXT_SetFont(hText2, &GUI_Font16B_1); TEXT_SetText(hText2,IC_buf0);              }else{TEXT_SetText(hText1,"ID:");TEXT_SetText(hText2," ");}break;default:WM_DefaultProc(pMsg);break;}}/*********************************************************************
*
*       Public code
*
**********************************************************************
*/
/*********************************************************************
*
*       Create3D
*/
WM_HWIN Create3D(void) {WM_HWIN hWin;  hWin = GUI_CreateDialogBox(_aDialogCreate,GUI_COUNTOF(_aDialogCreate),_cbDialog, WM_HBKWIN,0,0);return hWin;
}// USER START (Optionally insert additional public code)
// USER END/*************************** End of file ****************************/

emwin自定义消息问题相关推荐

  1. EmWin自定义消息发送

    例如我要定义一个WM_IC的消息 1.在emwin窗口文件的头文件.h文件中声明 #define WM_IC (WM_USER + 0x00)//自定义消息 2.然后在 switch (pMsg-&g ...

  2. 【第3版emWin教程】第48章 emWin6.x对话框基础知识

    教程不断更新中:第3版emWin教程和ThreadX GUIX教程开工,双管齐下,GUIX更新至第28章,emWin更新至第48章(2021-09-13) - uCOS & uCGUI &am ...

  3. linux关机告诉用户,在Linux服务器关机前向用户显示一条自定义消息

    在先前的文章中,我们解释了 Linux 中 shutdown.poweroff.halt.reboot 命令的不同之处,并揭示了在用不同的选项执行这些命令时它们实际做了什么. 本篇将会向你展示如何在系 ...

  4. Linux编程之自定义消息队列

    我这里要讲的并不是IPC中的消息队列,我要讲的是在进程内部实现自定义的消息队列,让各个线程的消息来推动整个进程的运动.进程间的消息队列用于进程与进程之间的通信,而我将要实现的进程内的消息队列是用于有序 ...

  5. ROS使用自定义消息类型

    ROS 自定义消息类型 ROS 自定义消息类型方法 ros之自定义消息类型

  6. qml 自定义消息框_Qt qml 自定义消息提示框

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/a844651990/article/d ...

  7. emwin之基于某个事件或标志创建某个界面的一种方法

    @2018-12-11 [小记] 例:定时器事件到来后切换至某个界面, 即在原始界面上发生跳转,在新界面上可返回至原始界面,可使用如下方法: a,在定时器事件发生后给原始界面中的自定义消息发送一条该自 ...

  8. SpringBoot___自定义消息转换器、MVC配置

    2019独角兽企业重金招聘Python工程师标准>>> 1. 自动配置的消息转换器   在SptingBoot的源码中的spring-boot-autoconfig的Jar包下,我们 ...

  9. 如何在VB例程中接收自定义消息

    代码 如何在VB例程中接收自定义消息  您可以用API函数SetWindowLong指定处理消息的窗口过程(window procedure)为自定义的函数WindowProc,捕获消息ID为WM_U ...

最新文章

  1. Scrapy框架中的crawlspider爬虫
  2. 【node】------mongoose的基本使用------【巷子】
  3. 超图桌面版GIS配准基本操作
  4. opencv 获取灰度图像
  5. zoj2271 Chance to Encounter a Girl(DP)
  6. 用 Python 下载抖音无水印视频
  7. python之做一个简易的翻译器(一)
  8. Vue「五」—— 动态组件、插槽、自定义指令
  9. 入门:HTML表单与Java 后台交互(复选框提交)
  10. 第八次立会顺利召开!
  11. 机器学习——Day 1 数据预处理
  12. 鸿蒙第三代手机,华为第三代折叠屏手机面市 余承东披露今年4月旗舰机启用鸿蒙系统...
  13. 诺基亚 8208支持java么_诺基亚8_诺基亚8208怎么上网_8208 诺基亚
  14. Python数据分析与展示-图像的手绘效果
  15. Activity设置竖屏显示
  16. Lumion 9.0 建筑日景快速渲染实例教程
  17. Python 温度转换
  18. 3GPP TS EPC与5GC相关协议
  19. 关于office2010的体验
  20. 笔记 黑马程序员C++教程从0到1入门编程——提高编程02

热门文章

  1. 云信市场运营总监:产品运营不得不避免的5个大坑
  2. 设计模式-依赖倒置-Dependency Inversion Principle
  3. RHEL6基础四十九之RHEL文件(夹)权限进阶篇
  4. Linux中sudo配置
  5. POJ-1364 King 差分约束
  6. 130108还原临时表空间
  7. linux下×××postfix
  8. Linux系统下Apache与Tomcat整合
  9. port-forward使用示例:kubectl port-forward deployment/kubernetes-dashboard -n kubernetes-dashboard :9090
  10. reactjs回调函数形式的ref:含内联形式回调函数调用次数问题