スクロールバーが、フラットか3Dを変更ができて、スクローバーの中のマウスでドラックできるバー?がデータの量によって、大きさが変わってくれる、フレキシブルグリットを知りませんか?

 機能的には、MSのフレキシブルグリットと同様でかまいません。使う言語はVb6です。
 確実にできる、物でお願いいたします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:cx20 No.1

回答回数607ベストアンサー獲得回数108

ポイント25pt

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

id:asekichi

スクロールバーを、フラットか3Dに変えるほうが、必要なんですね、データ量によるサイズは、まああればいいかなって、ぐらいなんです

2004/09/17 14:56:38
id:cx20 No.2

回答回数607ベストアンサー獲得回数108

ポイント25pt

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 … スタイルのスクロール バーを表示します。

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 でフラットスクロールバーが表示されることは確認しました。

id:asekichi

MSのフレキシブルグリットに、フラットスクロールバーを乗せて、Windowsのイベントをフックして、セルサイズが変更されたときにの、スクロールの制御をやるまでの、コントロールは作ったのですが、大量のデータを、書いたり戻したりをすると、僕の作成したコントロールでは、メモリ不足でこけてしまうんですよね。

 そんな、機能的にどうでもいいことに、妙にこだわられてしまっているので、そういう機能を満たしている、ものがないものなのなのかな?って思ったのですが・・

 ListViewを、グリットととして、使うしかないのかな?

2004/09/18 16:45:32

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません