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


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
0802
774ウィンドウサイズの制限 (width=300 未満を許可しない)2解決


774

リンク

2009/8/2(Sun) 01:20:37|NO.26678

 
http://lhsp.s206.xrea.com/hsp_window.html

ウィンドウサイズ可変サンプル
を見て、ウィンドウサイズを可変にしてみたのですが、
更に拡張してウィンドウの横幅を 300 以上にしたいです。
(つまり、300 未満を許可しないような処理にしたい)

http://www.arcpit.co.jp/winapi/api_02/ap020206.htm
このページを見つけて
> oncmd gosub *ws_limit, 0x24 // WM_GETMINMAXINFO
とすれば
WM_GETMINMAXINFO メッセージはキャッチできたのですが

> lpmmi->ptMinTrackSize.x = 300;
とか
> return DefWindowProc(hWnd,uMsg,wParam,lParam);
の部分の書き方が分かりません。
この部分は HSP ではどのように書けば良いのでしょうか?
どうか、よろしくお願いします。



この記事に返信する


えく

リンク

2009/8/2(Sun) 05:57:44|NO.26679

重要そうなとこだけ切りだすとその場しのぎですがこういうスクリプトになりました (^^;;;


oncmd gosub *onminmax, 0x0024 stop *onminmax dupptr minmaxinfo, lparam, 40, 4 minmaxinfo(6) = 300// x最小さいず minmaxinfo(7) = 500// y最小さいず return 0

DefWindowProcは何もしなければ勝手にHSP側が実行してくれているので気にしなくて大丈夫です

で、ポインタが分かっているメモリへのアクセスへは
dupptrを使ってHSPで扱う変数にアドレスを割り当ててからやる必要があります
今回はPOINT構造体(LONG二個)が5つ分なのでMINMAXINFOのサイズは5*2*4=40バイト
よってlparamから40バイト分のメモリをHSPの変数に割り当てて、あとは配列のように添え字で指定してアクセスします

あとの細かいところは割愛…



774

リンク

2009/8/2(Sun) 09:05:55|NO.26680

えくさん、いろいろと教えて頂いてありがとうございました。
私の環境でもばっちり動作しました。
また、dupptr の説明などもありがとうございます。
完全には理解できていませんが、調べて理解するようにします。



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