Want to solve: Warning: Creating a pane with no CDocument



Hello, I have doc-view program (SDI-type). My frame window class creates a CSplitterWnd with two panes. I'm getting the message in the subject when creating the pane views: Warning: Creating a pane with no CDocument. What have I done wrong? I've cut down the implementation of my frame window to:
FrameWindow.h:
#pragma once

#include "stdafx.h"

class FrameWindow : public CFrameWnd
{
public:
FrameWindow();

protected:
virtual BOOL LoadFrame(UINT, DWORD, CWnd *, CCreateContext *);

virtual BOOL OnCreateClient(LPCREATESTRUCT, CCreateContext *);

DECLARE_DYNCREATE(FrameWindow)

private:
/* The docs say: A CSplitterWnd object is usually embedded in a
parent CFrameWnd or CMDIChildWnd object. */
CSplitterWnd splitter_;
};

FrameWindow.cpp:
#include "FrameWindow.h"
#include "WindowView.h"

IMPLEMENT_DYNCREATE(FrameWindow, CFrameWnd)

FrameWindow::FrameWindow()
{
VERIFY(Create(NULL, _T("Show Styles"), WS_OVERLAPPEDWINDOW, CRect(10, 10, 1024, 768)));
}

BOOL
FrameWindow::LoadFrame(UINT nIDResource, DWORD dwDefaultStyle, CWnd *pParentWnd, CCreateContext *pContext)
{
/* If we execute CFrameWnd::LoadFrame() the program becomes very unhappy... */
return TRUE;
}

BOOL
FrameWindow::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext *pContext)
{
const int rows = 1;
const int columns = 2;

/* A CSplitterWnd should be created in OnCreateClient() according to the docs. */
VERIFY(splitter_.CreateStatic(this, rows, columns));

CRect rect;

GetClientRect(rect);

/* row = 0, column = 0 */
VERIFY(splitter_.CreateView(0, 0, RUNTIME_CLASS(WindowView), CSize(rect.right - 400, 0), pContext));
/* row = 0, column = 1 */
VERIFY(splitter_.CreateView(0, 1, RUNTIME_CLASS(WindowView), CSize(rect.right - (rect.right - 400), 0), pContext));

return TRUE;
}

As you can see I'm using the same view for each pane right now, that will change when I get this problem sorted. WindowView is very simple, nothing added at all at the moment. This practically my first docview program so I guess it's something simple. Hope I posted enough information. Running MSVC++ 8.0 SP1 on fully patched WinXP Pro.

- Eric
.



Relevant Pages

  • Re: Want to solve: Warning: Creating a pane with no CDocument
    ... What's the value of pContext->m_pCurrentDoc in your OnCreateClient? ... CSplitterWnd with two panes. ... creating the pane views: Warning: Creating a pane with no CDocument. ... virtual BOOL LoadFrame(UINT, DWORD, CWnd *, CCreateContext *); ...
    (microsoft.public.vc.mfc)
  • Re: Want to solve: Warning: Creating a pane with no CDocument
    ... BOOL Application::InitInstance ... a CSplitterWnd with two panes. ... I'm getting the message in the subject when creating the pane views: Warning: Creating a pane with no CDocument. ... virtual BOOL LoadFrame(UINT, DWORD, CWnd *, CCreateContext *); ...
    (microsoft.public.vc.mfc)
  • Re: Want to solve: Warning: Creating a pane with no CDocument
    ... creates a CSplitterWnd with two panes. ... I'm getting the message in the subject when creating the pane views: Warning: Creating a pane with no CDocument. ... virtual BOOL LoadFrame(UINT, DWORD, CWnd *, CCreateContext *); ... Why do you call the frame Create in the constructor. ...
    (microsoft.public.vc.mfc)
  • Re: Want to solve: Warning: Creating a pane with no CDocument
    ... Typcially the frame gets created automatically during the call ... a CSplitterWnd with two panes. ... when creating the pane views: Warning: Creating a pane with no ... virtual BOOL LoadFrame(UINT, DWORD, CWnd *, CCreateContext *); ...
    (microsoft.public.vc.mfc)
  • Re: Want to solve: Warning: Creating a pane with no CDocument
    ... a CSplitterWnd with two panes. ... I'm getting the message in the subject when creating the pane views: Warning: Creating a pane with no CDocument. ... Why do you call the frame Create in the constructor. ...
    (microsoft.public.vc.mfc)

Loading