在最小化和最大化窗口时,控制的背景变得暗淡

时间:2016-12-14 04:18:44

标签: visual-c++ mfc cedit

最小化和最大化窗口后,控件背景会发生变化。 我希望背景相同且透明。

Before minimizing the window

After maximizing the window

这是一个ActiveX控件。可以在多个项目中使用。 CEdit是这个控件的基类,我在其中添加了一些额外的功能。 我尝试在OnCtlColor和OnCtlColor中设置Bkmode,但它没有用完。

1 个答案:

答案 0 :(得分:0)

我通过获取背景颜色并填充控件的rec来解决这个问题

BOOL CComboBoxCtrl::OnEraseBkgnd(CDC* pDC) 
{
COleControl::OnEraseBkgnd(pDC);
RECT rc,rc1;
GetClientRect(&rc);
// Get the color from the parent window
COLORREF crBkgnd = COleControl::AmbientBackColor();

//Fill the rect to overcome the black background issue
pDC->FillSolidRect(&rc,crBkgnd);

if(inputbox != NULL)
    inputbox->Invalidate(TRUE);
return S_OK;

}