if (GetTextColor() == m_crWindowText) // Still using system colours SetTextColor(::GetSysColor(COLOR_WINDOWTEXT)); // set to new system colour if (GetTextBkColor() == m_crWindowColour) SetTextBkColor(::GetSysColor(COLOR_WINDOW)); if (GetBkColor() == m_crShadow) SetBkColor(::GetSysColor(COLOR_3DSHADOW)); if (GetFixedTextColor() == m_crWindowText) SetFixedTextColor(::GetSysColor(COLOR_WINDOWTEXT)); if (GetFixedBkColor() == m_cr3DFace) SetFixedBkColor(::GetSysColor(COLOR_3DFACE)); m_crWindowText = ::GetSysColor(COLOR_WINDOWTEXT); m_crWindowColour = ::GetSysColor(COLOR_WINDOW); m_cr3DFace = ::GetSysColor(COLOR_3DFACE); m_crShadow = ::GetSysColor(COLOR_3DSHADOW); }
void CGridCtrl::OnSysColorChange()
{
CWnd::OnSysColorChange();
if (GetTextColor() == m_crWindowText) // Still using system colours
SetTextColor(::GetSysColor(COLOR_WINDOWTEXT)); // set to new system colour
if (GetTextBkColor() == m_crWindowColour)
SetTextBkColor(::GetSysColor(COLOR_WINDOW));
if (GetBkColor() == m_crShadow)
SetBkColor(::GetSysColor(COLOR_3DSHADOW));
if (GetFixedTextColor() == m_crWindowText)
SetFixedTextColor(::GetSysColor(COLOR_WINDOWTEXT));
if (GetFixedBkColor() == m_cr3DFace)
SetFixedBkColor(::GetSysColor(COLOR_3DFACE)); m_crWindowText = ::GetSysColor(COLOR_WINDOWTEXT);
m_crWindowColour = ::GetSysColor(COLOR_WINDOW);
m_cr3DFace = ::GetSysColor(COLOR_3DFACE);
m_crShadow = ::GetSysColor(COLOR_3DSHADOW);
}
这是链接,讲的很复杂,但是里面有你需要的。
自己找吧。