OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9863|回复: 11

GUI_DispStringInRect()函数怎么用?

[复制链接]

12

主题

63

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2014-4-6
在线时间
46 小时
发表于 2014-11-29 15:51:08 | 显示全部楼层 |阅读模式
5金钱
GUI_RECT rClient;
GUI_GetClientRect(&rClient);
GUI_DispStringInRect("Hello World", &rClient, GUI_TA_VCENTER | GUI_TA_HCENTER);
为什么在板子上无法显示?

最佳答案

查看完整内容[请看2#楼]

回复【3楼】Electfans: --------------------------------- 试试下面这个程序 GUI_RECT Rect ={0,0,150,150}; GUI_SetColor(GUI_WHITE); GUI_FillRectEx(&Rect); GUI_SetColor(GUI_BLACK); GUI_DispStringInRect("Hello word",&Rect,GUI_TA_VCENTER | GUI_TA_HCENTER);
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2014-11-29 15:51:09 | 显示全部楼层
回复【3楼】Electfans:
---------------------------------
试试下面这个程序
GUI_RECT Rect ={0,0,150,150};
GUI_SetColor(GUI_WHITE);
GUI_FillRectEx(&Rect);
GUI_SetColor(GUI_BLACK);
GUI_DispStringInRect("Hello word",&Rect,GUI_TA_VCENTER | GUI_TA_HCENTER);
开往春天的手扶拖拉机
回复

使用道具 举报

17

主题

293

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
388
金钱
388
注册时间
2012-12-26
在线时间
1 小时
发表于 2014-11-29 15:51:09 | 显示全部楼层
回复【8楼】Electfans:
--------------------------
有问题:
去掉GUI_GetClientRect(&Rect); 就可以在你指定的位置显示了
否则,也是有显示的,但是在你的显示屏范围内看不到,原因是你的对其方式,如改为GUI_TA_LEFT就可以看到显示了,
这是因为GUI_GetClientRect(&Rect); 执行之后,Rect的范围是={0,0,4096,4096} 居中位置已经不在显示屏的范围内了,所以看不到,但是是有显示的,这个4096,依赖于你的系统,有可能你的不是4096,但肯定远远超过了显示范围
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2014-11-29 16:00:16 | 显示全部楼层
这个是在一个矩形区域显示的,矩形区域有GUI_RECT类型的变量定义,你这里定义为 rClient,但是你的rClient并没有初始化赋值,也就没有给出显示的区域!!默认为0,怎么可能显示出来,给rClient赋个值,如
rClient={0,0,100,100};
开往春天的手扶拖拉机
回复

使用道具 举报

12

主题

63

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2014-4-6
在线时间
46 小时
 楼主| 发表于 2014-11-29 16:03:57 | 显示全部楼层
回复【2楼】zuozhongkai:
---------------------------------按照你的方法,给rClient赋值为{0,0,100,100},但还是无法显示
回复

使用道具 举报

12

主题

63

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2014-4-6
在线时间
46 小时
 楼主| 发表于 2014-11-29 16:37:29 | 显示全部楼层
回复【4楼】zuozhongkai:
---------------------------------
我知道了什么问题了,是这个GUI_GetClientRect(&rClient);函数不行
回复

使用道具 举报

12

主题

63

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2014-4-6
在线时间
46 小时
 楼主| 发表于 2014-11-29 16:43:31 | 显示全部楼层
回复【4楼】zuozhongkai:
---------------------------------
那请问GUI_FillRectEx();与GUI_GetClientRect();有什么区别
回复

使用道具 举报

17

主题

293

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
388
金钱
388
注册时间
2012-12-26
在线时间
1 小时
发表于 2014-11-29 18:20:03 | 显示全部楼层
这两个函数的功能完全不一样吧,
GUI_FillRectEx()是属于基本的绘图函数,功能是在当前窗口中的指定位置绘制一个填充区域,如果不预先制定前景色,会使用默认的前景色绘制
GUI_GetClientRect()是属于查询类函数,功能是取得当前可用的绘图区范围,这个函数的使用涉及到Windows Manager,如果使用了WM,那么这个函数会调用WM_GetClientRect(),如果没有使用WM,那么当前客户绘图区就等于整个LCD范围

我觉得你那个没有显示,会不会是因为颜色设置的问题
回复

使用道具 举报

12

主题

63

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2014-4-6
在线时间
46 小时
 楼主| 发表于 2014-11-29 19:23:49 | 显示全部楼层
回复【7楼】kassandra:
---------------------------------
代码如下:
int main(void)
{
GUI_RECT Rect ={0,0,150,150};

Stm32_Clock_Init(9);  //?????±???è??
delay_init(72);
uart_init(72,9600); //???±??????

GUI_Init();
GUI_SetBkColor(GUI_WHITE);
GUI_Clear();
GUI_SetColor(GUI_BLACK);


GUI_GetClientRect(&Rect);
GUI_DispStringInRect("Hello word",&Rect,GUI_TA_VCENTER | GUI_TA_HCENTER);

return 0;
}
有无问题?
回复

使用道具 举报

12

主题

63

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2014-4-6
在线时间
46 小时
 楼主| 发表于 2014-11-29 20:24:51 | 显示全部楼层
回复【9楼】kassandra:
---------------------------------
哦,又长知识了,但还有个疑惑,就是关于那个4096,怎么知道自己的系统的那个值是多少?
回复

使用道具 举报

17

主题

293

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
388
金钱
388
注册时间
2012-12-26
在线时间
1 小时
发表于 2014-11-29 20:34:06 | 显示全部楼层
回复【10楼】Electfans:
---------------------------------
你跟踪一下就知道你的系统里面,这个长宽值是多少了,但由什么决定的我还没发现
回复

使用道具 举报

1

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2019-5-29
在线时间
16 小时
发表于 2019-5-29 12:15:37 | 显示全部楼层
Electfans 发表于 2014-11-29 16:37
回复【4楼】zuozhongkai:
---------------------------------
我知道了什么问题了,是这个GUI_GetClientRec ...

什么意思这个函数不行?
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-17 17:31

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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