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


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
0111
I386listview のスクロール5解決


I386

リンク

2007/1/11(Thu) 17:09:08|NO.4733

listview を使ってとあるリストを作っているのですが、
項目が何千項目と膨大で、指定行にジャンプできるようジャンプ機能を
作りたいのですがlistselだけではスクロールバーが動いてくれません。

listboxも使おうとしたのですが、listboxはlistboxで問題があり、行単位で
制御できない(全てを書き換える必要がある)
ので使わないようにしています。

スクロールできる技術をお持ちの方、宜しくです。



この記事に返信する


ゆちボン

リンク

2007/1/11(Thu) 18:31:40|NO.4735

LBならわかるんですけどねぇ。。。
というわけで一応書いておきます。
sendmsgで、以下のメッセージを送ってください。

エラーは以下がstatにかえります。
#const LB_ERR -1

文字列を一番下に追加
#const LB_ADDSTRING 0x0180
sendmsg オブジェクトのハンドル(以下obj),LB_ADDSTRING,0,"追加文字列"

文字列を削除
#const LB_DELETESTRING 0x0182
sendmsg obj,LB_DELETESTRING,0,削除行,0

文字列を〜〜行目に追加
#const LB_INSERTSTRING 0x0181
sendmsg obj,LB_INSERTSTRING,挿入行,挿入文字列

ほか、知りたいメッセージがありましたら教えます。
↑は基本的な3点です。



ゆちボン

リンク

2007/1/11(Thu) 18:32:27|NO.4736

追記。

LBとはlistboxのことです。
わかっているかもしれませんが一応(^^;



Kpan

リンク

2007/1/11(Thu) 20:48:36|NO.4745

リストボックスは、ゆちボンさんが提示されているように、objprm命令を
使わない方法もあります。↓一応、Delphi言語向けですが参考ページ。
http://homepage2.nifty.com/Mr_XRAY/Halbow/Chap08.html

リストビューを使ったことがないので、外してるかもしれませんが、
MSDNページをテキトーにチェックしてみたところ、このメッセージで可能?
http://msdn.microsoft.com/library/en-us/shellcc/platform/commctls/listview/messages/lvm_scroll.asp



kz3

リンク

2007/1/11(Thu) 23:24:11|NO.4749

>リストビューを使ったことがないので、外してるかもしれませんが、
>MSDNページをテキトーにチェックしてみたところ、このメッセージで可能?
>http://msdn.microsoft.com/library/en-us/shellcc/platform/commctls/listview/messages/lvm_scroll.asp

スクロールをエミュレートする方法のほかにも、任意の項目をリストビュー内で可視するための LVM_ENSUREVISIBLE メッセージなどもありますね。



I386

リンク

2007/1/12(Fri) 15:40:44|NO.4756

みなさんありがとうございます。
kpenさんとkz3さんのを参考にして LVM_ENSUREVISIBLE を使うことにしました。
上手く指定行に飛んでくれています。

MSDNという手があったのを忘れていました。



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