gpt4 book ai didi

c++ - CButton CDC::SetBkColor 什么都不做?

转载 作者:太空宇宙 更新时间:2023-11-04 12:10:19 24 4
gpt4 key购买 nike

在子类化 CButton 时,我希望每次按下按钮时按钮的颜色都会增加。但是以下内容对背景颜色没有任何影响。但是,文本显示“c”以递增。谢谢

void CMyButton::OnLButtonDown(UINT nFlags, CPoint point) 
{
CButton::OnLButtonDown(nFlags, point);
static int c;

CString s;
s.Format("left: %d", c*50);
this->SetWindowText(s);

////// Neither of the following change the background color
//CPaintDC dc(this);
//dc.SetBkColor(0x0 + c*50);
CDC *dc= GetDC();
dc->SetBkColor(0x0 + c*50);

c++;
}

最佳答案

如果你想改变按钮的绘制方式,你应该实现CMyButton::DrawItem(覆盖CButton::DrawItem),并在那里进行绘制。在 OnLButtonDown 中,您只需执行如下操作:

c++; 
Invalidate();

您需要 c 成为 CMyButton 的成员,而不是 OnLButtonDown 的成员。

关于c++ - CButton CDC::SetBkColor 什么都不做?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10143533/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com