在对CButton进行子类化时,我希望按钮的颜色在每次按下按钮时递增。但是下面的代码对背景颜色没有任何影响。但是,文本显示"c“表示递增。thx
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++;
}发布于 2012-04-13 23:25:40
如果你想改变你的按钮的绘制方式,你应该实现CMyButton::DrawItem (覆盖CButton::DrawItem),并在那里进行绘制。在OnLButtonDown中,您只需执行以下操作:
c++;
Invalidate();您将希望c成为CMyButton的成员,而不是OnLButtonDown的本地成员。
https://stackoverflow.com/questions/10143533
复制相似问题