クライアントウインドウのサイズ指定

[戻る]
ガラ 2008/04/10(木) 14:55:03
クライアントウインドウのサイズ指定を
PreCreateWindow()でおこなっても、サイズがかわりません。
なぜでしょうか?ご存知のかたよろしくおねがいします。

BOOL CTestA2View::PreCreateWindow(CREATESTRUCT& cs)
{
    // TODO: この位置で CREATESTRUCT cs を修正して Window クラスまたはスタ
イルを
    //  修正してください。

    cs.cy = 200 ;
    cs.cx = 200;
    return CView::PreCreateWindow(cs);
}

PATIO 2008/04/10(木) 15:57:51
これだけではなんともレスのつけようが無いと思いますよ。

作成しているアプリの構成に関して全く情報が出てません。
他の質問で書きましたは無しでお願いします。
この質問を読む人が前の質問を読んでいるとは限りません。
掲示板と言うのはそういうところです。

で、Document−Viewアーキテクチャを使ってウインドウを出す時に
CFormViewで無いならフレームウインドウのサイズの方に合わせられて
しまうのではないですか?
ウインドウのサイズを変えたいのであれば、フレームウインドウの方を
変えるべきなのでは無いかと思うのですけれど。

ガラ 2008/04/10(木) 16:15:22
PATIOさん。レスありがとうございます。
OS XP,VC++6.0.(わすれていました。すいません。)
MDIのウイザードでスケルトンをつくって、デフォルトで出る、
クライアントウインドウサイズを変えようとしているのですが、
うまくいきません。
サイズを固定して、画像データを出そうとしています。

επιστημη [HomePage] 2008/04/10(木) 16:49:30
だからー、PATIOさんは
「額縁はそのままでカンバスだけデカくしてもダメじゃね?」
と仰っております。

ガラ 2008/04/10(木) 18:27:45
επιστημηさん、レスありがとうございます。
すいません、どうも、話が合わないので、本をあれこれ調べてみたら、
クライアントウインドウという言葉の使い方がまちがえていたようです。
MDIをウイザードで作成したときの、最初にひとつついてくる、
MDIの子ウインドウというのが正しいのだとおもいます。
このウインドウのリサイズができないので、困っています。
この子ウインドウの大きさを制御することによって、
4つの子ウインドウを同時表示したりしたいと思います。

たいちう 2008/04/10(木) 20:05:16
例えばこんな方法。

void CMy0410View::OnInitialUpdate() 
{
    CView::OnInitialUpdate();
    
    GetParentFrame()->MoveWindow(10, 10, 500, 500);
}

PATIO 2008/04/11(金) 13:10:19
MDIの場合は各子ウインドウにフレームウインドウが付きます。
良く見ればわかると思います。
それぞれの子ウインドウのビュウはそれぞれの子ウインドウのフレームに
はまっている状態なのでウインドウサイズを変えたいのであれば、
子ウインドウのフレームのサイズを変えないと駄目なのです。
その変え方は既にたいちうさんが書かれているのでそれを参考にしてください。

この辺のフレームウインドウとかビュウとかの用語はちゃんと勉強した方がいいです。
あと、使う側から見たウインドウといわれている単位は実際には複数のウインドウの
集合体です。どういうウインドウがどのように組み合わさって一つのウインドウを
構成しているのかもちゃんと勉強した方がいいです。

ガラ 2008/04/11(金) 17:05:21
[[解決]]
たいちうさん、PATIOさん、レスありがとうございます。
たいちろうさん、が載せてくださった、ソースをそのまま実行しますと
子ウインドウのフレームサイズをかえることに成功しました。
ありがとうございました。
BOOL CMyView::PreCreateWindow(CREATESTRUCT& cs)
でcs.cx,cs.cyをいじってもだめですね。
子ウインドウの中にはりついているので、自動調節されてしまうということですね。

古いスレッドには追加発言できません。