CScrollViewについて – プログラミング – Home

通知
すべてクリア

CScrollViewについて


しんた
 しんた
(@しんた)
ゲスト
結合: 23年前
投稿: 48
Topic starter  

度々、お世話になります。

また、教えてください。

MDIで、アプリケーションを作成しているのですが、
その、子ウインドウを、スクロールさせたいのです。

クラスを作成するときに、基本クラスとして、CScrollViewを選択し、子ウインドウを作成しま
した。
そうすると、OnInitialUpdate()に、
CSize sizeTotal;
sizeTotal.cx = sizeTotal.cy = 100;
SetScrollSizes(MM_TEXT, CSize(10, 10));

が、作成され、これで、スクロールは勝手に機能すると思っていたのですが、
いざ、実行してみると、スクロールバーすら、表示されず、、、

いろいろ、掲示板をあさってみて、試してみたのですが、
結局は、CScrollViewなら、最初から動くみたいなことをかかれていたので、
どう、対処すればいいかわからず、質問させていただきました。

ちなみに、試してみたものは、CChildFrmから、派生させて作ったクラス(子ウインドウを作る
ときに使うやつ)のPreCreateWindowに上記を書いてみたのですが、動かず。。。

なにか、足りない部分があるのでしょうか??

ご助言ください。よろしくお願いします。

環境 Win2000、VC++6.0、MFC、MDI


引用解決済
トピックタグ
REE
 REE
(@REE)
ゲスト
結合: 24年前
投稿: 240
 

試してみたら下記の様になりましたが、CSize(10, 10)に変更したのはなぜでしょうか?

CSize sizeTotal;
// TODO: このビューのサイズの合計を計算します。
sizeTotal.cx = sizeTotal.cy = 100;
SetScrollSizes(MM_TEXT, sizeTotal);

ViewがこのsizeTotalの大きさ未満になると、スクロールバーが表示されます。


返信引用
しんた
 しんた
(@しんた)
ゲスト
結合: 23年前
投稿: 48
Topic starter  

失礼しました。
生成された時点ではそうなってたのですが、スクロールバーが出てこなかったので
いろいろいじって試してて、そのまま記載してしまいました。。。

このままでもスクロールバーは出てくるはずなんでしょうか?


返信引用
しんた
 しんた
(@しんた)
ゲスト
結合: 23年前
投稿: 48
Topic starter  

”このまま”っていう表現じゃわかりづらいですね。。。すみません。

生成された以下の状態に手を加えずとも、
スクロールバーは勝手に出現し操作できるカタチになるのでしょうか?

>CSize sizeTotal;
>// TODO: このビューのサイズの合計を計算します。
>sizeTotal.cx = sizeTotal.cy = 100;
>SetScrollSizes(MM_TEXT, sizeTotal);


返信引用
n
 n
(@n)
ゲスト
結合: 23年前
投稿: 159
 

sizeTotal.cx = sizeTotal.cy = 1000; <<--こうしてみては?


返信引用
しんた
 しんた
(@しんた)
ゲスト
結合: 23年前
投稿: 48
Topic starter  

ありがとうございます!!

スクロールバーは表示されるようになりました。

しかし、絵や文字をたくさん書き込み、ウインドウサイズを超えても、スクロールされません。
(操作できません)

コレには、また、なにか、書き加えが必要なのでしょうか??
出来れば、自動スクロールも入れたいのですが。。。


返信引用
n
 n
(@n)
ゲスト
結合: 23年前
投稿: 159
 

ScrollToPosition() でスクロール位置を決められます。

> 絵や文字をたくさん書き込み
この際に「現在位置」を把握しておき、ウィンドウからはみだすようであれば
適宜、この関数を使いましょう。


返信引用
n
 n
(@n)
ゲスト
結合: 23年前
投稿: 159
 

追伸:GetScrollPosition() で現在のスクロール位置をゲットできます。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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