标签:
如下图,在棋盘右侧添加了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);
}
完成后如下图,就比较正常美观了:
标签:
原文地址:http://www.cnblogs.com/cpp520/p/4470146.html