金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 235|回复: 6

DRAWTEXT提示溢出

[复制链接]

33

主题

82

帖子

82

积分

等级: 免费版

注册:
2024-7-2
曾用名:
奥黛丽·赫本
发表于 2025-3-7 14:10 | 显示全部楼层 |阅读模式
我在VBA使用DRAWTEXT方法提示溢出报错,请问关于参数给的X,Y坐标,如何进行判断是否在当前的Grid范围呢,尤其Frame下有几个Grid的时候如何判断,谢谢。

另,发现文档有很多错别字和描述错误,可以逐步修改,比如Drawtext方法的描述为:在指定矩形位置绘制椭圆。应该在 框架 的 Paint 事件里编写绘图代码, 否则当窗口重绘后你的绘图会被覆盖掉.就不对
DRAWTEXT 方法
[size=1.2]DRAWTEXT(X, Y, Text, [Color])


在指定矩形位置绘制椭圆。应该在 框架 的 Paint 事件里编写绘图代码, 否则当窗口重绘后你的绘图会被覆盖掉.

[size=1.1]参数
参数说明
X,Y位置坐标
Text文字内容
Color可选参数,颜色值
回复

使用道具 举报

1

主题

1026

帖子

1036

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-3-7 16:31 | 显示全部楼层
给出一段简短的范例代码我们看一下,因为你的描述我们有些看不懂
回复

使用道具 举报

33

主题

82

帖子

82

积分

等级: 免费版

注册:
2024-7-2
曾用名:
奥黛丽·赫本
 楼主| 发表于 2025-3-7 16:53 | 显示全部楼层
技术015 发表于 2025-3-7 16:31
给出一段简短的范例代码我们看一下,因为你的描述我们有些看不懂

比如Call Grid.DRAWTEXT(-10000000,100000, "N", RGB(255, 0, 0))就会报溢出,我如何判断x、y坐标的上下限呢,虽然文档里面写的0到999,但是我用1000他也没有报溢出错误
回复

使用道具 举报

1

主题

1026

帖子

1036

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-3-7 17:37 | 显示全部楼层
文档里说了是 0- 999那你就按照这个比例范围之内画图就行了,超过这个范围后就算是不报错那么画图也画到外面去了也没有意义的
回复

使用道具 举报

33

主题

82

帖子

82

积分

等级: 免费版

注册:
2024-7-2
曾用名:
奥黛丽·赫本
 楼主| 发表于 2025-3-9 10:06 | 显示全部楼层
技术015 发表于 2025-3-7 17:37
文档里说了是 0- 999那你就按照这个比例范围之内画图就行了,超过这个范围后就算是不报错那么画图也画到外 ...

经过验证,一个Frame或者grid的坐标是从0开始,但是并不是999结束,文档里面还是有不少的表述不准确的问题,我在想如何获得真实的上限值,暂时没有看到文档的表述
回复

使用道具 举报

33

主题

82

帖子

82

积分

等级: 免费版

注册:
2024-7-2
曾用名:
奥黛丽·赫本
 楼主| 发表于 2025-3-9 12:03 | 显示全部楼层
技术015 发表于 2025-3-7 17:37
文档里说了是 0- 999那你就按照这个比例范围之内画图就行了,超过这个范围后就算是不报错那么画图也画到外 ...

比如我代码,是超过999了的:
[Visual Basic] 复制代码
Sub Technic_Paint()
	Set G1 = Me.GetGridByName("Main")
	Call G1.DRAWTEXT(100,100, "100,100", RGB(255, 0, 0))
	Call G1.DRAWTEXT(200,200, "200,200", RGB(255, 0, 0))
	Call G1.DRAWTEXT(400,400, "400,400", RGB(255, 0, 0))
	Call G1.DRAWTEXT(600,600, "600,600", RGB(255, 0, 0))
	Call G1.DRAWTEXT(800,600, "800,600", RGB(255, 0, 0))
	Call G1.DRAWTEXT(1000,600, "1000,600", RGB(255, 0, 0))
	Call G1.DRAWTEXT(1200,600, "1200,600", RGB(255, 0, 0))
	Call G1.DRAWTEXT(1400,600, "1400,600", RGB(255, 0, 0))
	Call G1.DRAWTEXT(1600,600, "1600,600", RGB(255, 0, 0))
	Set G1 = Nothing
End Sub
微信截图_20250309120035.png
回复

使用道具 举报

1

主题

1026

帖子

1036

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-3-9 15:50 | 显示全部楼层
我们看了一下VBA的帮助,金字塔的坐标是以0开始,以像素为单位进行绘图的,并不是你说的从0-999
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-4-18 14:55 , Processed in 0.154895 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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