亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

wxWidgets第十二課 wxBufferedPaintDC OnPaint函數中的雙緩存DC

發布時間:2020-07-18 11:02:12 來源:網絡 閱讀:1014 作者:fengyuzaitu 欄目:系統運維

說明

    當使用DC進行圖形渲染的過程中,會出現閃爍的問題,主要是圖形是實時渲染的,如果先渲染在一塊內存中,然后渲染完畢之后,才一次性貼圖到屏幕上,就可以避免閃爍的問題。因此引入wxBufferedPaintDC。wxBufferedPaintDC繼承自wxBufferedDC,wxPaintDC是其私有成員變量,因此該類只能夠在wxPaintEvent事件中使用,也就是只能在OnPaint( wxPaintEvent& event )函數中使用。

為了使用該類,需要包含頭文件#include "wx/dcbuffer.h",目前并沒有被包含在wx/wx.h文件中,可以直接添加,避免每一次手寫



例子


#include "wx/dcbuffer.h"


void CDownLinkPlaybackSliderCtrl::OnPaint( wxPaintEvent& event )

{

wxBufferedPaintDC dc(this);

dc.SetBrush(*wxWHITE_BRUSH);

dc.Clear();


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);

}


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

周至县| 成都市| 江门市| 贵州省| 广灵县| 常熟市| 南川市| 永川市| 江都市| 通辽市| 渝北区| 福海县| 密山市| 武汉市| 通海县| 平顺县| 吉安市| 镇雄县| 宣武区| 丰县| 东港市| 四川省| 民勤县| 大理市| 尼勒克县| 晋宁县| 宜章县| 阿荣旗| 靖边县| 曲阜市| 临邑县| 稷山县| 贺州市| 蓬莱市| 高雄市| 海宁市| 美姑县| 涿州市| 即墨市| 上林县| 保山市|