基于对话框的程序怎么消除屏闪 如果使用双缓冲仍然闪呢 +++++++++++++++++使用双缓冲不会闪,除非你不会用。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 设置裁减区,尽量减小重绘区域! 怎么用双缓冲呢!给一两个实例吧! 所谓的双缓冲就是先把GDI操作放到一个内存DC中,全部画完后再一次性的bitblt到目标DC中去void CVideoView::OnDraw(CDC* pDC){ // TODO: add draw code here if(m_pFrameData) { CRect rc; GetClientRect(&rc); CDC mdc; mdc.CreateCompatibleDC(pDC); CBitmap bitmap; bitmap.CreateCompatibleBitmap(pDC, rc.Width(), rc.Height()); CBitmap *OldBitmap = mdc.SelectObject(&bitmap); mdc.SetStretchBltMode(COLORONCOLOR); ::StretchDIBits(mdc.GetSafeHdc(), 640,480,-640,-480, 0,0,640,480, m_pFrameData, &m_bmHeader, DIB_RGB_COLORS, SRCCOPY); CBrush brh( RGB(0,0,0)); for(int i=0; i<4; ++i) { mdc.FrameRect(m_pDataView->m_Rect[i], m_pDataView->m_fRatio[i] > 0.6 ? &m_brhGreen : &m_brhRed); } mdc.FrameRect(m_pDataView->m_Rect[4], m_pDataView->m_fRatio[4] > 0.75 ? &m_brhGreen : & m_brhRed); pDC->BitBlt(0,0, rc.Width(), rc.Height(), &mdc, 0, 0, SRCCOPY); mdc.SelectObject(OldBitmap); bitmap.DeleteObject(); mdc.DeleteDC(); }} vc 数据库 问题 关于按键信息, 请帮忙 CEditView和CEdit问题 VC和mysql的问题,急~~~求VC高手 怎样在CListView中显示标头控件??? sizeof()怪问题求助!!!!! 各位,不知哪里有中文版VC++技术内幕的电子版,谢谢帮忙。 vc7.0有没有发布,怎么买不到? 再问一个菜鸟问题 COM如何进行动态的更新 用ActiveX Automation提取autocad中的图纸信息 怎样实现鼠标停在某个按钮上,出现一个提示信息,显示该按钮的某些属性,功能等.
void CVideoView::OnDraw(CDC* pDC)
{
// TODO: add draw code here
if(m_pFrameData)
{
CRect rc;
GetClientRect(&rc);
CDC mdc;
mdc.CreateCompatibleDC(pDC);
CBitmap bitmap;
bitmap.CreateCompatibleBitmap(pDC, rc.Width(), rc.Height());
CBitmap *OldBitmap = mdc.SelectObject(&bitmap); mdc.SetStretchBltMode(COLORONCOLOR);
::StretchDIBits(mdc.GetSafeHdc(),
640,480,-640,-480,
0,0,640,480,
m_pFrameData,
&m_bmHeader,
DIB_RGB_COLORS,
SRCCOPY);
CBrush brh( RGB(0,0,0));
for(int i=0; i<4; ++i)
{
mdc.FrameRect(m_pDataView->m_Rect[i], m_pDataView->m_fRatio[i] > 0.6 ?
&m_brhGreen : &m_brhRed);
}
mdc.FrameRect(m_pDataView->m_Rect[4], m_pDataView->m_fRatio[4] > 0.75 ?
&m_brhGreen : & m_brhRed); pDC->BitBlt(0,0, rc.Width(), rc.Height(), &mdc, 0, 0, SRCCOPY); mdc.SelectObject(OldBitmap);
bitmap.DeleteObject();
mdc.DeleteDC();
}
}