人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

スクロールバーが、フラットか3Dを変更ができて、スクローバーの中のマウスでドラックできるバー?がデータの量によって、大きさが変わってくれる、フレキシブルグリットを知りませんか?
機能的には、MSのフレキシブルグリットと同様でかまいません。使う言語はVb6です。
確実にできる、物でお願いいたします。

●質問者: asekichi
●カテゴリ:コンピュータ 趣味・スポーツ
✍キーワード:MS vb6 クローバー スクロール データ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● cx20
●25ポイント

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

◎質問者からの返答

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


2 ● cx20
●25ポイント

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) コントロールの使い方]

http://www.grapecity.com/Japan/CompChart/Grid/grid.htm

製品間の機能比較表

そのほかの方法としては、

・VS-FlexGrid Pro を利用する

・VB.NET へ移行する

・VC++ で開発する

でしょうか。

VS-FlexGrid で、フラットスクロールバーが表示できるかは未確認です。

VC++ 6.0 で ListView でフラットスクロールバーが表示されることは確認しました。

◎質問者からの返答

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

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ