码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-05-01 00:25:33      阅读:291      评论:0      收藏:0      [点我收藏+]

标签:

如下图,在棋盘右侧添加了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);
}

 

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

技术分享

 

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

标签:

原文地址:http://www.cnblogs.com/cpp520/p/4470146.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!