wxWidgets第六课 EVT_ERASE_BACKGROUND背景擦除事件

简介:

说明

      默认情况下,OnEraseBackground函数负责背景颜色的渲染,OnPaint函数负责前景颜色的渲染。系统提供的默认的背景颜色函数将背景渲染成白色,会引起控件区域闪烁。可以通过重写背景擦除事件处理函数,减少闪烁


例子


void OnEraseBackground(wxEraseEvent& event);


EVT_ERASE_BACKGROUND(CDownLinkPlaybackSliderCtrl::OnEraseBackground)


void CDownLinkPlaybackSliderCtrl::OnEraseBackground(wxEraseEvent& event)

{

wxClientDC dc(this);

wxSize size = this->GetSize();

int width = size.GetWidth();

int height = size.GetHeight();

int middleHeight = height/2;

dc.SetPen(wxPen(*wxBLACK, 2));

// dc.DrawLine(0, middleHeight-1, width, middleHeight-1);

// dc.DrawLine(0, middleHeight+1, width, middleHeight+1);

dc.SetBrush(*wxBLACK_BRUSH);

dc.DrawRectangle(2, middleHeight-2, width-4, 4);


int topDialHeight = middleHeight-2;

int buttonDialHeight = middleHeight+2;


int averageGap = (width-4)/25;

int count = 0;

for (int i=2; i<width-4; i=i+averageGap)

{

dc.DrawLine(i, topDialHeight, i, topDialHeight-2);

dc.DrawLine(i, buttonDialHeight, i, buttonDialHeight+2);

if (count%4==0)

{

char szText[4] ={0};

sprintf(szText, "%d", count);

wxRect rect(i-3, topDialHeight-2-3, 3, 3);

dc.DrawLabel(szText, rect, 1);

}

count++;

}


dc.SetBrush(*wxWHITE_BRUSH);

dc.DrawRectangle(m_sliderLen-3, middleHeight - 2, 4, 6);

}


     本文转自fengyuzaitu 51CTO博客,原文链接:http://blog.51cto.com/fengyuzaitu/1954794,如需转载请自行联系原作者





相关文章
|
9月前
|
安全 图形学
【unity实战】事件(Event)的基本实战使用
【unity实战】事件(Event)的基本实战使用
394 1
|
SQL Shell 数据库
巧用Event发现问题
巧用Event发现问题
117 0
|
API vr&ar 图形学
【100个 Unity小知识点】☀️ | Unity中使用代码查询Draw call、Tris和Verts等信息
Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 。 包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助 Unity 将创意变成现实。 Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机、平板电脑、PC、游戏主机、增强现实和虚拟现实设备。 也可以简单把 Unity 理解为一个游戏引擎,可以用来专业制作游戏!
【100个 Unity小知识点】☀️ | Unity中使用代码查询Draw call、Tris和Verts等信息
|
C# 数据安全/隐私保护 Windows
WPF Event 在 Command 中的应用初级篇,支持所有Event 展示松耦合设计的全部代码 - 解决TextBoxBase.TextChanged或者TextBox.TextChanged等类似事件绑定问题。
原文:WPF Event 在 Command 中的应用初级篇,支持所有Event 展示松耦合设计的全部代码 - 解决TextBoxBase.TextChanged或者TextBox.TextChanged等类似事件绑定问题。
1364 0
|
Windows
背水一战 Windows 10 (68) - 控件(控件基类): UIElement - Pointer 相关事件, Tap 相关事件, Key 相关事件, Focus 相关事件
原文:背水一战 Windows 10 (68) - 控件(控件基类): UIElement - Pointer 相关事件, Tap 相关事件, Key 相关事件, Focus 相关事件 [源码下载] 背水一战 Windows 10 (68) - 控件(控件基类): UIElement - Poin...
1235 0