当前位置: 代码迷 >> VC >> 创建静态切分窗口时的有关问题
  详细解决方案

创建静态切分窗口时的有关问题

热度:5923   发布时间:2013-02-25 00:00:00.0
创建静态切分窗口时的问题
弱问:创建静态切分窗口时候
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) 
{
if (!m_wndSplitter.CreateStatic(this, 1, 2))

return FALSE;  
if (!m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CSSplitView),CSize(150,100),pContext)||
  !m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CArtView),CSize(100,100),pContext))
{
  m_wndSplitter.DestroyWindow();
return FALSE;
}
 
return TRUE;
在第一个if语句添加上{}的话,运行时候就出错,去掉{}就运行正确,这是为什么呢?
谢谢~~

------解决方案--------------------------------------------------------
if (!m_wndSplitter.CreateStatic(this, 1, 2))
表示创建失败,加上{}后,在创建成功时{}中的代码不会执行,CreateStatic成功但没有CreateView当然出错。
------解决方案--------------------------------------------------------
呵呵}位置错了 
if (!m_wndSplitter.CreateStatic(this, 1, 2))
{
return FALSE;
if (!m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CSSplitView),CSize(150,100),pContext)||
!m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CArtView),CSize(100,100),pContext))
{
m_wndSplitter.DestroyWindow();
return FALSE;
}
}
改为
if (!m_wndSplitter.CreateStatic(this, 1, 2))
{
return FALSE;
}

if (!m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CSSplitView),CSize(150,100),pContext)||
!m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CArtView),CSize(100,100),pContext))
{
m_wndSplitter.DestroyWindow();
return FALSE;
}
  相关解决方案