嵌入式学习小组
直播中

白珊

7年用户 129经验值
私信 关注

WM回调函数的区别

[C] 纯文本查看 复制代码
static void cbForegroundWin1(WM_MESSAGE* pMsg){    switch (pMsg->MsgId)    {        case WM_PAINT:            GUI_SetBkColor(0xFF0000);                                 GUI_Clear() ;             GUI_DispString("Fo");                               break;        default:        WM_DefaultProc(pMsg);    }}static void cbBackgroundWin1(WM_MESSAGE* pMsg){    switch (pMsg->MsgId)        {        case WM_PAINT:            GUI_Clear();        default:            WM_DefaultProc(pMsg);    }}请问这两个函数都是对hWnd1 = WM_CreateWindowAsChild( 50,10, 50,  50, hWnd, WM_CF_SHOW, cbForegroundWin1, 0);的回调函数吗???有什么区别呢   是怎么回调的呢?怎么才能 case WM_PAINT:的呀???求助攻!

回帖(4)

刘秀英

2020-3-16 07:54:23
1、 cbForegroundWin1()函数是窗口hWnd的回调函数,函数cbBackgroundWin1()不是的
2、emwin是事件驱动的,当某一个事件发生的时候就会调用相应的回调函数,这个回调函数是你自己写的
3、窗口重绘的时候一般会发送WM_PAINT消息的。
4、建议先看看emwin的中文手册,然后在多看几个segger官方的例程!多看几个就会理解了
举报

戚來麒

2020-3-16 08:13:28
函数cbBackgroundWin1()  是什么东西呢   我是在博客看到的程序   这种应该可以在ucos上跑吧? 谢谢啦
举报

张丽

2020-3-16 08:33:09
额额额,是回调函数,只不过我也不知道是哪个窗口的回调函数,带不带UCOS都可以用的。建议你还是先看一个ucgui或者emwin的中文手册中的窗口部分,先了解一下基础的概念吧。
举报

黄明谊

2020-3-16 08:39:55
大神请问下,调试emwin时,断点设在WM_PAINT中,
为什么会多次进入断点呢?
举报

更多回帖

发帖
×
20
完善资料,
赚取积分