硬汉嵌入式论坛

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

[emWin] BUTTON_SetBitmap函数设置图片不显示

[复制链接]

58

主题

267

回帖

446

积分

高级会员

积分
446
发表于 2018-12-18 15:09:43 | 显示全部楼层 |阅读模式
在WM_INIT_DIALOG消息处理中,用函数BUTTON_SetBitmap为按钮设置了图片,3种模式都设置了:
        hItem = WM_GetDialogItem(hWin, ID_BTN_ICON_0);
        BUTTON_SetBitmap(hItem, BUTTON_BI_UNPRESSED, GUI_Core_GetBmp(GUI_CORE_ICON_ID_MenuPower));
        BUTTON_SetBitmap(hItem, BUTTON_BI_PRESSED, GUI_Core_GetBmp(GUI_CORE_ICON_ID_MenuPower));
        BUTTON_SetBitmap(hItem, BUTTON_BI_DISABLED, GUI_Core_GetBmp(GUI_CORE_ICON_ID_MenuPower));


但实际显示时仅显示一个黑框框,是啥情况。。。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115778
QQ
发表于 2018-12-18 16:17:22 | 显示全部楼层
确定GUI_Core_GetBmp(GUI_CORE_ICON_ID_MenuPower)获取的是有效的位图格式不

参考测试
http://www.armbbs.cn/forum.php?m ... hlight=%B0%B4%C5%A5
回复

使用道具 举报

58

主题

267

回帖

446

积分

高级会员

积分
446
 楼主| 发表于 2018-12-19 09:30:30 | 显示全部楼层
eric2013 发表于 2018-12-18 16:17
确定GUI_Core_GetBmp(GUI_CORE_ICON_ID_MenuPower)获取的是有效的位图格式不

参考测试

问题解决了,我是在Dialog的回调函数里设置的位图,然后又给Button设置了回调函数。应该是新设置的回调函数重绘了。
现在没有给Button重设回调函数了,Button的消息处理直接在Dialog的WM_NOTIFY_PARENT中进行,就正常了。
具体原因我猜测是不是因为CreateIndirect时,就已经给Button设置了默认回调函数,然后设置位图就会进行重绘,然后又设置回调函数又会进行一次重绘?emWin内部流程还有点不清楚。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-17 17:05 , Processed in 0.210991 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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