C++ API函数DrawText的用法?

msdn中声明如下intDrawText(HDChDC,//handletoDCLPCTSTRlpString,//texttodrawintnCount,//textl... msdn中声明如下
int DrawText(
HDC hDC, // handle to DC
LPCTSTR lpString, // text to draw
int nCount, // text length
LPRECT lpRect, // formatting dimensions
UINT uFormat // text-drawing options
);
而实际使用时:pDC->DrawText("string",&rect,DT_XXXX)
hDC和nCount参数怎么没有?
展开
 我来答
mafangsan
推荐于2018-05-10 · TA获得超过1.2万个赞
知道大有可为答主
回答量:1万
采纳率:71%
帮助的人:2594万
展开全部

  C++API函数DrawText函数用于在指定的矩形里写入正文。

  • 函数原型
    int DrawText(
        HDC hDC, // 设备描述表句柄
        LPCTSTR lpString, // 将要绘制的字符串
        int nCount, // 字符串的长度
        LPRECT lpRect, // 指向矩形结构RECT的指针
        UINT uFormat // 正文的绘制选项
    );

  • 参数说明

  hdc:[输入]设备环境句柄。

  lpString:[输入]指向将被写入的字符串的指针,如果参数nCount是-1,则字符串必须是以\0结束的。 如果uFormat包含DT_MODIFYSTRING,则函数可为此字符串增加4个字符,存放字符串的缓冲区必须足够大,能容纳附加的字符。

  nCount:[输入]指向字符串中的字符数。如果nCount为-1,则lpString指向的字符串被认为是以\0结束的,DrawText会自动计算字符数。

  lpRect:[输入/输出]指向结构RECT的指针,其中包含文本将被置于其中的矩形的信息(按逻辑坐标)。

        uFormat:[输入]指定格式化文本的方法。它可以下列值的任意组合,各值描述如下:

 

  1. DT_CALCRECT:这个参数比较重要,可以使DrawText函数计算出输出文本的尺寸。如果输出文本有多行,DrawText函数使用lpRect定义的矩形的宽度,并扩展矩形的底部以容纳输出文本的最后一行。如果输出文本只有一行,则DrawText函数改变矩形的右边界,以容纳下正文行的最后一个字符。出现上述任何一种情况,DrawText函数将返回格式化文本的高度,而不是绘制文本。

  2. DT_CENTER:指定文本水平居中显示。

  3. DT_VCENTER:指定文本垂直居中显示。该标记只在单行文本输出时有效,所以它必须与DT_SINGLELINE结合使用。

  4. DT_SINGLELINE:单行显示文本,回车和换行符都不断行。

 

  • 返回值

  如果函数调用成功,返回值是正文的高度(逻辑单位)。如果指定了DT_VCENTER或DT_BOTTOM,返回值是lpRect->top到绘制的正文的底部的偏移值。如果函数调用失败,返回值是0

SinbadLee
推荐于2016-02-18 · TA获得超过309个赞
知道小有建树答主
回答量:302
采纳率:0%
帮助的人:133万
展开全部
你说的是两个不同的函数,第一个是WIN32 API,它需要指定DC的句柄,而第二个是CDC的成员函数,当然不用再指定hDC了
至于nCount,函数有几种形式,有一个是不用指定长度的,和CDC的成员函数是对应的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式