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


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
0421
初心者リストボックスをマウスで移動5解決


初心者

リンク

2009/4/21(Tue) 21:57:03|NO.24746

先日、bgscrウィンドウをマウスで移動させる方法を
教えて頂きました。
ポップアップもちゃんと出ました。
もひとつわからないことが出てしまい困っています。

そのポップアップから各項目をクリックしたら、
該当するリストボックスが出るようにしています。

そのリストボックスがマウスで移動できないんです。

教えて頂いた方法でやってはみたんですが。。。

できませんでした。

「オブジェクトをマウスで移動」等、検索してみたんですが
いまいちよくわかりません。


;今のスクリプト

bgscr 3,125,185,,100,100,,
bgscr 2,300,300,2,100,100,100,158
gsel 3,2
; WM_COMMAND
oncmd gosub *command, $111
onclick gosub *onjump1
objsize 125,170
font "" ,15,,
objmode 2,,
listbox a, 60, " \n 1\n 2\n 3\n 4\n 5\n 6\n 7\n 8\n 9\n10\n 終了"
hListbox = objinfo(stat, 2)

stop

*command
if lparam = hListbox {
if HIWORD(wparam) = 2 {
if a == 1 : bgscr 2,300,300,2,100,100,100,158 : picload "" ,1 : gsel 2,2
if a == 2 : bgscr 2,300,300,2,100,100,100,158 : picload "" ,1 : gsel 2,2
if a == 3 : bgscr 2,300,300,2,100,100,100,158 : picload "" ,1 : gsel 2,2
if a == 4 : bgscr 2,300,300,2,100,100,100,158 : picload "" ,1 : gsel 2,2
if a == 5 : bgscr 2,300,300,2,100,100,100,158 : picload "" ,1 : gsel 2,2
if a == 6 : bgscr 2,300,300,2,100,100,100,158 : picload "" ,1 : gsel 2,2
if a == 7 : bgscr 2,300,300,2,100,100,100,158 : picload "" ,1 : gsel 2,2
if a == 8 : bgscr 2,300,300,2,100,100,100,158 : picload "" ,1 : gsel 2,2
if a == 9 : bgscr 2,300,300,2,100,100,100,158 : picload "" ,1 : gsel 2,2
if a == 10 : bgscr 2,300,300,2,100,100,100,158 : picload "" ,1 : gsel 2,2
if a == 11 : gosub *exit

return
}
}
return
*onjump1
gsel 2, -1
gsel 3, 2

return


今このような形のスクリプトでリストボックスを
表示しています。

リストボックスを移動させる方法を教えてください。

宜しくお願いします。



この記事に返信する


check

リンク

2009/4/21(Tue) 22:14:34|NO.24747

適当に作ってみた、もっといいやり方があると思う。

#include "user32.as" dim mp, 2 pos 0, 0 m = "test\ntest2\ntest3" listbox list, 100, m oncmd gosub *event_WM_MOUSEMOVE, 512 stop *event_WM_MOUSEMOVE clrobj mp = ginfo_mx, ginfo_my ScreenToClient hwnd, varptr(mp) pos mp.0, mp.1 listbox list, 100, m return



hspail

リンク

2009/4/21(Tue) 22:35:29|NO.24749

check さんのスクリを改良してみた。
マウスがリストボックス上にあるときに WM_MOUSEMOVE が来ないので WM_TIMER を使っています。
クリックで移動します。

#include "user32.as" #define WM_TIMER 0x0113 dim pt, 2 // POINT 構造体 listbox sel, 100, "apple\norange\nbanana" hListBox = objinfo_hwnd(stat) SetTimer hWnd, 1, 50, 0 oncmd gosub *timer, WM_TIMER onexit *exit stop *timer // クリックで移動 getkey click, 1 if click = 0 : return GetCursorPos varptr(pt) ScreenToClient hWnd, varptr(pt) MoveWindow hListBox, pt.0, pt.1, 100, 100, 1 return *exit KillTimer hWnd, 1 end

というか終了時の KillTimer は必要なのかな?



初心者

リンク

2009/4/22(Wed) 00:54:51|NO.24754

checkさん・hspailさん お返事ありがとうございます。

ちょ〜っと自分にはサッパリなスクリプトで・・・

検索しながらやってみます><

どこにどー書けばいいのかなど。。。

かなり時間はかかってしまうかもですが、

解決しましたらまたカキコさせてもらいます;;



初心者

リンク

2009/4/22(Wed) 00:59:53|NO.24756

キルタイマーを調べてみないといるのかいらないのかが

ちょっとまだ把握できていません;;

調べてからまたお返事したいと思います;;

無知ですいません○┓ペコッ



初心者

リンク

2009/4/22(Wed) 12:15:56|NO.24759

自分にはちょっと難しくて。。。

色々調べてみましたが、

意味を把握することができませんでした。

そこで、

ちょっと考え方とやり方を変えようと思います。

「リストボックスを自由に移動」ではなく、

「リストボックスを先に表示しておいたウィンドウの下に
表示」できないかなぁと、考えています。

ですので、Newで新たに質問としてあげさせてもらいます。

折角お返事、スクリプト考えて頂いたのに大変申し訳ないです。

ありがとうございました。

この質問はいちおー解決としたいと思います。

本当にありがとうございました。



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