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


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
1209
めりーリストボックスの変更通知4解決


めりー

リンク

2009/12/9(Wed) 22:16:48|NO.29206

リストボックスの選択が変わったと同時にgotoで飛ばせるようにしたいのですが
ループ内で変数の変化を取得する以外に方法はないのでしょうか?

stop中にonchangeで変化を受け取って処理を行うような使い方が出来ないでしょうか?
それで少しでも軽くなるならその方法に変えたいのですが。



この記事に返信する


Chokoko

リンク

2009/12/9(Wed) 22:24:28|NO.29207

直接的な解決にはなりませんが、
別にループで変数を取得しても気になるほど重くなりませんよ。



たこ

リンク

2009/12/9(Wed) 23:13:15|NO.29208

リストボックスの項目の選択が変わった場合、
LBN_SELCHANGEがWM_COMMANDを通して送られるようです
参考:http://msdn.microsoft.com/en-us/library/bb775161(VS.85).aspx

試してはないんで、できるかどうかわかりませんが…



shinkun

リンク

2009/12/9(Wed) 23:50:14|NO.29210

つまらぬものですがどうぞ。

#define WM_COMMAND 0x0111 #define LBN_SELCHANGE 1 #define LB_GETCURSEL 0x0188 oncmd gosub *onCommand, WM_COMMAND listbox itemID, 100, "item0\nitem1\nitem2\n" stop *onCommand event = (wparam >> 16) & 0xffff if (event == LBN_SELCHANGE) { gosub *procedure } return *procedure handle = lparam sendmsg handle, LB_GETCURSEL dialog "" + stat + " : " + itemID, 0, "リストボックスの選択セルの変更の通知" return
なお、選択セルの変更を通知してもらう構造にした場合、listbox 命令で指定した選択セル番号を格納する変数(上記のスクリプトではitemIDに相当)には、変更の通知が来た時点でまだその結果が反映されていません。
そのため、sendmsg 命令を使って自分で選択されたセルを聞きにいく必要があります。



めりー

リンク

2009/12/10(Thu) 01:44:27|NO.29212

なるほど、こんな方法が><
ありがとうございますっ!!



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