Win32APIのDrawTextA関数を用います。
DrawTextの最後の引数にDT_ENDELLIPSISを指定することで
RECTで指定した領域に収まらなかった時に「...」となります。
参考
http://msdn.microsoft.com/ja-jp/library/cc428474.aspx
http://hsp.tv/play/pforum.php?mode=pastwch&num=23012
http://geocities.yahoo.co.jp/gl/gbmogiki/view/20091019/1255956196
#uselib "user32.dll"
#func DrawText "DrawTextA" int,sptr,int,sptr,int
#define DT_TOP 0x00000000
#define DT_LEFT 0x00000000
#define DT_CENTER 0x00000001
#define DT_RIGHT 0x00000002
#define DT_VCENTER 0x00000004
#define DT_BOTTOM 0x00000008
#define DT_WORDBREAK 0x00000010
#define DT_SINGLELINE 0x00000020
#define DT_EXPANDTABS 0x00000040
#define DT_TABSTOP 0x00000080
#define DT_NOCLIP 0x00000100
#define DT_EXTERNALLEADING 0x00000200
#define DT_CALCRECT 0x00000400
#define DT_NOPREFIX 0x00000800
#define DT_INTERNAL 0x00001000
#define DT_EDITCONTROL 0x00002000
#define DT_PATH_ELLIPSIS 0x00004000
#define DT_END_ELLIPSIS 0x00008000
#define DT_MODIFYSTRING 0x00010000
#define DT_RTLREADING 0x00020000
#define DT_WORD_ELLIPSIS 0x00040000
string1 = "普通の文字列"
string2 = "とてもとてもとてもとても長い文字列"
repeat
redraw 0
color 255,255,255:boxf
color 0,0,0
limitwidth=100+cnt\200 //表示する幅 デモ用に変化させている
line limitwidth,0,limitwidth,480
RECT = 0,0,limitwidth,30 //左上x座標,左上y座標,右下x座標,右下y座標
DrawText hdc, string1, -1, varptr(RECT),DT_TOP|DT_END_ELLIPSIS
RECT = 0,30,limitwidth,60
DrawText hdc, string2, -1, varptr(RECT),DT_TOP|DT_END_ELLIPSIS
await 16
redraw 1
loop