终于知道如何使Tab控件的不出现白边的方法了

如下图,在棋盘右侧添加了Tab控件,做成属性页的样子,但出现了白边,很不美观:

后来发现,需要把Tab空间的Owner Draw Fixed 设置为TRUE。但问题又来了,属性页上的标题文字不显示了,结果如图:

继续搜索,原来需要重载CTabCtrl的DrawItem函数,事实上MFC是强制要求重载的,实际操作过程如下:

void CMyTabCtrl::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct){

//获取选项卡文字内容
TCHAR szTabText[100];
TC_ITEM tci;
memset(szTabText, '\0', sizeof(szTabText));
tci.mask = TCIF_TEXT;
tci.pszText = szTabText;
tci.cchTextMax = sizeof(szTabText)-1;
GetItem(lpDrawItemStruct->itemID, &tci);
//填充选项卡背景
CDC *dc = CDC::FromHandle(lpDrawItemStruct->hDC);

//绘制选项卡文字
RECT rc;
rc=lpDrawItemStruct->rcItem;
rc.top+=3;
dc->DrawText(tci.pszText,lstrlen(tci.pszText),&rc,DT_CENTER);
}

 

完成后如下图,就比较正常美观了:

 

转载于:https://www.cnblogs.com/cpp520/p/4470146.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值