CButtonST类的设置按钮背景是透明色函数//如何做到的
CButtonST类的设置按钮背景是透明色函数//怎么做到的?
------最佳解决方案--------------------
如果是GDI就是TransparentBlt或者自己AlphaBlend
如果是GDI+的话就是SetColorKey设置透明区
------其他解决方案--------------------
你这个问题应该是绘制的先后顺序造成的吧,也就是按钮可能在没刷新的情况下,结果主窗口刷新了,数据被刷新到了按钮上,你可以在你绘制函数里绘制背景后再让按钮绘制下。
这函数没涉及到屏蔽色呀
就是背景跑到按钮上面,变成原按钮的背景图; 加载的图标资源(前景是图案,后景是rgb(233,233,233)) 按钮显示前景图。
void CButtonST::DrawTransparent(BOOL bRepaint)
{
m_bDrawTransparent = TRUE;
// Restore old bitmap (if any)
if (m_dcBk.m_hDC != NULL && m_pbmpOldBk != NULL)
{
m_dcBk.SelectObject(m_pbmpOldBk);
} // if
m_bmpBk.DeleteObject();
m_dcBk.DeleteDC();
// Repaint the button
if (bRepaint) Invalidate();
} // End of DrawTransparent
------最佳解决方案--------------------
如果是GDI就是TransparentBlt或者自己AlphaBlend
如果是GDI+的话就是SetColorKey设置透明区
------其他解决方案--------------------
你这个问题应该是绘制的先后顺序造成的吧,也就是按钮可能在没刷新的情况下,结果主窗口刷新了,数据被刷新到了按钮上,你可以在你绘制函数里绘制背景后再让按钮绘制下。