MFC TabCtrl 控件修改标签尺寸

时间:2023-03-08 20:05:17
MFC TabCtrl 控件修改标签尺寸

注意:无论那种方法,都要先设置Tab控件的Style属性为fixed width.

MFC TabCtrl 控件修改标签尺寸

第一种方法

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 的官方页面,找到我们需要的修改标签位置和尺寸。

MFC TabCtrl 控件修改标签尺寸

通过SetItemSize函数可以精确的设置Tab标签的尺寸。

MFC TabCtrl 控件修改标签尺寸

点击进入这个函数的说明:

MFC TabCtrl 控件修改标签尺寸

这一页没有实质的内容,继续点击进入详情页,终于有了说明:

MFC TabCtrl 控件修改标签尺寸

于是在程序里这么写:

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);