硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2685|回复: 3
收起左侧

[emWin] 在自定义回调函数中画矩形框

[复制链接]

24

主题

83

回帖

155

积分

初级会员

积分
155
发表于 2018-11-7 09:03:41 | 显示全部楼层 |阅读模式
想实现在下拉列表框的自定义回调函数中按下确认键后在屏幕上画一个矩形框,可是实现不了。回调函数程序如下:
static void _cbDropdown(WM_MESSAGE * pMsg)
{
    WM_MESSAGE  pMsgtoParent;
    WM_HWIN hItem;
    switch (pMsg->MsgId)
    {
    case WM_KEY:
    {
            WM_KEY_INFO* pData = (WM_KEY_INFO*)(pMsg->Data.p);
        switch (pData->Key)
        {
        case GUI_KEY_RIGHT://
        case GUI_KEY_LEFT://
        case GUI_KEY_DOWN://
        case GUI_KEY_UP://
        case GUI_KEY_ESCAPE:
            pMsgtoParent.MsgId = WM_KEY;
            pMsgtoParent.Data.p = pMsg->Data.p;
            WM_SendToParent(pMsg->hWin, &pMsgtoParent);
            break;
        case GUI_KEY_ENTER:
            GUI_SetColor(GUI_BLACK);                  //选择颜色
            GUI_DrawRect(164,55,291,160);        //画矩形框
            DROPDOWN_Expand(pMsg->hWin);
        }
    }
    break;
    default:
        DROPDOWN_Callback(pMsg);
    }
}

麻烦各位高手指点一二。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115778
QQ
发表于 2018-11-7 15:11:43 | 显示全部楼层
要在WM_PAINT消息里面绘制。
回复

使用道具 举报

24

主题

83

回帖

155

积分

初级会员

积分
155
 楼主| 发表于 2018-11-7 16:34:26 | 显示全部楼层
eric2013 发表于 2018-11-7 15:11
要在WM_PAINT消息里面绘制。

是不是2D绘图的函数只有在WM_PAINT消息里面使用才会有效果?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115778
QQ
发表于 2018-11-7 17:29:40 | 显示全部楼层
手牵手看夕阳 发表于 2018-11-7 16:34
是不是2D绘图的函数只有在WM_PAINT消息里面使用才会有效果?

对,一般都是在这个消息里面,也可以在其它位置,不过要自己维护重绘。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-5-17 15:27 , Processed in 3.935108 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表