
注意:无论那种方法,都要先设置Tab控件的Style属性为fixed width.
第一种方法
MFC,tabcontrol控件改变标签大小 - CSDN博客 https://blog.csdn.net/u012702039/article/details/22668161
CSize size, size1;
size.cx = ;
size.cy = ;
size1 = m_tab.SetItemSize(size);
第二种方法
MSDN:About Tab Controls (Windows) https://msdn.microsoft.com/en-us/library/bb760550(v=vs.120).aspx
进入MSDN 关于Tab Control 的官方页面,找到我们需要的修改标签位置和尺寸。
通过SetItemSize函数可以精确的设置Tab标签的尺寸。
点击进入这个函数的说明:
这一页没有实质的内容,继续点击进入详情页,终于有了说明:
于是在程序里这么写:
TabCtrl_SetItemSize(m_tab, , );
其中m_tab是控件关联的变量。
注意要设置Tab控件区域中子对话框rs.top的数值要与设置的Tab标签高度一致:
这里都设置为40,否则会出现留白或者标签的字被遮挡。
//获得IDC_TABTEST客户区大小
CRect rs;
m_tab.GetClientRect(&rs); //CWnd *pWnd = GetDlgItem(IDC_TAB_MAIN);
//pWnd->GetWindowRect(&rs);//获取控件的屏幕坐标
//cout << "Tab: " << rs.top << "," << rs.left << "," << rs.Width() << "," << rs.Height() << endl;
//调整子对话框在父窗口中的位置
rs.top += ;
rs.bottom -= ;
rs.left -= ;
rs.right -= ;
//Tab
m_tab.InsertItem(, _T(" 通讯 \n"));
m_ControlDlg.Create(IDD_DIALOG_CONTROL, GetDlgItem(IDC_TAB_MAIN));
//设置子对话框尺寸并移动到指定位置
m_ControlDlg.MoveWindow(&rs);