请帮忙解决我的这个问题,为什么在继承CWnd的CChildView的oncreate里面不能创建子窗口,而在mainframe里面确可以?

wraith1234 2006-04-04 09:02:59
我建立一个sdi的工程,去掉了文档/视图模式支持,就生成了一个继承CWnd的类,CChildView和一个继承CFrameWnd的类,CMainFrame
我想在CChildView里面建立一个listctrl,在oncreate写了这些代码:
CRect rect;
GetClientRect(&rect);
if(!m_ltcMember.Create(WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT|WS_EX_TOPMOST,rect,this,1))
return -1;
LV_COLUMN column;
column.pszText=L"ClientID";
column.mask=LVCF_TEXT;
m_ltcMember.InsertColumn(0,&column);
m_ltcMember.SetColumnWidth(0,100);
但是没反应,调试的时候这些也执行了.
写在onpaint里面就可以,
而且这些写在mainframe里面也可以,我想写在childview里面,怎么办?
...全文
212 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wraith1234 2006-04-05
  • 打赏
  • 举报
回复
...........真不好意思,我不知道怎么刚刚编译又可以了,显示了listctrl...
弄得我糊里糊涂了,我根本没改哪个地方啊...
我知道更改窗口函数了,movewindow();
wlwlxj 2006-04-05
  • 打赏
  • 举报
回复
MoveWindow
or
SetWindowPos
wraith1234 2006-04-05
  • 打赏
  • 举报
回复
好像不是这个样子的,我跟踪过rect,有值rect {top=0x00000000 bottom=0x000002b6 left=0x00000000 right=0x00000377} CRect
并且就算你指定大小,也不能显示,...
还有弱弱的问一句,怎么样生成那个窗口后再调整,我没看见那个函数啊?是SetWindowRgn吗?
菜牛 2006-04-04
  • 打赏
  • 举报
回复
GetClientRect(&rect);

在窗口刚创建的时候(OnCreate()中),客户区是没有大小的。你可以跟踪看看rect的值。因此,创建的子窗口,要么给定大小,要么在OnSize中调整。
wraith1234 2006-04-04
  • 打赏
  • 举报
回复
并且如果childview的oncreate里面创建了toolbar,statusbar也可以显示:
if (CWnd::OnCreate(lpCreateStruct) == -1)
return -1;

// TODO: Add your specialized creation code here
if (!m_wndToolBar.CreateEx(this) ||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
{
TRACE0("未能创建工具栏\n");
return -1; // 未能创建
}

if (!m_wndReBar.Create(this) ||
!m_wndReBar.AddBar(&m_wndToolBar) )
{
TRACE0("未能创建 Rebar\n");
return -1; // 未能创建
}

if (!m_wndStatusBar.Create(this) ||
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0("未能创建状态栏\n");
return -1; // 未能创建
}

CRect rect;
GetClientRect(&rect);
if(!m_ltcMember.Create(WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT|WS_EX_TOPMOST,rect,this,1))
return -1;
LV_COLUMN column;
column.pszText=L"ClientID";
column.mask=LVCF_TEXT;
m_ltcMember.InsertColumn(0,&column);
m_ltcMember.SetColumnWidth(0,100);
return 0;

这是怎么回事啊,郁闷死了

15,976

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧