フォームビューでのスクロール – プログラミング – Home

フォームビューでのスクロール
 
通知
すべてクリア

フォームビューでのスクロール


APE
 APE
(@APE)
ゲスト
結合: 15年前
投稿: 4
Topic starter  

MFCのフォームビューにてアプリを作成しています。
環境は、Xp,VC++6.0です。

部分的にスクロールすることが目標ですが、
イメージとしまして、Excelの行及び列の固定して
スクロールする機能がありますが、そのような機能を
付けたいと思っています。

フォームビューのデフォルトで用意されているダイアログのオプションで
水平スクロールにチェックを入れると、スクロール機能が付加されますが、
スクロールビューと同様にクライアント領域全体がスクロールしてしまいます。

結局、部分的にスクロールするためには、デフォルトで用意されている
スクロール機能を使わず、自分でコントロールを配置して制御するしか
ないでしょうか。


引用解決済
トピックタグ
あ
 あ
(@あ)
ゲスト
結合: 23年前
投稿: 47
 

俺の知る限り
自動で部分的スクールしてくれるものなさそう

スクールできる子ウインドウ貼るとか

でなければ自分でスクール処理しないと無理な気がする


返信引用
PATIO
(@patio)
Famed Member
結合: 3年前
投稿: 2660
 

通常、スクロール処理はクライアント領域全体に利くはずなので
ひとつのクライアント領域で一部をスクロールと言うのは普通にやったのでは
出来ないと思います。
ひとつのクライアント領域に配置されたものは全て同じ座標系で配置されて
いますから、自動で一部だけと言うのは基本的に無理でしょう。
移動させたいコントロールだけ自前でぐりぐり動かせば出来るかもしれませんけれど、
スムーズにスクロールできるかは疑問ですね。

スクロールさせたい部分だけ別ウインドウにして制御すれば可能かもしれません。
別ウインドウにしたとしてもウインドウのエッジを無しにしてしまって
別のウインドウ上に重ねてしまうと区別が付きませんし。

但し、実際にはスクロールする部分としない部分は明示的にわかった方が良いと
思いますので、普通に別ウインドウにしてはめ込んだ方が良いかと思います。
ウインドウを重ねて配置する方法に関して調べて見てはどうでしょう?


返信引用
PATIO
(@patio)
Famed Member
結合: 3年前
投稿: 2660
 

SDIでやっているのであれば、固定にしたい部分とスクロールさせたい部分を
分けてしまってViewを2ペインにした方が楽かもしれません。
そうすれば、自前でゴリゴリやらなくても済むのではないでしょうか。


返信引用
APE
 APE
(@APE)
ゲスト
結合: 15年前
投稿: 4
Topic starter  

回答ありがとうございます。

基本的に、スクロールバーは自分でコントロールを配置して
制御するのがよさそうですね。

フォームビューでのデフォルトダイアログの
水平スクロールバー処理は、OnHScroll関数内で処理されているので、
そこで、部分的にスクロールしない領域を定義することもできるとは
思うのですが、なかなか思うように動作しません。
指摘していただいたようにスタティック領域等の別ウィンドウを作成し、
重ねて見るという方法でも、検討しています。

アプリの概要として、
グラフのチャートエリアを常に固定し、
プロットエリアだけスクロールする仕様となっています。

左右や上下分割ということであればペイン分割も使用できますが、
今回の場合は、少し適用するのは難しそうです。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました