注意:无论那种方法,都要先设置Tab控件的Style属性为fixed width.
第一种方法
MFC,tabcontrol控件改变标签大小 - CSDN博客 https://blog.csdn.net/u012702039/article/details/22668161
CSize size, size1; size.cx = 150; size.cy = 40; 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, 150, 40);
其中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 += 40; rs.bottom -= 1; rs.left -= 1; rs.right -= 1; //Tab m_tab.InsertItem(0, _T(" 通讯 ")); m_ControlDlg.Create(IDD_DIALOG_CONTROL, GetDlgItem(IDC_TAB_MAIN)); //设置子对话框尺寸并移动到指定位置 m_ControlDlg.MoveWindow(&rs);