機能的には、MSのフレキシブルグリットと同様でかまいません。使う言語はVb6です。
確実にできる、物でお願いいたします。
http://support.microsoft.com/?kbid=224192
PRB: DataGrid Is Not Populated Using Jet.OLEDB.4.0 Provider and ADO Server Side Cursor
「データ グリッド (DataGrid) コントロール」
を使用してみてはいかがでしょうか?
試してみたところ、データ量に応じて、スクロールの
サイズも変更されるようです。
URL は、データグリッドの使用例です。
<MSDN ライブラリのデータグリッドのヘルプの場所>
[MSDN ライブラリ 2001 年 10 月]
+[Visual Studio 6.0 ドキュメント]
+[リファレンス]
+[コントロール リファレンス]
+[ActiveX コントロール]
+[データ グリッド (DataGrid) コントロール]
名称:Microsoft DataGrid Control 6.0
パス:C:¥WINDOWS¥System32¥MSDATGRD.OCX
あと、MSFlexGrid と MSHFlexGrid も使用してみましたが、
リストのデータ量とスクロールバーのサイズは
同期とれていないようですね。
http://www.philly.ne.jp/~hanya/vb/listview.htm
ListView(リストビュー)
また「リスト ビュー (ListView) コントロール」を
使用しても、データ量に応じてスクロールのサイズが
変わるようですね。
[MSDN ライブラリ 2001 年 10 月]
+[Visual Studio 6.0 ドキュメント]
+[リファレンス]
+[コントロール リファレンス]
+[ActiveX コントロール]
+[リスト ビュー (ListView) コントロール]
名称:Microsoft Windows Common Controls 6.0
パス:C:¥WINDOWS¥System32¥MSCOMCTL.OCX
http://support.microsoft.com/default.aspx?scid=kb;EN-US;190673
BUG: Flat Scroll Bars in ListView Do Not Work Correctly
MSFlexGrid、MSHFlexGrid、DataGrid 等では、スクロールバーの
設定(Flat/3Dの切り替え)は出来ない(プロパティが無い)ようですね。
また、ListView コントロールには「FlatScrollBar」という
プロパティがあるのですが、VB6 だと正しく機能しないようです(上記 URL 参照)。
残念ながら、現状では回避策は無いようです。
■ FlatScrollBar プロパティ
オブジェクト上のスクロール バーの外観を決定する値を設定します。
[構文]
object.FlatScrollBar [= boolean]
[設定値]
boolean の設定値は次のとおりです。
[定数]
False … (既定値) 標準のスクロール バーを表示します。
True FlatScrollBar … スタイルのスクロール バーを表示します。
http://www.vbcode.com/asp/showsn.asp?theID=266
View Code Snippet
VB5 でのフラットスクロールバーの使用例です。
参考まで。
http://support.microsoft.com/?kbid=412577
The Knowledge Base (KB) Article You Requested Is Currently Not Available
もし、どうしても VB6 で、フラットスクロールバーを利用して
グリッドをスクロールさせたいということでしたら、
1. グリッド系のコントロールのスクロール機能をオフにして、
2. 「フラット スクロール バー」コントロールを貼り付けて、
3. 連動するようなプログラムを作成する。
という方法しか無いような気がします。
[MSDN ライブラリ 2001 年 10 月]
+[Visual Studio 6.0 ドキュメント]
+[Visual Basic ドキュメント
+[リファレンス]
+[コントロール リファレンス]
+[ActiveX コントロール]
+[フラット スクロール バー (FlatScrollBar) コントロール]
名称:Microsoft Windows Common Controls-2 6.0
パス:C:¥WINDOWS¥System32¥Mscomct2.ocx
フラットスクロールバー の説明は、こちらにもあります。
[MSDN ライブラリ 2001 年 10 月]
+[Visual Studio 6.0 ドキュメント]
+[Visual Basic ドキュメント]
+[Visual Basic の使用方法]
+[コンポーネント ツール ガイド]
+[ActiveX コントロールの使い方]
+[ActiveX コントロールの使い方]
+[フラット スクロール バー (FlatScrollBar) コントロールの使い方]
そのほかの方法としては、
・VS-FlexGrid Pro を利用する
・VB.NET へ移行する
・VC++ で開発する
でしょうか。
VS-FlexGrid で、フラットスクロールバーが表示できるかは未確認です。
VC++ 6.0 で ListView でフラットスクロールバーが表示されることは確認しました。
MSのフレキシブルグリットに、フラットスクロールバーを乗せて、Windowsのイベントをフックして、セルサイズが変更されたときにの、スクロールの制御をやるまでの、コントロールは作ったのですが、大量のデータを、書いたり戻したりをすると、僕の作成したコントロールでは、メモリ不足でこけてしまうんですよね。
そんな、機能的にどうでもいいことに、妙にこだわられてしまっているので、そういう機能を満たしている、ものがないものなのなのかな?って思ったのですが・・
ListViewを、グリットととして、使うしかないのかな?
スクロールバーを、フラットか3Dに変えるほうが、必要なんですね、データ量によるサイズは、まああればいいかなって、ぐらいなんです