请大家帮我看一下这段,很简单,还是View和CTabCtrl问题。

zhaoxinghan 2006-03-07 01:32:42
int CPageTestView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
m_SatChsDlg = new CSatChsView();

CRect rect;

m_TabCtrl.Create(WS_CHILD|TCS_BOTTOM,rect,this,1);

TCITEM item;

item.mask = TCIF_TEXT;
item.pszText = "第一页";
m_TabCtrl.InsertItem (0,&item);
item.pszText ="第二页";
m_TabCtrl.InsertItem (1,&item);

m_SatChsDlg->Create(IDD_PAGE1DLG,&m_TabCtrl); //这句出错了

m_SatChsDlg->SetWindowPos(NULL,10,30,400,100,SWP_SHOWWINDOW); //这句出错了

return 0;
}

void CPageTestView::OnSize(UINT nType, int cx, int cy)
{
CView::OnSize(nType, cx, cy);

this->GetClientRect(&m_rect);

m_TabCtrl.SetWindowPos(&wndTop,m_rect.left,m_rect.top,m_rect.right-m_rect.left
,m_rect.bottom-m_rect.top,SWP_SHOWWINDOW);

CRect rect1;

m_TabCtrl.GetItemRect(0,rect1);
}


其中CPageTestView是CView的派生类,m_TabCtrl的声明是CTabCtrl m_TabCtrl; m_SatChsDlg是一个自己划的对话框,继承CDialog,为CSatChsView* m_SatChsDlg;(CSatChsView是CDialog派生),Style设成了Child和Border = none,可是为什么运行时还报错啊?
...全文
77 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhaoxinghan 2006-03-07
  • 打赏
  • 举报
回复
顶一下,大家多帮帮忙啊。
zhaoxinghan 2006-03-07
  • 打赏
  • 举报
回复
我的CTabCtrl是填满客户区的,m_SatChsDlg是准备在第一页显示的页面。
zhaoxinghan 2006-03-07
  • 打赏
  • 举报
回复
不是很明白,Dialog里边的CTabCtrl控件不是可以用Create创建属性页的么?难道在CView里边就不可以了么?我刚才尝试了一下CFormView,也出错。谁能说说SDI的客户区里创建类似TabCtrl的分页显示的方法啊?最好能给段代码。
bohlee 2006-03-07
  • 打赏
  • 举报
回复
m_SatChsDlg->Create(IDD_PAGE1DLG,&m_TabCtrl); //这句出错了

m_SatChsDlg->SetWindowPos(NULL,10,30,400,100,SWP_SHOWWINDOW); //这句出错了
都错了。你想创建窗口?还是想创建控件?如果创建窗口,new已经创建了,但m_SatChsDlg = new CSatChsView();不对。创建控件应该在窗口类里创建,不应该在这里创建,直接在对应的自己划的对话框的类里创建(create)。

好好看看基础.....

15,979

社区成员

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

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