首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

请教一个DIB绘制的时候出现闪屏

2012-08-16 
请问一个DIB绘制的时候出现闪屏?C/C++ codevoid CPdfViewView::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo)

请问一个DIB绘制的时候出现闪屏?

C/C++ code
void CPdfViewView::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo){    // TODO: 在此添加专用代码和/或调用基类    ASSERT_VALID(pDC);    CPoint pViewOrg;    // 初始化 DC    CScrollView::OnPrepareDC(pDC, pInfo);    if (!pDC->IsPrinting())    {        CRect rect;        GetClientRect(&rect);        CSize size(GetTotalSize());        pViewOrg = pDC->GetViewportOrg();        if (rect.Width() > size.cx)            pViewOrg.x = (rect.Width() - size.cx + 1) / 2;        if (rect.Height() > size.cy)            pViewOrg.y = (rect.Height() -size.cy + 1) /2 ;        GetDocument()->GetPdf()->PanView(pViewOrg.x, pViewOrg.y);                m_nPanx = pViewOrg.x;                m_nPany = pViewOrg.y;    }}void CPdfViewView::OnDraw(CDC* pDC){    CPdfViewDoc* pDoc = GetDocument();    ASSERT_VALID(pDoc);    if (!pDoc)        return;    HDC hDC = ::GetDC(m_hWnd);    SetDIBitsToDevice(hdc,m_nPanx, m_nPany, m_pImage->w, m_pImage->h,0, 0, 0,                          m_pImage->h, m_pImage->samples,dibinf, DIB_RGB_COLORS);    pDoc->GetPdf()->BlitToHdc(hDC);    ::ReleaseDC(m_hWnd, hDC);}


滚动条尺寸为 m_pImage->w, m_pImage->h,
请问下我拉动滚动条的时候,会出现闪屏,请问下这个怎么解决呀?

[解决办法]
不知道双缓冲有没有效果,可以试试看
[解决办法]
探讨
不知道双缓冲有没有效果,可以试试看

[解决办法]
探讨
引用:

不知道双缓冲有没有效果,可以试试看

DIB绘图怎么使用双缓冲呀!!

[解决办法]
void CPdfViewView::OnDraw(CDC* pDC)
不是有pDC吗?(带裁剪区的)
为什么还要:
HDC hDC = ::GetDC(m_hWnd);
不带裁剪区的。

热点排行