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


HSPTV!掲示板


未解決 解決 停止 削除要請

2011
0416
souコンボボタン2解決


sou

リンク

2011/4/16(Sat) 17:27:55|NO.38449

申し訳ありません・・・
またまた質問しちゃいました
でも本当に分からないんです!
このまえのコンボボタンのスクリプトを応用して
下記のスクリプトを作りました

; コンボボックス監視サンプルスクリプト (by Kpan) ; WM_COMMAND oncmd gosub *command, $111 objsize 100 combox a, 60, "胡瓜\n林檎\n人参\n葡萄\n茄子\n南瓜\n玉葱" hCombox = objinfo (stat, 2) pos 1,21 button "実行",*zi oncmd gosub *command, $111 objsize 100 combox a, 60, "胡瓜\n林檎\n人参\n葡萄\n茄子\n南瓜\n玉葱" hCombox = objinfo (stat, 2) pos 1,65 button "実行",*zi2 stop *command ; lparamにはコンボボックスのハンドルが返る if lparam = hCombox { ; wparamの上位ワードには通知コードが返る wNotifyCode = wparam >> 16 & $FFFF ; 通知コード1の場合は選択状態変化 if wNotifyCode = 1 { ; 現在選択中のインデックス番号取得 (CB_GETCURSEL) ; (変数aは利用しません) sendmsg hCombox, $147 title "インデックス番号: "+stat } } return *zi sendmsg hCombox, $147 index=stat title "インデックス番号: "+index if index = 0 : exec "notepad.exe"//indexが0("メモ帳"を選んでいた)ならメモ帳(notepad.exe)起動 if index = 1 : exec "calc.exe"//〃が1("電卓"を〃)なら起動。 stop *zi2 sendmsg hCombox, $147 index=stat title "インデックス番号: "+index if index = 0 : exec "notepad.exe"//indexが0("メモ帳"を選んでいた)ならメモ帳(notepad.exe)起動 if index = 1 : exec "calc.exe"//〃が1("電卓"を〃)なら起動。 stop

でもこれだと動きがおかしいです。
1つ目のコンボボックスはどれを選んでもメモ帳しかでてきません。
2つ目のコンボボックスは正常に動いています。
どうすれば1つ目のコンボボックスと2つ目のコンボボックスが動くでしょうか?
お願いします!



この記事に返信する


Cookies

リンク

2011/4/16(Sat) 17:31:38|NO.38450

上の方で
objsize 100
combox a, 60, "胡瓜\n林檎\n人参\n葡萄\n茄子\n南瓜\n玉葱" hCombox = objinfo (stat, 2) pos 1,21 button "実行",*zi oncmd gosub *command, $111 objsize 100 combox a, 60, "胡瓜\n林檎\n人参\n葡萄\n茄子\n南瓜\n玉葱" hCombox = objinfo (stat, 2)
としています。 二つ目のcomboxをした後、hComboxが上書きされちゃってます。
なので、もう一つ目のウィンドウハンドルを知る方法がありません。
二つ目のは違う変数に入れましょう。(hComboxを配列にしてもいいですけどね。)



sou

リンク

2011/4/16(Sat) 18:58:06|NO.38453

ありがとうございます。
変数を変更したら無事作動しました!



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