初めまして、Chikunと申します。
環境 Windows2000SP4 VC++6.0SP6 MFC SDI
単純な2分割スプリッタウィンドウがうまく動作しません。
プロジェクト A にて MFC SDI(デフォルト設定)を作成し、CViewクラス B を追加します。
CFrameWnd に CSplitterWnd のメンバ変数 m_SplitWnd を追加し、OnCreatClient を
オーバーライドします。
OnCreatClient 関数内に CreateStatic / CreateView を追加します。
<MainFrame.h>-------------------------------------------------------------------
:
:
class CMainFrame : public CFrameWnd
{
:
:
public:
CSplitterWnd m_SplitWnd;
:
:
}
<MainFrm.cpp>-------------------------------------------------------------------
:
:
#include ADoc.h
#include AView.h
#include BView.h
:
:
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
m_SplitWnd.CreateStatic(this, 1, 2));
m_SplitWnd.CreateView(0, 0, RUNTIME_CLASS(CAView), CSize(100, 100),
pContext));
m_SplitWnd.CreateView(0, 1, RUNTIME_CLASS(CBView), CSize(0, 0), pContext))
return CFrameWnd::OnCreateClient(lpcs, pContext);
}
コンパイル・実行すると、左右2分割のスプリッタウィンドウが表れるはずですが、実際
には CAView 画面しか表示されません。
CreateStatic / CreateView はエラーを返していません。
Size の指定も色々変えてみましたが、変化ありません。
何か間違いや抜け等ありましたら、教えて下さい。
> return CFrameWnd::OnCreateClient(lpcs, pContext);
の行はコメントアウトしないといけなかったような。
かわりに
return TRUE;
とする。
Blueさん、ありがとうございました。
全くその通りでした。