emWin 之 WM_SetCallback 创建回调函数

@2018-7-11

【小记】

emWin 通过函数 WM_SetCallback ( )  自定义回调函数

> 下段代码就是通过 MESSAGEBOX 控件的 OK 按键实现删除信息框的对话框,即消息框的背景窗口 DIALOG 删除了,留下了 TEXT & BUTTON

 1 hWin = MESSAGEBOX_Create("这是一个帮助!
你觉得这个帮助功能如何?", "帮助", GUI_MESSAGEBOX_CF_MOVEABLE);
 2 
 3 WM_SetCallback(hWin, _cbDialogMessage);
 4 
 5 static void _cbDialogMessage(WM_MESSAGE *pMsg)
 6 {
 7     WM_HWIN hWin;
 8     
 9     int NCode;
10     int Id;    
11 
12     hWin = pMsg->hWin;
13 
14     switch (pMsg->MsgId) 
15     {
16         case WM_NOTIFY_PARENT:
17             Id = WM_GetId(pMsg->hWinSrc);
18             NCode = pMsg->Data.v;
19         
20             switch (Id) 
21             {
22                 case GUI_ID_OK:
23                     switch (NCode) 
24                     {
25                         case WM_NOTIFICATION_CLICKED:
26                             break;
27                         case WM_NOTIFICATION_RELEASED:
28                             WM_DeleteWindow(hWin);
29                             break;
30                     }
31                     break;
32             }
33             break;
34         
35         default:
36             WM_DefaultProc(pMsg);
37             break;
38      }
39 }
原文地址:https://www.cnblogs.com/skullboyer/p/9296215.html