Mfc CToolBar按钮的绘图文本标签--不同于Windows 7/10和Windows XP
我正在创建一个带有文本按钮的垂直工具栏(CToolBar,Visual Studio 2015和XP工具集)。下面是绘制文本标签的代码(为了简单起见略为缩写)(创建字体是为了垂直绘制文本) 应用程序在Windows 7或10中运行时没有问题,但在Windows XP中,文本标签的背景是白色的 导致Windows XP背景为白色的代码是否存在问题 请参阅以下图片(顶部图片为Windows 7或10屏幕截图,底部图片为Windows XP屏幕截图):Mfc CToolBar按钮的绘图文本标签--不同于Windows 7/10和Windows XP,mfc,toolbar,Mfc,Toolbar,我正在创建一个带有文本按钮的垂直工具栏(CToolBar,Visual Studio 2015和XP工具集)。下面是绘制文本标签的代码(为了简单起见略为缩写)(创建字体是为了垂直绘制文本) 应用程序在Windows 7或10中运行时没有问题,但在Windows XP中,文本标签的背景是白色的 导致Windows XP背景为白色的代码是否存在问题 请参阅以下图片(顶部图片为Windows 7或10屏幕截图,底部图片为Windows XP屏幕截图): (来源:) (来源:) // code fr
(来源:)
(来源:)
// code from http://www.codeproject.com/Articles/19653/How-to-Create-a-Dynamic-ToolBar
m_dcMem.CreateCompatibleDC(dc);
m_hBitmap = CreateCompatibleBitmap(dc->m_hDC, nWidth, nHeight);
m_pBitmap = CBitmap::FromHandle(m_hBitmap);
m_pOldBitmap = m_dcMem.SelectObject(m_pBitmap);
//draw a filled rectangle with the background (window) color
CRect rect(0, 0, nWidth, nHeight);
FillRect(m_dcMem.m_hDC, &rect, (HBRUSH)(COLOR_WINDOW));
m_dcMem.SetMapMode(MM_TEXT);
m_dcMem.SetBkMode(TRANSPARENT);
m_dcMem.SetTextColor(RGB(68, 68, 68));
//
... use m_dcMem.TextOut to draw text
//
if (m_pOldBitmap != NULL)
m_dcMem.SelectObject(m_pOldBitmap);
m_dcMem.DeleteDC();
SetBitmap(m_hBitmap);