> 例えばBoxfとかにできたら。。
任意の矩形ですか。
HSPのtooltip命令では無理です。
よって API 関数を呼び出して実装する必要があります。
http://wisdom.sakura.ne.jp/system/winapi/common/common10.html
//------------------------------------------------------------------------------
// 科学太郎のサンプル for HSP(Ver.3.3.2)
//==============================================================================
// テーマ:ツールチップ
// 掲示板:http://hsp.tv/play/pforum.php?mode=all&num=68524
//------------------------------------------------------------------------------
//--------------------------------------
// 記号定数(API定数)
//--------------------------------------
#const NULL $00000000
#const TTS_ALWAYSTIP $00000001
#const TTF_SUBCLASS $00000010
#const TTM_ADDTOOL $00000404
#const TTM_SETMAXTIPWIDTH $00000418
//--------------------------------------
// 列挙定数(TOOLINFO)
//--------------------------------------
#enum ti_cbSize=0 ;TOOLINFO構造体のサイズ(バイト数)
#enum ti_nFlags ;ツールチップのフラグ
#enum ti_hWnd ;ウインドウのハンドル
#enum ti_nID ;ツールチップのID
#enum ti_rc ;ツールチップの矩形
#enum ti_rcLeft=ti_rc ;ツールチップの矩形(左上隅X)
#enum ti_rcTop ;ツールチップの矩形(左上隅Y)
#enum ti_rcRight ;ツールチップの矩形(右下隅X)
#enum ti_rcBottom ;ツールチップの矩形(右下隅Y)
#enum ti_hInst ;インスタンスのハンドル(文字列リソース)
#enum ti_szText ;ツールチップの文字列
#enum DIM_TOOLINFO
#enum SIZE_TOOLINFO=(DIM_TOOLINFO*4)
//--------------------------------------
// メイン部
//--------------------------------------
*Init
cx=50
cy=80
sx=100
sy=100
*Main
screen 0,640,480,SCREEN_NORMAL|SCREEN_FIXEDSIZE
title "No.029(ツールチップ)"
repeat 3:cntY=cnt
repeat 5:cntX=cnt
n=(cntY*5+cntX)
x=(sx+10)*cntX+cx
y=(sy+10)*cntY+cy
ToolTipRect x,y,(x+sx),(y+sy),strf("矩形(%d)\nの\nツールチップ",n),100
loop
loop
stop
//--------------------------------------
// ツールチップの作成
//--------------------------------------
#deffunc ToolTipRect int _cx_,int _cy_,int _ex_,int _ey_,str _msg_,int _width_,\
local idTip,\
local msgTip
winobj "tooltips_class32","",0,TTS_ALWAYSTIP,-1,-1,0,0:idTip=stat
;文字列の補正
msgTip=_msg_
if(_width_==0){
if(strlen(msgTip)>=64):poke msgTip,64,0
}
;構造体の初期化
dim TOOLINFO,DIM_TOOLINFO
TOOLINFO(ti_cbSize) =SIZE_TOOLINFO
TOOLINFO(ti_nFlags) =TTF_SUBCLASS
TOOLINFO(ti_hWnd) =hWnd
TOOLINFO(ti_nID) =0
TOOLINFO(ti_rcLeft) =_cx_
TOOLINFO(ti_rcTop) =_cy_
TOOLINFO(ti_rcRight) =_ex_
TOOLINFO(ti_rcBottom) =_ey_
TOOLINFO(ti_hInst) =NULL
TOOLINFO(ti_szText) =varptr(msgTip)
sendmsg objinfo_hwnd(idTip),TTM_ADDTOOL,0,varptr(TOOLINFO)
;改行幅の設定
if(_width_){
sendmsg objinfo_hwnd(idTip),TTM_SETMAXTIPWIDTH,0,_width_
}
;テスト用の矩形
switch(idTip\3)
case 0:color $FF,$00,$00:swbreak
case 1:color $00,$FF,$00:swbreak
case 2:color $00,$00,$FF:swbreak
swend
boxf _cx_,_cy_,_ex_,_ey_
pos _cx_,_cy_:color $FF,$FF,$FF:mes strf("矩形(%d)",idTip)
return idTip
//------------------------------------------------------------------------------
// End of newSample029.hsp
//------------------------------------------------------------------------------