最小化和最大化窗口后,控件背景发生变化。我希望背景相同且透明。
这是一个 ActiveX 控件。可以在多个项目中使用。CEdit 是这个控件的基类,我在它上面添加了一些额外的功能。我尝试在 OnCtlColor 和 OnCtlColor 中设置 Bkmode,但没有成功。
最小化和最大化窗口后,控件背景发生变化。我希望背景相同且透明。
这是一个 ActiveX 控件。可以在多个项目中使用。CEdit 是这个控件的基类,我在它上面添加了一些额外的功能。我尝试在 OnCtlColor 和 OnCtlColor 中设置 Bkmode,但没有成功。
我通过获取背景颜色并填充控件的记录解决了这个问题
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;
}