在我CMFCMenuButton
使用 MSVC 2013 的 C++ MFC 项目中。
当我切换高对比度模式时,按钮未正确重绘(为了比较,显示正常按钮):
调用Invalidate()
或ShowWindow(SW_HIDE);ShowWindow(SW_SHOW);
似乎没有效果 - 即使最小化对话框也不会导致正确的重绘。如何强制按钮使用更新的系统颜色重新绘制?
更新:在切换对比度模式后强制颜色只会使按钮文本可见,但按钮本身,即边框,不可见。
m_ctrlOkButton.SetFaceColor(::GetSysColor(COLOR_BTNFACE));
m_ctrlOkButton.SetTextColor(::GetSysColor(COLOR_BTNTEXT));