Formview 里用TAB控件,代码很简单。

baobaodediaozhui 2011-11-10 05:20:01
我建了一个单文档的工程,视图类继承了Formview,我在void CKeHuDuanView::OnInitialUpdate()//KeHuDuanView为工程名字.
里void CKeHuDuanView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
GetParentFrame()->RecalcLayout();
ResizeParentToFit();
/********************************/
//初始化m_tab控件
m_tab.InsertItem(0," 11 ");
m_tab.InsertItem(1," 22 ");
m_tab.InsertItem(2," 33 ");

//建立属性页各页
page0.Create(IDD_DIALOG0,GetDlgItem(IDC_TAB1));
page1.Create(IDD_DIALOG1,GetDlgItem(IDC_TAB1));
page2.Create(IDD_DIALOG2,GetDlgItem(IDC_TAB1));
//设置页面的位置在m_tab控件范围内
CRect rect;
m_tab.GetClientRect(&rect);
rect.top+=20;
rect.bottom-=4;
rect.left+=4;
rect.right-=4;
page0.MoveWindow(&rect);
page1.MoveWindow(&rect);
page2.MoveWindow(&rect);
page1.ShowWindow(TRUE);
m_tab.SetCurSel(1);
}
在void CKeHuDuanView::OnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult)
{
int CurSel;
CurSel=m_tab.GetCurSel();
switch(CurSel)
{
case 0:
page0.ShowWindow(TRUE);
page1.ShowWindow(FALSE);
page2.ShowWindow(FALSE);
break;
case 1:
page0.ShowWindow(FALSE);
page1.ShowWindow(TRUE);
page2.ShowWindow(FALSE);
break;
case 2:
page0.ShowWindow(FALSE);
page1.ShowWindow(FALSE);
page2.ShowWindow(TRUE);
break;
default: ;
}

*pResult = 0;

}
在下面的消息映射表里添加了消息映射.
BEGIN_MESSAGE_MAP(CKeHuDuanView, CFormView)
//{{AFX_MSG_MAP(CKeHuDuanView)
// NOTE - the ClassWizard will add and remove mapping macros here.
// DO NOT EDIT what you see in these blocks of generated code!
//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CFormView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CFormView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CFormView::OnFilePrintPreview)
// ON_COMMAND(IDC_TAB1,CKeHuDuanView::OnSelchangeTab1)
ON_NOTIFY(TCN_SELCHANGE, IDC_TAB1, OnSelchangeTab1)//这个必须添上,不然不能响应鼠标的单击
// ON_COMMAND(TCN_SELCHANGE, IDC_TAB1, OnSelchangeTab1)//这个必须添上,不然不能响应鼠标的单击
END_MESSAGE_MAP()
可是现在的情况是
1)我单击Tab后,没有一点反应。以前我在基于对话框工程里就成功了。怎么回事啊?
2)我想改变Tab的位置,让它一直在左下角。以前在对话框工程里改变CRect rect;
m_tab.GetClientRect(&rect);
rect.top+=20;
rect.bottom-=4;//比如改变这个值
rect.left+=4;
rect.right-=4;
的值就行,现在在SDI都没用了,求解。
...全文
134 5 点赞 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
baobaodediaozhui 2011-11-11
在这么特殊的日子,我得在顶一下。
  • 打赏
  • 举报
回复
baobaodediaozhui 2011-11-10
它不变化啊,就是点了后不切换视图(这儿是对话框)。怎么回事呢?大神们呢?
  • 打赏
  • 举报
回复
baobaodediaozhui 2011-11-10
[Quote=引用 2 楼 heksn 的回复:]

那你弄个对话框 让对话框占满FormView
[/Quote]
呵呵,什么意思啊?我有三个对话框哦。
  • 打赏
  • 举报
回复
那你弄个对话框 让对话框占满FormView
  • 打赏
  • 举报
回复
baobaodediaozhui 2011-11-10
木人么?代码虽多,但不难啊!没有人说说么?
  • 打赏
  • 举报
回复
相关推荐
发帖
界面
创建于2007-09-28

1.5w+

社区成员

VC/MFC 界面
申请成为版主
帖子事件
创建了帖子
2011-11-10 05:20
社区公告
暂无公告