硬汉嵌入式论坛

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

[emWin] emwin BUTTON 显示多多语言,小吐槽

[复制链接]

6

主题

32

回帖

6

积分

新手上路

积分
6
发表于 2015-2-2 18:58:45 | 显示全部楼层 |阅读模式
小吐槽一下,今天做多语言的时候发现,以前用 GUI_DispString 函数显示的多语言好好的,最后到了 button 里面就是不可以
不是死机就是白屏,最后我在初始化的时候 不delete 那个 font,最后好了,我想明白了,button_setfont (....,&font) ,在执行 wm_exec 的时候,这个font
一直会被被callback 轮询,去执行加载 xbf文件的内容,当我们 在 WM_INIT_DIALOG 的时候,要是立马delete 掉,那么就会找不到执行加载的入口,程序铁定挂
自然而然的,要是你有多个按钮,那么每个按钮都会有一个 font ,如果每个按钮字体都不一样,每个都得create 一遍,最后统一的 delete  掉,这是不是有点小别扭啊..........
不知道我理解的对不对,反正我感觉有点小别扭
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115679
QQ
发表于 2015-2-2 21:09:58 | 显示全部楼层
在 WM_INIT_DIALOG里面删除不合适,这个只是初始化消息,这时还没有执行字体显示。另外你为什么要删除字体呢,可能我没有太理解你的意思。
回复

使用道具 举报

6

主题

32

回帖

6

积分

新手上路

积分
6
 楼主| 发表于 2015-2-2 22:16:11 | 显示全部楼层
可能我表达的意思不是很明确,因为有些时候我们直接是在 WM_INIT_DIALOG 分支里做 诸如   TEXT_SetText 这类的显示的初始化的,我开始以为 TEXT_SetFont () 会将 font  的关联变量,比如怎么加载xbf  文件这些信息保存备份一份,然后我就可以再删掉 xbf font 了,但是我错了,emwin 不是这么做的,emwin 需要这个 font ,在整个窗体没有 enddiaog 之前一直有效
回复

使用道具 举报

6

主题

32

回帖

6

积分

新手上路

积分
6
 楼主| 发表于 2015-2-2 22:16:56 | 显示全部楼层
这就是我觉得非常别扭的一个地方,要是emwin真是这么设计的话,实在是太欠考虑了。。。。
回复

使用道具 举报

6

主题

32

回帖

6

积分

新手上路

积分
6
 楼主| 发表于 2015-2-3 08:53:06 | 显示全部楼层
这个有点像    malloc  一段内容,但是指针被赋值给两个变量,BUTTON_SetFont 会保存这个指针变量,但是Create_Font 也有一份这个指针,我要是释放了指针对应的内容,但是 BUTTON 里面的指针还是以前的指针,内容已无效,所以必然挂掉。。。。。。。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115679
QQ
发表于 2015-2-4 20:41:47 | 显示全部楼层

回 true_casey 的帖子

true_casey:这个有点像    malloc  一段内容,但是指针被赋值给两个变量,BUTTON_SetFont 会保存这个指针变量,但是Create_Font 也有一份这个指针,我要是释放了指针对应的内容,但是 BUTTON 里面的指针还是以前的指针,内容已无效,所以必然挂掉。。。。。。 .. (2015-02-03 08:53) 
是这样的,这两天会村子里面了,没有及时回复你,不好意思啊。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-11 17:00 , Processed in 0.250231 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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