精易论坛

标题: gdiplus 窗口创建后初始化如何显示gdi绘画出的东西 [打印本页]

作者: sunfly    时间: 2023-9-25 01:36
标题: gdiplus 窗口创建后初始化如何显示gdi绘画出的东西
刚学gidplus好多命令不会

.版本 2

.程序集 窗口程序集_窗口1

.子程序 _窗口1_创建完毕

Gdiplus初始化 ()
' 画直线 ()  ' 这里为什么不会在窗口创建后显示画好的直线,调用是显示执行了 。。。。。。。。。。。。。。。。1?
一起画 ()  ' 这里为什么也不行。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。2??
' 而点击按钮为什么就可以显示出来画好的直线。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3???


' 请问如何在窗口后执行子程序 画直线() 进行初始化界面样式
' 论坛有个画折线图的例子,用返回字节集的返回置入图片框.图片=画直线() 这个方式不考虑,一个是后期字节集太大一个是用画板高度32627后期也不够要分页处理
' 不要用画板画,就是因为锯齿转gdiplus

.子程序 画直线, , 公开
.局部变量 位图, GP位图
.局部变量 图形, GP图形
.局部变量 字体, GP字体
.局部变量 文本格式, GP文本格式
.局部变量 画刷, GP线性渐变画刷
.局部变量 字体刷, GP纯色画刷
.局部变量 画笔, GP画笔
.局部变量 矩形, 矩形F

' 变量不要理会多少,复制过来的,用不上就用不上
图形.创建自窗口句柄 (画板1.取窗口句柄 ())
图形.清除 ()
画笔.创建自颜色 (RGB到ARGB (#红色), 5)
图形.画直线 (画笔, 0, 20, 400, 20)
图形.销毁 ()
信息框 (“我执行了子程序画直线”, 0, , )
返回 ()

.子程序 画文本, , 公开
.局部变量 位图, GP位图
.局部变量 图形, GP图形
.局部变量 字体, GP字体
.局部变量 文本格式, GP文本格式
.局部变量 画刷, GP线性渐变画刷
.局部变量 字体刷, GP纯色画刷
.局部变量 画笔, GP画笔
.局部变量 矩形, 矩形F

' 变量不要理会多少,复制过来的,用不上就用不上
图形.创建自窗口句柄 (画板1.取窗口句柄 ())
' 图形.清除 ()

字体.创建自名称 (“微软雅黑”, 12)
字体刷.创建 (RGB到ARGB (#白色))
文本格式.创建自通用默认 ()
文本格式.置行对齐 (#文本对齐_居中)

画笔.创建自颜色 (RGB到ARGB (取颜色值 (88, 88, 88)), 1)
矩形 = 制矩形F (0, 0, 1, 1)
画刷.创建自矩形 (矩形, RGB到ARGB (#红色), RGB到ARGB (#红色), )

图形.画文本 (“如何调用显示?”, 字体, 画刷, 制矩形F (26, 23, 200, 40), 文本格式)
字体.销毁 ()
字体刷.销毁 ()
文本格式.销毁 ()
画笔.销毁 ()
字体.销毁 ()
图形.销毁 ()
返回 ()

.子程序 _按钮1_被单击

画直线 ()
返回 ()

.子程序 _按钮2_被单击

画文本 ()
返回 ()

.子程序 一起画

画直线 ()
画文本 ()
返回 ()




补充内容 (2023-9-25 01:42):
3楼例子下载和1楼一样的
作者: sunfly    时间: 2023-9-25 01:41
用的2.4.1版模块 不上文件了,请这里直接复制

我想在窗口创建后就画一些东西比如直线文本作为初始界面
画板自个画的有锯齿太难看了转gdiplus画
我用画板做为画底,把画出的东西画在画板上。
请问该怎么写?
论坛里用字节集返回到图片框的例子看了不适合这个。
为什么点按钮调用就能显示而直接调用就不会显示?
感觉是刚学不会命令,不会把画好的东西转到画板上来,是酱紫吗?
作者: sunfly    时间: 2023-9-25 01:42
例子.e (282.04 KB, 下载次数: 18)
作者: sunfly    时间: 2023-9-25 09:43
刚发出来后找到问题答案了,是画板重画问题
在子程序结束前加一句  画板.自动重画=假 即可
作者: 花间一壶酒    时间: 2023-9-25 11:36
你这不是已经正常显示了么   你是不是没有开模块守护导致模块没生效啊

BABLHFNYD4JH61P.png (5.84 KB, 下载次数: 4)

BABLHFNYD4JH61P.png

作者: sunfly    时间: 2023-9-25 11:50
赤璃琴殇 发表于 2023-9-25 11:36
你这不是已经正常显示了么   你是不是没有开模块守护导致模块没生效啊

没装易助手这些东西,您这个是按了按钮的图示吗?还是运行就是这样的?
作者: 花间一壶酒    时间: 2023-9-25 12:00
sunfly 发表于 2023-9-25 11:50
没装易助手这些东西,您这个是按了按钮的图示吗?还是运行就是这样的? ...

按了按钮  因为你直接写在窗口创建 画板都没创建完成  往哪画...
作者: sunfly    时间: 2023-9-25 15:24
赤璃琴殇 发表于 2023-9-25 12:00
按了按钮  因为你直接写在窗口创建 画板都没创建完成  往哪画...

哪请问该如何修改把画板创建?谢谢
作者: 花间一壶酒    时间: 2023-9-25 15:53
sunfly 发表于 2023-9-25 15:24
哪请问该如何修改把画板创建?谢谢

画板是在窗口创建完毕才加载的  你直接创建窗口完毕直接调用 一起画 子程序是不行的  

你在子程序 一起画 里面第一行写个延迟 200 毫秒  再用线程_启动的方式调用 一起画   就可以直接显示出来了
作者: 花间一壶酒    时间: 2023-9-25 16:01


作者: sunfly    时间: 2023-9-25 18:28
赤璃琴殇 发表于 2023-9-25 15:53
画板是在窗口创建完毕才加载的  你直接创建窗口完毕直接调用 一起画 子程序是不行的  

你在子程序 一起 ...

原来画板是要创建才加载的,这个真没注意,一直以为是创建同时画板作为组件是存在的
之前测过延迟,可能是延迟才的不够就没注意这个细节

作者: sunfly    时间: 2023-9-26 01:48
研究了几个小时论坛的贴,参考这个贴非常有帮助
https://125.confly.eu.org/forum.php?mod ... p;highlight=gdiplus
作者: gqgshi    时间: 2024-3-13 14:09
研究一下




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4