如何让显示的文字底线对齐???

phenixforever 2008-03-25 01:50:39
现在在做一个处理字体的程序,现在文字(英文)都能正常显示。但是,如果在同一行使用多种字体,就会出现文字向上偏移的现象(即文字的下边线不齐)。
哪位大侠能提供点线索,是什么原因引起的?
...全文
155 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
phenixforever 2008-03-31
  • 打赏
  • 举报
回复
试了试楼上的两种方法,都无效阿。我使用的是GDI+中的DrawString(),也试了其中的一些方法,都没有很好的解决,我也测试了文字的坐标,它们的y坐标是一样的。
cofanz 2008-03-25
  • 打赏
  • 举报
回复
TA_BASELINE
zengwenfu 2008-03-25
  • 打赏
  • 举报
回复
DT_BOTTOM
一、文字 1.标题文字 .......... #=1~6;h1为最大字,h6为最小字 2.字体变化 .......... 【1】字体大小 .......... #=1~7;数字愈大字也愈大 【2】指定字型 .......... 【3】文字颜色 .......... rr:表红色(red)色码 gg:表绿色(green)色码 bb:表蓝色(blue)色码 rrggbb也可用6位颜色代码数字 3.显示小字体 .......... 4.显示大字体 .......... 5.粗体字 .......... 6.斜体字 .......... 7.打字机字体 .......... 8.底线 .......... 9.删除线 .......... 10.下标字 .......... 11.上标字 .......... 12.文字闪烁效果 .......... 13.换行(也称回车)
14.分段

15.文字对齐方向

#号可为 left:表向左对齐(预设值) center:表向中对齐 right:表向右对齐 P.S.

之后的文字都会以所设的对齐方式显示,直到出现另一个

改变其对齐方向,遇到


标签时会自动设回预设的向左对齐。 16.分隔线
【1】分隔线的粗细
【2】分隔线的宽度
【3】分隔线对齐方向
#号可为 left:表向左对齐(预设值) center:表向中对齐 right:表向右对齐 【4】分隔线的颜色
【5】实心分隔线
17.居中对齐
..........
18.依原始样式显示
..........
19.指令的属性 【1】背景颜色 -- bgcolor 【2】背景图案 -- background 【3】设定背景图案不会卷动 -- bgproperties 【4】文件内容文字的颜色 -- text 【5】超连结文字颜色 -- link 【6】正被选取的超连结文字颜色 -- vlink 【7】已连结过的超连结文字颜色 -- alink 20.文字移动指令.......... 移动速度指令是:scrollAmount=# #最小为1,速度为最慢;数字越大移动的越快。 移动方向指令是:direction=# up向上、down向下、left向左、right向右。 指令举例:..........
软件介绍:   IrfanView4.53支持WIN7/WIN8/WIN10系统,这是一款媲美ACDSEE的看图软件,除了支持静态图片查看外,还支持查动态图片,可播放WAV/MID/AVI等音频视频文件,支持以幻灯片播放模式浏览图片。具备图像编辑能力,如图片格式转换、图片大小调整、颜色调整,添加文字水印等等。  工具使用说明:  选择工具用于一般用途,例如创建选区。  画笔工具用来随意绘画。按住左键并拖拽以绘制前景色。按住右键并拖拽以绘制背景色。  橡皮擦工具用来清除。按住左键并拖拽以还原背景色。按住右键并拖拽以还原原始图像。  仿制图章工具可以复制图像的一部分到另一个区域。可用于从照片移除尘埃和刮痕。按右键选取来源,然后在您要开始替换的位置按左键。  色彩替换工具用来以另一种色彩取代当前色彩。单击并拖拽以前景色取代背景色。右击并拖拽以背景色取代前景色。  字工具可以添加格式化的文字到图像。文字游标的十字将是插入文字的基准。文字将会在插入点处靠左、靠右或居中对齐。  直线工具可以绘制直线。单击并拖拽以定义直线。 放开鼠标按键来绘制它。要取消绘制,请单击右键。按住 CTRL 键绘制以开始点为中心的直线。按住 SHIFT 键绘制以 45° 为倍数的直线。  箭头线工具可以绘制箭头。单击并拖拽以定义箭头。 放开鼠标按键来绘制它。要取消绘制,请单击右键。按住 CTRL 键绘制以开始点为中心的箭头。按住 SHIFT 键绘制以 45° 为倍数的箭头。右击此按钮以打开 "箭头设定值" 对话框。  椭圆工具用来绘制圆形和椭圆形。如果勾选色彩图样上方的填充按钮,它将会是实心; 如果没有则是空心。单击并拖拽以定义椭圆形。 放开鼠标按键来绘制它。要取消绘制,请单击右键。按住 CTRL 键绘制以开始点为中心的椭圆形。按住 SHIFT 键以绘制圆形。  矩形工具用来绘制正方形和矩形。如果勾选色彩图样上方的填充按钮,它将会是实心; 如果没有则是空心。单击并拖拽以定义矩形。 放开鼠标按 键来绘制它。要取消绘制,请单击右键。按住 CTRL 键绘制以开始点为中心的矩形。按住 SHIFT 键以绘制正方形。  填充工具用来以单一色彩填充区域。单击以前景色填充一个区域。右击以背景色填充一个区域。  滴管工具用来从图像选取颜色。单击以选取前景色。右击以选取背景色。按住 SHIFT 键并点击此按钮以停用 自动返回先前工具。  矫正/旋转工具用来矫正图像。单击并拖拽在必须成为水平或垂直的图像之部分画 "底线" 。要取消操作,请单击右键。按住 CTRL 键绘 制以开始点为中心的直线。按住 SHIFT 键绘制以 45° 为倍数的直线。  使用测量工具可以测量图像上的距离和角度。单击并拖拽以选取要测量的距离。所有角度测量与水平线相关。要取消操作,单击鼠标右键。按住 CTRL 键绘制以开始点为中心的直线。按住 SHIFT 键绘制以 45° 为倍数的直线。右击此按钮以打开 "测量单位" 对话框,在此您可以 定义新的测量单位并编辑、删除和排序目前的测量单位。  显示画笔和刷子设定值对话框  使用仿制图章工具前您必须设定来源点 (鼠标右键单击)。启用详细辅助说明并阅读仿制图章工具的工具提示以获取更多资讯。
安装时请按照以下序列: Component->Install Packges-> 选择Discovery.bpl Options->Library->Search Path 中加入搜索路径。 EasyGrid 使用说明: 一、单元格属性; // ************************************************** // EasyGrid 的 Cells[i,j] 属性不同于 StringGrid。 // StringGrid 的 Cells 仅仅是一个字符串,而 EasyGrid // 的 Cells 可以存储丰富的数据类型。 // // 使用范例: // EasyGrid1.Cells[1,2].Color := clRed; // 将第一列第二行的一个单元格背景置为红色。 // // !!! 需要注意的是: // 上述语法不会导致网格自动刷新(即结果不会马上反映),因为上述语法 // 实际上是对内存地址直接写入,这样做的好处在于,如果大批量写入数据,这 // 是最快的方法,不会出现慢镜头式的现象。 // 用 EasyGrid1.Colors[1,2] := clRed; 可以实现同样效果并实时刷新, // 但大批量写入数据时速度较慢。 // 对大批量写入数据的处理一般需要使用 AutoUpdate 属性: // EasyGrid1.AutoUpdate := False; // ... 大批量写入数据 // EasyGrid1.AutoUpdate := True; // AutoUpdate 属性的使用类似于一个与 DbGrid 关联的 DataSource 控件, // 当 DataSource 内容改变时,需要把 DataSource 的 Enabled 属性置为 False。 // 以防止 DbGrid 出现慢镜头式的现象。 // ************************************************** // ************************************************** // 单元格属性说明如下: TCellInfo = record DataStyle : TDataStyle; // 数据格式 // 可用数据格式为: // TDataStyle = (dsText,dsNumber,dsDate,dsTime,dsFormula); AlignMode : TAlignMode; // 对齐方式 // 可用对齐方式为: // TAlignMode = (taTopLeft, taTop, taTopRight, // taLeft, taCenter, taRight, // taBottomLeft, taBottom, taBottomRight); ReadOnly : Boolean; // 单元格是否可编辑 AutoWordBreak : Boolean; // 文字自动折行 ShowForeText : Boolean; // 显示控制(Default True) // 说明:每个单元格允许存放两个字符串: // ForeText 与 BackText // ShowForeText 属性用于指定该网格显示哪一个字符串 DrawTop : Boolean; // 画顶线 DrawLeft : Boolean; // 画左线 DrawBottom : Boolean; // 画底线 DrawRight : Boolean; // 画右线 // 下面七个属性对于 DataStyle 为 dsNumber (数值型)的网格有效 AllowNegative : Boolean; // 是否允许输入负数 TrailingZero : Boolean; // 是否在小数后面补 0 ZeroNull : Boolean; // 输入数值 0 时是否当作空串处理 ThousandSep : Boolean; // 是否有千分号 MaxLength : Integer; // 最大编辑长度 IntLength : Integer; // 整数部分最大长度 DecLength : Integer; // 小数部分最大长度 LineWidth : Integer; // 边框线宽 PenStyle : TPenStyle; // 线形(TPenStyle 为Delphi定义类型) // Number 用于存储额外的数据,甚至可以用 Pointer() // 强制成32位结构指针,使得网格理论上可以挂接任意类型的数据 Number : Integer; // 存储数值 Color : TColor; // 网格背景颜色

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧