3分割のスタティックウィンドウを作りたい – プログラミング – Home

3分割のスタティックウィンドウを作りた...
 
通知
すべてクリア

[解決済] 3分割のスタティックウィンドウを作りたい


はまち
 はまち
(@はまち)
ゲスト
結合: 24年前
投稿: 146
Topic starter  

下のような3分割されたスタティックウィンドウを作りたいと思っています。

|--------------------------------------------------------|
| | |
| | |
| | |
| | |
| | |
|--------------------------------------------------------|
| |
| |
|--------------------------------------------------------|

ソースコードを次のように書きました。
BOOL CMainFrame::OnCreateClient( LPCREATESTRUCT /*lpcs*/,
CCreateContext* pContext)
{
if( !m_wndSplitter.CreateStatic( this, 2, 1 ) ||
!m_wndSplitter.CreateView( 1, 0, RUNTIME_CLASS( CParameterView ),
CSize(400,100), pContext ) ||
!m_wndSplitter2.CreateStatic( &m_wndSplitter, 1, 2, WS_CHILD
| WS_VISIBLE, m_wndSplitter.IdFromRowCol( 0, 0 ) ) ||
!m_wndSplitter2.CreateView( 0, 1, RUNTIME_CLASS( CInduView ),
CSize(300,400), pContext ) ||
!m_wndSplitter2.CreateView( 0, 0, RUNTIME_CLASS( CParameterNowView ),
CSize(100,400), pContext ))
return FALSE;

        ・
        ・
        ・

return TRUE;
}

しかし、実際に出来上がるのは、下のように上の二つのウィンドウがつぶされているようなものになってしまいます。
|--------------------------------------------------------|
| | |←この行はほとんどありません。
|--------------------------------------------------------|
| |
| |
| |
| |
| |
| |
| |
|--------------------------------------------------------|

真中のバーを下に下げると、上の二つのウィンドウにも表示させたいものがでてるので、ウィンドウ自体はできてる
ようです。どうにか起動時から上のウィンドウがつぶされていないようにするにはどうすればいいでしょうか。
とても基本的なことかもしれませんが、よろしくお願いいたします。


引用未解決
トピックタグ
重
 重
(@重)
ゲスト
結合: 25年前
投稿: 84
 

ビューサイズを設定していない為です。
CSplitterWndクラスにSetColumnInfo、SetRowInfoと言った関数が用意されています。

OnCreateClient関数でビュー分割した後にビューサイズを指定すればOKです。

詳細はMSDNに調べてみて下さい。
その後、わからないところがあれば再度書き込みをして下さい。分かる範囲でお答えします。


返信引用
はまち
 はまち
(@はまち)
ゲスト
結合: 24年前
投稿: 146
Topic starter  

重さん、また、申し訳ないです。いくらやってもできなかったもので、、、。早速、試してみます。


返信引用
はまち
 はまち
(@はまち)
ゲスト
結合: 24年前
投稿: 146
Topic starter  

重さん、できました。やっぱり、SetRowInfoでよかったようです。

m_wndSplitter2.CreateView( 0, 1, RUNTIME_CLASS( CInduView ),CSize(300,400), pContext )

などの第4パラメータで初期値を入れているから大丈夫かと思っていたんですが、もう一度、値を設定しなくては
いけないんですね。不思議です。もし、どうしてだかご存知なら、今後の勉強の為に教えてください。よろしく
お願いします。


返信引用
重
 重
(@重)
ゲスト
結合: 25年前
投稿: 84
 

第4パラメータは「新しいビューの初期サイズ」を指定します。

これは「ビューの表示サイズ」ではなく「新しいビューの初期サイズ」です。
ですから、これで初期サイズは間違いなく設定されています。(GetPaneで確認できます)

しかし、ペインの幅は指定していないのでウインドがつぶれた形で表示されていたわけです。
(指定なしの場合に表示するサイズの決定方法は判らないですが・・・)


返信引用
はまち
 はまち
(@はまち)
ゲスト
結合: 24年前
投稿: 146
Topic starter  

なるほど。そういうことだったんですね。よくわかりました。でも、よくそこまで知ってますね。こちらにも
びっくりです。

 ところで、話は変わりますが、やっとこないだの、マクロの2重定義回避のやり方がわかってきました。とても
便利な機能ですね。いろいろなところで使えて大助かりです。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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