递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 441|回复: 12
打印 上一主题 下一主题

[视窗] 请教,DrawTextW函数和DrawTextExW函数如何在火山PC中表达

[复制链接]

3

主题

69

帖子

161

积分

注册会员

Rank: 2

积分
161
跳转到指定楼层
楼主
发表于 2024-9-7 17:14:10 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 雪很冷 于 2024-9-9 09:43 编辑

初学API,还请指点。特别是 lprc、format 、lpdtp这些参数,数据类型不晓得如何写
DrawTextW函数:
int WINAPI DrawTextW(
        HDC              hdc,          // 设备上下文句柄
        LPWSTR           lpchText,     // 指向要绘制的文本字符串的指针
        int              cchText,      // 文本字符串的长度(以字符为单位)
        LPRECT           lprc,         // 指向包含文本绘制区域的矩形的指针
        UINT             format)    //设置文本格式的方法
DrawTextExW函数比DrawTextW还多了一个参数。
int DrawTextExW( [in] HDC hdc, [in, out] LPWSTR lpchText, [in] int cchText, [in, out] LPRECT lprc, [in] UINT format, [in] LPDRAWTEXTPARAMS lpdtp );
多了最后一个参数,完全懵





回复

使用道具 举报

50

主题

546

帖子

2307

积分

金牌会员

Rank: 6Rank: 6

积分
2307
沙发
发表于 2024-9-7 17:23:19 | 只看该作者
https://learn.microsoft.com/zh-c ... f-winuser-drawtextw
这个按理易语言有相关例子,你可以抄抄就知如何用了!!
回复

使用道具 举报

50

主题

546

帖子

2307

积分

金牌会员

Rank: 6Rank: 6

积分
2307
板凳
发表于 2024-9-7 17:24:56 | 只看该作者
https://bbs.125.la/forum.php?mod ... ;highlight=DrawText
搜了一下,N年前大神有写过!
回复

使用道具 举报

3

主题

69

帖子

161

积分

注册会员

Rank: 2

积分
161
地板
 楼主| 发表于 2024-9-7 17:59:37 | 只看该作者
老大。您高估了一位菜鸟的能力啊。模仿也很难的。能上个实例最好。
还有DrawTextExW
int DrawTextExW( [in] HDC hdc, [in, out] LPWSTR lpchText, [in] int cchText, [in, out] LPRECT lprc, [in] UINT format, [in] LPDRAWTEXTPARAMS lpdtp );
多了最后一个参数,完全懵
回复

使用道具 举报

50

主题

546

帖子

2307

积分

金牌会员

Rank: 6Rank: 6

积分
2307
5#
发表于 2024-9-7 18:34:24 | 只看该作者
本帖最后由 呵呵仙8 于 2024-9-7 18:36 编辑
雪很冷 发表于 2024-9-7 17:59
老大。您高估了一位菜鸟的能力啊。模仿也很难的。能上个实例最好。
还有DrawTextExW
int DrawTextExW(  HDC ...

你用DLL声明写函数不就OK了?参考易语言的,只要参数走指针就可解决了!!嵌入c++代码这方面,火山还是难了点!远没有炫语言这般便捷!!这货,c++自带的类型,随便一下就为它所用!!
回复

使用道具 举报

50

主题

546

帖子

2307

积分

金牌会员

Rank: 6Rank: 6

积分
2307
6#
发表于 2024-9-7 19:23:19 | 只看该作者
https://learn.microsoft.com/zh-t ... winuser-drawtextexw
这个才对!要6个参数!
火山的不知如何嵌入,炫语言的套个娃就OK!


回复

使用道具 举报

3

主题

69

帖子

161

积分

注册会员

Rank: 2

积分
161
7#
 楼主| 发表于 2024-9-7 19:31:47 | 只看该作者
谢谢老大,请教下DLL声明写函数如何写。简单举下例子更好。多谢。炫语言过后再去了解。因为在学火山,暂时没精力
回复

使用道具 举报

50

主题

546

帖子

2307

积分

金牌会员

Rank: 6Rank: 6

积分
2307
8#
发表于 2024-9-7 19:45:12 | 只看该作者
雪很冷 发表于 2024-9-7 19:31
谢谢老大,请教下DLL声明写函数如何写。简单举下例子更好。多谢。炫语言过后再去了解。因为在学火山,暂时 ...

嗯,加油,虽然很少玩火山了!你找我的主题.记得分享过的模块会存在关于操作DLL的内容!!
回复

使用道具 举报

50

主题

546

帖子

2307

积分

金牌会员

Rank: 6Rank: 6

积分
2307
9#
发表于 2024-9-7 20:55:26 | 只看该作者

参考网上c++的代码,大概写了一下子程序引用,你火山代码如用到嵌入式,可以参考下.
回复

使用道具 举报

26

主题

1789

帖子

6563

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
6563
10#
发表于 2024-9-7 23:29:53 | 只看该作者
<火山程序 类型 = "通常" 版本 = 1 />

类 绘制文本参数指针 <公开 基础类 = 本地结构指针模板 折叠 @别名 = "LPDRAWTEXTPARAMS">
{
    变量 cbSize <公开 类型 = 无符号整数 @输出名 = "cbSize">
    变量 iTabLength <公开 类型 = 整数 @输出名 = "iTabLength">
    变量 iLeftMargin <公开 类型 = 整数 @输出名 = "iLeftMargin">
    变量 iRightMargin <公开 类型 = 整数 @输出名 = "iRightMargin">
    变量 uiLengthDrawn <公开 类型 = 无符号整数 @输出名 = "uiLengthDrawn">

    #
}

类 案例 <折叠>
{
    方法 DrawTextExW <公开 静态 类型 = 整数 折叠 @禁止流程检查 = 真>
    参数 设备句柄 <类型 = 变整数>
    参数 绘制文本 <类型 = 文本型>
    参数 坐标 <类型 = 矩形类>
    参数 格式 <类型 = 无符号整数>
    参数 绘制文本参数 <类型 = 绘制文本参数指针 @默认值 = 空对象>
    {
        @ return DrawTextExW((HDC)@<设备句柄>, @<绘制文本>.GetText(), @<绘制文本>.GetLength(), (LPRECT)&@<坐标.左边>, @<格式>, @<绘制文本参数>);
    }

    方法 例子 <折叠>
    {
        变量 设备句柄 <类型 = 变整数>
        变量 坐标 <类型 = 矩形类>
        变量 格式 <类型 = 无符号整数 注释 = "那些常量懒得封了">
        DrawTextExW (设备句柄, "绘制文本", 坐标, 格式, 空对象)
        // 如果要用最后一个参数
        变量 文本参数 <类型 = 绘制文本参数指针>
        文本参数 = 绘制文本参数指针.创建 ()
        文本参数.cbSize = 绘制文本参数指针.取数据尺寸 ()  // 这个参数应该是必须的,其他懒得写了
        DrawTextExW (设备句柄, "绘制文本", 坐标, 格式, 文本参数)
        文本参数.销毁 ()  // 指针用完要销毁
    }
}
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-9-19 17:16 , Processed in 0.085780 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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