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


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
0827
@keyceldiv7解決


@key

リンク

2012/8/27(Mon) 12:53:59|NO.48833

celdivで設定した数値はどこに保存されるんですか?
またどうすればその値をプログラムから取得できますか?



この記事に返信する


inovia

リンク

2012/8/27(Mon) 14:21:27|NO.48837

BMSCR構造体に格納されているようです。
mref経由で取得ができます。


mref bm, 67 mes "p2:\t"+(bm.84&0xFFFF) mes "p3:\t"+(bm.84>>16) mes "p4:\t"+(bm.85&0xFFFF) mes "p5:\t"+(bm.85>>16) mes "--------------------------" celdiv 0, 10, 20, 30, 40 mes "p2:\t"+(bm.84&0xFFFF) mes "p3:\t"+(bm.84>>16) mes "p4:\t"+(bm.85&0xFFFF) mes "p5:\t"+(bm.85>>16)



てん

リンク

2012/8/27(Mon) 14:26:01|NO.48838

すごいですね・・・。
てっきり不可能かと思ってました。


これは何かリファレンスとか企画書のようなものが開発側から提供されているのでしょうか?
それとも自ら探索されたのでしょうか?
(質問者ではないのですが、気になったので)



inovia

リンク

2012/8/27(Mon) 14:54:24|NO.48839

今回の場合はウィンドウ関連ということでBMSCR構造体にあるのではと予想していました。
celdiv命令の実行前と後のBMSCR構造体の値を比較して特定しました。

まぁここを見れば一発だったんですけども。
BMSCR構造体の宣言は一番下にあります。
http://dev.onionsoft.net/trac/browser/trunk/hsp3/win32gui/hspwnd_win.h



あり

リンク

2012/8/28(Tue) 01:07:15|NO.48856

inoviaさんの補足になりますが
hspsdkフォルダ内のhspdll.txtにHSPの内部情報にアクセスする為の
情報があるので興味があれば一読してみて下さい。



@key

リンク

2012/8/28(Tue) 01:24:52|NO.48857

ありがとうございます。自分も不可能だと思っていました・・・



@key

リンク

2012/8/28(Tue) 01:29:21|NO.48858

あと取得先のウィンドウIDを変更するにはどこをいじればいいんですか?
さっぱり理解できません・・・



inovia

リンク

2012/8/28(Tue) 02:03:48|NO.48859

方法としては2つあります。

1. mref bm, 67 を実行する前に gsel で設定する

ウィンドウID1の場合は、

gsel 1, 0 mref bm, 67
とすると取得できます。

2. mref bm, 67 ではなく mref bm, 96〜 を使用する
ウィンドウID1の場合は、

mref bm, 96+1
といった感じに、第2パラメータを96からウィンドウID分足していけばOKです。



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