VC++初心者です。
VC++6.0を使っています。
フォーム上にMSFlexGridを配置して、OnSIZEメッセージ時にMoveWindow関数でMSFlexGrid
のサイズをフォームに合わせて調整しています。
一見うまく動いているように見えるのですが、フォームを小さくし、グリッドも小さくな
ったのに、設計時のグリッドの大きさに合わせてフォーム自身がスクロールできるように
なってしまいます。
もちろんグリッドはスクロールできるようになって正解です。
フォームがスクロールできなければ目的の動作に近い形になるのですが、どのようにすれ
ばフォームのスクロールバーを表示できないようにできるでしょうか?
よろしくお願いいたします。
CFormView派生クラスのOnSizeメソッドで、
CFormView::OnSize();
となっているところを
CView::OnSize();
と書き換えるとどうでしょうか?
Blueさん、早速の回答ありがとうございました。
OnSIZEメソッドはCMainFrame上にあります。
( http://m--takahashi.com/bbs/pastlog/A2100/A2057.html
を参考にさせていただきました。)
その場合はどうすればよろしいでしょうか?
これでいけるのではないかと。
void CMyView::OnInitialUpdate()
{
...
SetScrollSizes(MM_TEXT, CSize(0, 0));
}
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;
・
・
・
Blueさん、たいちうさんありがとうございました。
>たいちうさん
そのようにしたところ、望んでいた動きになりました。
>Blueさん
そのように変えてみます。
ありがとうございました。