您当前的位置:五五电子网电子知识单片机-工控设备嵌入式系统-技术用户图形接口uC/GUI在uC/OSII上的嵌入 正文
用户图形接口uC/GUI在uC/OSII上的嵌入

用户图形接口uC/GUI在uC/OSII上的嵌入

点击数:7638 次   录入时间:03-04 11:49:50   整理:http://www.55dianzi.com   嵌入式系统-技术

    程序清单4.2 回调函数

    #include "GUI.H"

    /* 背景窗的回调函数 */

    statIC void cbBackgroundWin(WM_MESSAGE* pMsg)

    {

    switch (pMsg->MsgId)

    {

    case WM_PAINT: GUI_Clear();

    default: WM_DefaultProc(pMsg);

    }

    }

    /* 前景窗的回调函数 */

    static void cbForegroundWin(WM_MESSAGE* pMsg)

    {

    switch (pMsg->MsgId)

    {

    case WM_PAINT: GUI_SetBkColor(GUI_GREEN);

    GUI_Clear();

    GUI_DispString("Foreground window");

    default: WM_DefaultProc(pMsg);

    }

    }

    /* 回调机制 */

    static void DemoRedraw(void)

    {

    GUI_HWIN hWnd;

    while(1)

    {

    /*创建一个前景窗 */

    hWnd = WM_CreateWindow(10, 10, 100, 100, WM_CF_SHOW, cbForegroundWin, 0);

    /*显示前景窗*/

    GUI_Delay(1000);

    /* 删除前景窗 */

    WM_DeleteWindow(hWnd);

    GUI_DispStringAt("Background of window has not been redrawn", 10, 10);

    /* 等待,显示并不重绘 */

    GUI_Delay(1000);

    GUI_Clear();

    /* 设置背景窗的回调功能 */

    WM_SetCallback(WM_HBKWIN, cbBackgroundWin);

    /*创建一个前景窗 */

    hWnd = WM_CreateWindow(10, 10, 100, 100,WM_CF_SHOW, cbForegroundWin, 0);

    /* 显示前景窗*/

    GUI_Delay(1000);

    /*删除前景窗 */

    WM_DeleteWindow(hWnd);

    /* 等待,显示将重绘*/

    GUI_Delay(1000);

    /* 删除回调函数 */

    WM_SetCallback(WM_HBKWIN, 0);

    }

    }

    void main(void)

    {

    GUI_Init();

    DemoRedraw();

    }

    4.3.4 消息传递机制

    程序清单4.2中,回调函数执行的功能依赖于所接收到的消息。Switch语句中根据消息的类型,分别执行不同的功能。

    WM_MESSAGE的成员如下:

    MsgId:消息类型

    HWin: 目的窗口

    HWinSRC: 源窗口

    Data.p : 数据指针

    Data.v: 数据值

    其中MsgId的类型如下:

    WM_PAINT: 窗口重绘

    WM_CREATE: 窗口一建立就发送

    WM_DELETE: 窗口一删除就发送

    WM_SIZE : 窗口尺寸发生改变就发送

    WM_MOVE : 窗口移动就发送

    WM_SHOW : 接收到show命令就发送

    WM_HIDE : 接收到hide命令就发送

    WM_TOUCH: 触摸屏信息

    应用程序还可以为自己定义额外的消息。为保证它们不用到uC/GUI的消息ID,用户定义的消息从WM_USER后面开始,如:

    #define MY_MESSAGE_AAA WM_USER +0

    #define MY_MESSAGE_BBB WM_USER +1



上一页  [1] [2] 


本文关键字:接口  用户  嵌入式系统-技术单片机-工控设备 - 嵌入式系统-技术