TabControl控件多个tab页显示有问题!

findfriend 2013-07-03 01:07:03
问题描述:
我现在有一个TabControl控件,该控件有12个Tab页。所以,Tab显示需要2行。我的实现代码逻辑如下:
 CDialog m_pTabs[12];
CDialog tabPage;
for (int i=0; i < 12; i++) {
m_pTabs[0] = &tabPage;
tabControl.InsertItem(i, _T("test"));
}
tabPage.Create(IDD_TAB_DLG, &tabControl);
CRect rc;
tabControl.GetClientRect(rc);

rc.top += 40;
rc.bottom += 40;

for (int i = 0; i < 12; i++) {
m_pTabs[i]->MoveWindow(&rc);
m_pTabs[i]->ShowWindow(SW_HIDE);
}
m_pTabs[0]->ShowWindow(SW_SHOW);


现在的问题是:
1)如果我将TabControl的“Multiline”属性设置为“FALSE",则能正常显示;
2)如果我将TabControl的“Multiline”属性设置为“TRUE",则界面启动后,Tab区显示空白。

哪位大侠遇到过这样的问题?请指教!

谢谢!
...全文
473 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2013-08-09
  • 打赏
  • 举报
回复
您好 我是本版版主 此帖已多日无人关注 请您及时结帖 如您认为问题没有解决可按无满意结帖处理 另外本版设置了疑难问题汇总帖 并已在版面置顶 相关规定其帖子中有说明 您可以根据规定提交您帖子的链接 如您目前不想结帖只需回帖说明 我们会删除此结帖通知 见此回复三日内无回应 我们将强制结帖 相关规定详见界面界面版关于版主结帖工作的具体办法
schlafenhamster 2013-07-09
  • 打赏
  • 举报
回复
“这个Dialog不能正确显示” 在 对话框 的 init 断点看看。
findfriend 2013-07-08
  • 打赏
  • 举报
回复
首先谢谢schlafenhamster和zgl7903 的帮助。 TabControl可以制动显示多行 这个没问题, 只要将Multiline设置为True,则如果tab页多的话,会自动分两行显示。 现在的问题是:我程序第一起来的时候,tab1里显示的是白板,但是,我按一下其他的tab也再回到这个tab也就不是白板了,能正常显示。 这个问题让人很困惑! 还请二位大侠再研究一下哈。 问题解了我再散分哈^_^
findfriend 2013-07-08
  • 打赏
  • 举报
回复
对的,tab1里显示的是m_pTabs[0]这个Dialog,我设置的selectIndex = 0 ;所以,程序逻辑没问题。 但是,程序一起来的时候,这个Dialog不能正确显示。
schlafenhamster 2013-07-08
  • 打赏
  • 举报
回复
“tab1里显示的是白板” tab1 里有什么 对话框 ? 当前 激活的是不是 tab1 ?
zgl7903 2013-07-03
  • 打赏
  • 举报
回复
CRect rc;
tabControl.GetClientRect(rc);
tabControl.AdjustRect(FALSE, &rc);
for (int i = 0; i < 12; i++) 
{
  m_pTabs[i]->MoveWindow(&rc);
  m_pTabs[i]->ShowWindow(SW_HIDE);
}
schlafenhamster 2013-07-03
  • 打赏
  • 举报
回复
不好意思“是 Tab 中 文字(头) 可以 2行, 不是 2行 Tab 。”说错了。 “Multiline”属性设置为“TRUE",后 是可以 显示 2 行 tab 。 不过 它 自己 就可以 显示 2行,不需要: for (int i = 0; i < 12; i++) { m_pTabs[i]->MoveWindow(&rc); m_pTabs[i]->ShowWindow(SW_HIDE); } 吧 我有个 6个 tab 的 dlg。 把 dlg 宽 缩小后。 就 可以 有 2行 tab 分别 为: tab1 tab2 tab3 tab4 tab5 tab6. 我 没有 移动 tab。
schlafenhamster 2013-07-03
  • 打赏
  • 举报
回复
“TabControl的“Multiline”属性设置为“TRUE",则界面启动后” 是 Tab 中 文字(头) 可以 2行, 不是 2行 Tab 。 一般 是 用 “+” 或者 ‘》’ 表示 后面 还有。

15,979

社区成员

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

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