フォームを縮小したときに自動的に表示されるスクロールバーを表示させたくない – プログラミング – Home

フォームを縮小したときに自動的に表示さ...
 
通知
すべてクリア

[解決済] フォームを縮小したときに自動的に表示されるスクロールバーを表示させたくない


TRON
 TRON
(@TRON)
ゲスト
結合: 17年前
投稿: 16
Topic starter  

VC++初心者です。
VC++6.0を使っています。

フォーム上にMSFlexGridを配置して、OnSIZEメッセージ時にMoveWindow関数でMSFlexGrid
のサイズをフォームに合わせて調整しています。
一見うまく動いているように見えるのですが、フォームを小さくし、グリッドも小さくな
ったのに、設計時のグリッドの大きさに合わせてフォーム自身がスクロールできるように
なってしまいます。
もちろんグリッドはスクロールできるようになって正解です。
フォームがスクロールできなければ目的の動作に近い形になるのですが、どのようにすれ
ばフォームのスクロールバーを表示できないようにできるでしょうか?

よろしくお願いいたします。


引用未解決
トピックタグ
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

CFormView派生クラスのOnSizeメソッドで、

CFormView::OnSize();

となっているところを

CView::OnSize();

と書き換えるとどうでしょうか?


返信引用
TRON
 TRON
(@TRON)
ゲスト
結合: 17年前
投稿: 16
Topic starter  

Blueさん、早速の回答ありがとうございました。

OnSIZEメソッドはCMainFrame上にあります。
http://m--takahashi.com/bbs/pastlog/A2100/A2057.html
を参考にさせていただきました。)

その場合はどうすればよろしいでしょうか?


返信引用
たいちう
 たいちう
(@たいちう)
ゲスト
結合: 23年前
投稿: 662
 

これでいけるのではないかと。
void CMyView::OnInitialUpdate()
{
...
SetScrollSizes(MM_TEXT, CSize(0, 0));
}


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

FormViewの上に乗っているものをFrameクラスで処理させるのはどうかなぁと。

> http://m--takahashi.com/bbs/pastlog/A2100/A2057.html
の回避方法ではなく、CFormViewの派生クラスのOnSizeメソッドでMoveWindow対象のウィ
ンドウが作成済みかどうかチェックするようにしたほうが良いです。

CView::OnSize(nType, cx, cy);

// 作成済みか
if (this->m_MSFlexGrid1.GetSafeHwnd() != NULL)
{
CRect rcClient;



返信引用
TRON
 TRON
(@TRON)
ゲスト
結合: 17年前
投稿: 16
Topic starter  

Blueさん、たいちうさんありがとうございました。

>たいちうさん

そのようにしたところ、望んでいた動きになりました。

>Blueさん

そのように変えてみます。

ありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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