CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

[求助]DRAWTEXT函数?

楼主fa7274(聂风)2005-07-12 14:53:38 在 VB / 基础类 提问

DRAWTEXT函数如何使自动换行的文本在矩形框中垂直居中?  
  单行文本可以,不知多行的如何实现 问题点数:20、回复次数:3Top

1 楼homezj(小吉)回复于 2005-07-12 15:11:33 得分 15

调用两次,第一次,通过设置DT_CALCRECT标志,计算多行的高度,第二次,通过前面取得的高度,在目的矩形中指定居中的起点。Top

2 楼tanaya(唐博士http://blog.csdn.net/tanaya)回复于 2005-07-12 15:18:46 得分 5

DrawText    
   
  VB声明  
   
  Declare   Function   DrawText   Lib   "user32"   Alias   "DrawTextA"   (ByVal   hdc   As   Long,   ByVal   lpStr   As   String,   ByVal   nCount   As   Long,   lpRect   As   RECT,   ByVal   wFormat   As   Long)   As   Long    
   
  说明    
  将文本描绘到指定的矩形中    
  返回值    
  Long,描绘文字的高度    
  参数表    
  参数   类型及说明    
  hdc   Long,欲在其中显示文字的一个设备场景的句柄    
  lpStr   String,欲描绘的文本字串    
  nCount   Long,欲描绘的字符数量。如果要描绘整个字串(直到空中止符),则可将这个参数设为-1    
  lpRect   RECT,指定用于绘图的一个格式化矩形(采用逻辑坐标)    
  wFormat   Long,一个标志位数组,决定了以何种形式执行绘图。参考下面总结的常数类型列表    
  标志常数   说明    
  DT_BOTTOM   必须同时指定DT_SINGLE。指示文本对齐格式化矩形的底边    
  DT_CALCRECT   象下面这样计算格式化矩形:多行绘图时矩形的底边根据需要进行延展,以便容下所有文字;单行绘图时,延展矩形的右侧。不描绘文字。由lpRect参数指定的矩形会载入计算出来的值    
  DT_CENTER   文本垂直居中    
  DT_EXPANDTABS   描绘文字的时候,对制表站进行扩展。默认的制表站间距是8个字符。但是,可用DT_TABSTOP标志改变这项设定    
  DT_EXTERNALLEADING   计算文本行高度的时候,使用当前字体的外部间距属性(the   external   leading   attribute)    
  DT_LEFT   文本左对齐    
  DT_NOCLIP   描绘文字时不剪切到指定的矩形    
  DT_NOPREFIX   通常,函数认为   &   字符表示应为下一个字符加上下划线。该标志禁止这种行为    
  DT_RIGHT   文本右对齐    
  DT_SINGLELINE   只画单行    
  DT_TABSTOP   指定新的制表站间距,采用这个整数的高8位    
  DT_TOP   必须同时指定DT_SINGLE。指示文本对齐格式化矩形的顶部    
  DT_VCENTER   必须同时指定DT_SINGLE。指示文本对齐格式化矩形的中部    
  DT_WORDBREAK   进行自动换行。如用SetTextAlign函数设置了TA_UPDATECP标志,这里的设置则无效    
   
   
   
  Top

3 楼fa7274(聂风)回复于 2005-07-13 09:30:08 得分 0

谢谢 小吉   
  该方法可行 我试过了 不知还有没有更好的方法Top

相关问题

  • 关于DrawText函数的问题
  • 请教DrawText函数的用法。
  • 简单问题:关于DrawText函数
  • API函数DrawText的换行输出文本问题!!!!
  • 如何给API的DrawTextEx或DrawText函数传值问题
  • 关于DrawText函数使文本居中显示的问题
  • 用drawtext函数输出字体,如何改变行距?
  • 怎样设置DrawText函数中字体的颜色?
  • 能不能在任意一个函数里调用比如Ellipse(),DrawText(),TextOut()之类的函数啊?
  • 函数

关键词

  • 矩形
  • 文本
  • 函数
  • 格式化
  • 字符
  • 文字
  • 间距
  • 制表
  • 指示
  • dt

得分解答快速导航

  • 帖主:fa7274
  • homezj
  • tanaya

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo