- ベストアンサー
VB6でスプリッター(サイズ変更する分割線)を使いたい
エクスプローラーのツリービューとリストビューの間に入っている分割線、これを使用したいのです。 VC++等を使うとエクスプローラースタイルを選択すれば実装済みのプロジェクトができあがるのですが、VB6で実装する方法が分からず頓挫しています。 確か.netではSpliterオブジェクトとして標準ツール郡に入っていた覚えがあるのですが、VB6では見つけることができませんでした。 できればネット上で公開している特別なocxなどは使用せずにVB6に標準で付いてくる機能(Common Control等)で実装したいのですが、ご存知の方、ぜひご教授いただけますようお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
はい、VB6にスプリッターはありません。 ですから自力で実装します。 といっても、スプリッターコントロールを作るわけではなく、スプリッターと同じ動きに見せる感じです。 例えば、フォームの左にTreeView、右にListViewという場合。 TreeViewとListViewを、間にスプリッター分の幅を空けて配置します。これで見た目はスプリッターがあるのと同じですよね。 MouseMoveイベントで、マウスポインタがTreeViewとListViewの間にあるときは、アイコンを横矢印に変更します。 TreeViewとListViewの間でMouseDownされ、そのままMouseMoveされたとき、つまり、スプリッターを動かすのと同じ動きをしたとき、 TreeViewとListViewのサイズを変更し、マウスカーソルの移動先に、TreeViewとListViewの間が来るようにします。 フォームがリサイズされたときも、TreeViewとListViewのサイズを変更する必要がありますね。 これだけです。 .NETのスプリッターコントロールを使用するのに比べたら少し面倒ですが、コード量としては大したことないはずです。
その他の回答 (1)
- tanukou_001
- ベストアンサー率20% (1/5)
新しいプロジェクトの「アプリケーションウィザード」で「エクスプローラスタイル」を選んでプロジェクトを作ればOKです。 ......エクスプローラの外観ができあがっています。当然、ツリービューとリストビューの境界を移動する事もできます。
お礼
VB6にもあったのですね、アプリケーションウィザード。 ActiveXコントロールやIISアプリケーションなどつらつらと並んでいるので探してもいませんでした。 これを生成するとPictureBoxを利用したスプリッタを実装していますね、とても参考になりました、ご教授ありがとうございます!
お礼
ご回答有難うございます! 丁寧にコーディングまで説明していただき、恐縮です。 間にオブジェクトを挟まずに実装する方法ですね、是非試してみようと思います。 Spliterオブジェクトは存在しないのですね、またひとつ勉強になりました。 親切にご教授いただき幸甚の至りです。