;ステータスバーを使う #include "llmod.as" #module #deffunc setstb int,int mref mode,0 mref idstat,1 if idstat=0 : idstat=1000 ;ステータスバーのID(複数使う場合は必ず指定) mref bmscr,67 mref ret,64 icc=8,0x0004 ;0x0004はICC_BAR_CLASSESスタイル getptr picc,icc dllproc "InitCommonControlsEx",picc,1,D_COMCTL ;コモンコントロールの準備 if dllret@=0 : ret=0 : return prm=0x40000000|0x10000000|0x0000003,0,bmscr.13,idstat ;0x40000000はWS_CHILD、0x10000000はWS_VISIBLE、0x0000003はCCS_BOTTOMスタイル if mode=1 : prm.0=prm.0|0x0100 ;モードが1ならばSBARS_SIZEGRIPスタイルを追加 dllproc "CreateStatusWindowA",prm,4,D_COMCTL ;ステータスバーを作成 if dllret@=0 : ret=0 : return hstat=dllret@ ret=1 return #deffunc setstbpart val,int mref long,48 mref part,1 getptr plong,long prm=hstat,0x0404,part,plong ;0x0404はSB_SETPARTSメッセージ dllproc "SendMessageA",prm,4,D_USER return #deffunc setstbtext str,int mref stxt,32 txt=stxt mref partno,1 getptr ptxt,txt prm=hstat,0x0401,partno,ptxt ;0x0401はSB_SETTEXTメッセージ dllproc "SendMessageA",prm,4,D_USER return #deffunc getstbheight val mref height,16 getptr pclient,client prm=hstat,pclient dllproc "GetClientRect",prm,2,D_USER ;ステータスバーが使用しているクライアントエリアを取得 height=client.3-client.1 return #deffunc setstbsize prm=hstat,0x0005,winx,winy ;0x0005はWM_SIZEメッセージ dllproc "SendMessageA",prm,4,D_USER return #global setstb long=200,400,-1 setstbpart long,3 setstbtext "あいうえお",0 setstbtext "かきくけこ",1 setstbtext "さしすせそ",2 getstbheight height mes "ステータスバーの高さ:"+height stop |