hur.cn - 华软网

 热门搜索

CREATESTRUCT 中的lpCreateParams为NULL

  作者:未知    来源:网络    更新时间:2011/6/12
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)

lpCreateStruct->lpCreateParams为NULL

这是怎么回事啦,怎样让它不为NULL啦。
---华软 网友回答---
CreateWindow时指定一个
---华软网友回复---
CreateWindow封装在MFC内部,不知道怎样指定窗口,默认是不是已经指定好啦,指定的是主窗口吧?

BOOL CXXXXApp::InitInstance()
{
    ......
    CMainFrame* pMainFrame = new CMainFrame;
if (!pMainFrame || !pMainFrame->LoadFrame(IDR_MAINFRAME))
{
delete pMainFrame;
return FALSE;
}
    ......
}

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
     
}

lpCreateStruct->lpCreateParams为NULL

---华软网友回复---
lpCreateParams是个自定义的参数,你要这个干什么
---华软网友回复---
通常:lpCreateStruct->lpCreateParams是为NULL
---华软网友回复---
int CFrameWnd::OnCreate(LPCREATESTRUCT lpcs)
{
ENSURE_ARG(lpcs != NULL);
CCreateContext* pContext = (CCreateContext*)lpcs->lpCreateParams;
return OnCreateHelper(lpcs, pContext);
}

int CFrameWnd::OnCreateHelper(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
if (CWnd::OnCreate(lpcs) == -1)
return -1;

// create special children first
if (!OnCreateClient(lpcs, pContext))
{
TRACE(traceAppMsg, 0, "Failed to create client pane/view for frame.\n");
return -1;
}
       .......
}

BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
  m_wndSplitter.CreateStatic(this, 1, 2);//创建一个一行两列的拆分窗口

if (!CreateTaskPanel())
return FALSE;

m_wndSplitter.CreateView(0, 1, pContext->m_pNewViewClass, CSize(300, 0), pContext);

m_wndSplitter.ShowTopBorder(FALSE, 0);
return TRUE;
}

CreateView 失败。调试进去pContext为null。      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。