DrawText函数格式如下:
DrawText(Handle, //device context句柄
PChar(Word), //要显示的字符串
Length(Word), //字符串的长度
R, //矩形
DT_WORDBREAK //输出格式
); 如果Word字符串有20个字符,而R的宽度只有80个像素,则R的宽度不足以将Word在一行容纳,按照上面格式也无法折行,而是将Word不能显示的部分直接去掉了。DrawText有没有其他的格式让Word也折行显示,如果没有这样的格式,有没有其他的办法达到满足我的目的?
DrawText(Handle, //device context句柄
PChar(Word), //要显示的字符串
Length(Word), //字符串的长度
R, //矩形
DT_WORDBREAK //输出格式
); 如果Word字符串有20个字符,而R的宽度只有80个像素,则R的宽度不足以将Word在一行容纳,按照上面格式也无法折行,而是将Word不能显示的部分直接去掉了。DrawText有没有其他的格式让Word也折行显示,如果没有这样的格式,有没有其他的办法达到满足我的目的?
解决方案 »
- 请教个webbrowser1 .free切换恢复正常问题
- 请教DELPHI操作指针的问题。谢谢。
- 一个对高手来说是简单的问题,三层结构的数据更新问题
- 动态计算字段如何设置?
- 发现了ADO和sqlserver的奇怪问题
- 数据模块的对话框问题(MessageDlg的使用方法)
- 不好意思,问题问得有错误,想知道其它运行程序的安装目录
- 请教一个有关DBGRID 感应数据源的问题!
- 请问那位朋友会使用ms sql的自定义函数功能,这个功能有用吗,是不是可以使用存储过程代替这功能?
- :) 今天是星期一,有很多高手开始上班了。这个捆饶我很久的问题可能可以得到解决了!快请进!!!:D
- 请问哪里有INTERBASE的ODBC驱动
- 寻求嗅探器的源代码
begin
if (Flags and DT_CALCRECT <> 0) and ((CText = '') or ShowAccelChar and
(CText[1] = '&') and (CText[2] = #0)) then CText := CText + ' ';
if not ShowAccelChar then
Flags := Flags or DT_NOPREFIX; Canvas.Font:=Font;
if not Enabled then
begin
OffsetRect(Rect, 1, 1);
Canvas.Font.Color:=clBtnHighlight;
DrawText(Canvas.Handle, PChar(CText), Length(CText), Rect, Flags);
OffsetRect(Rect, -1, -1);
Canvas.Font.Color:=clBtnShadow;
DrawText(Canvas.Handle, PChar(CText), Length(CText), Rect, Flags);
end
else
DrawText(Canvas.Handle, PChar(CText), Length(CText), Rect, Flags);
end;
typedef struct {
UINT cbSize;
int iTabLength;
int iLeftMargin;
int iRightMargin;
UINT uiLengthDrawn;
} DRAWTEXTPARAMS, FAR *LPDRAWTEXTPARAMS;
由于ljyt和xue_fg没有正确回答问题,分数只能给jishiping,不过也感谢你们的捧场。