HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
0427
大富豪Aオブジェクト4解決


大富豪A

リンク

2012/4/27(Fri) 18:30:37|NO.46282

サイズの変更可能なオブジェクト・オブジェクトのサイズを変更可能にする命令などはありませ
んか?



この記事に返信する


ヂオン

リンク

2012/4/27(Fri) 18:57:35|NO.46283

オブジェクトに WS_SIZEBOX または WS_THICKFRAME をウィンドウスタイルを追加した場合。
Windows標準の「サイズ変更領域」をオブジェクトに追加することが出来ます。


#include "user32.as" txt_mesbox = "" mesbox txt_mesbox,200,200 hwnd_mesbox=objinfo_hwnd(stat) pos 200,200 button "切替",*rt *rt GetWindowLong hwnd_mesbox,$FFFFFFF0/*GWL_STYLE*/ SetWindowLong hwnd_mesbox,$FFFFFFF0/*GWL_STYLE*/,(stat^$00040000)/*WS_SIZEBOX*/ SetWindowPos hwnd_mesbox,0,0,0,0,0,0x23/*SWP_NOSIZE|SWP_NOMOVE|SWP_FRAMECHANGED*/ stop



大富豪A

リンク

2012/4/27(Fri) 19:08:46|NO.46284

>ヂオン様
大変参考になりました。
「たてのサイズだけ」や「枠を出さずに」とゆうことは実現可能でしょうか?



ヂオン

リンク

2012/4/27(Fri) 20:10:36|NO.46285

自分の知る限りでは、自作するしかないはずです。
サイズ変更領域が分かりにくいので、WM_SETCURSOR を使用しました。

#include "user32.as" txt_mesbox="" mesbox txt_mesbox,200,200 hwnd_mesbox=objinfo_hwnd(stat) oncmd gosub *oncmd_wm_setcursor,0x20 /*WM_SETCURSOR*/ *@ stick key,256 if(key){ if(flg_lock==0 and is_inrect){ flg_lock = 1 ly = rc.3 - my } if(flg_lock){ SetWindowPos hwnd_mesbox,0,0,0,rc.2-rc,(ly+my)-rc.1,0x2/*SWP_NOMOVE*/ } }else{ flg_lock = 0 } title "key="+key await 30 goto*@b *oncmd_wm_setcursor // #define hincursorwnd wparam // cursorが有るウィンドウのハンドル。 /* nHitTest = lParam & 0xFFFF; // カーソルの位置 wMouseMsg = (lParam >> 16) & 0xFFFF; // マウスメッセージ*/ dim rc,4 mx=ginfo_mx:my=ginfo_my GetWindowRect hwnd_mesbox,varptr(rc) is_inrect = ((rc<=mx) and ((rc.2)>=mx) and ((rc.3-2)<= my) and (rc.3+2 >= my)) if(is_inrect or flg_lock){ LoadCursor 0,0x00007F85/*IDC_SIZENS*/ SetCursor stat return 1 }else{ LoadCursor 0,$00007F00/*IDC_ARROW*/ SetCursor stat return 1 }



大富豪A

リンク

2012/4/27(Fri) 21:11:52|NO.46286

>ヂオン様
>「たてのサイズだけ」や「枠を出さずに」とゆうことは実現可能でしょうか?
とゆう無理なお願いを聞いていただきありがとうございます。



ONION software Copyright 1997-2023(c) All rights reserved.