如果要自动换行就不会超出宽度,
如果要不换行就不会超出高度.
DrawText(img1.Canvas.Handle,
PChar(ShowCaption),-1,TempRect,DT_LEFT or DT_WORDBREAK);
有个DT_CALCRECT标志,加上这个标志,当同时含 DT_WORDBREAK,就会得到以给定TempRect宽度输出时,需要的矩形高度.如果不含WORDBREAK,也就是单行输出时,会给出TempRect所需的宽度,加入DT_CALCRECT后并不会实际输出文字,根据计算出的TempRect,在第二次DrawText时去掉DT_CALCRECT,就会把文字输出在TempRect内了.
看看DrawText的API帮助,再在论坛的离线数据库里以DrawText为关键词搜索一下,得到答案应该没问题了.