双缓冲问题

littlepig_2002 2004-08-30 04:10:29
想在ONPAINT中实现双缓冲. 屏幕使用的是CPaintDC dc(this);
内存缓冲应该使用什么类? CDC, 还是CPaintDC? 有没有实现过的代码?
...全文
93 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
问道er 2004-08-30
  • 打赏
  • 举报
回复
if(MemDC.GetSafeHdc ( ) == NULL)
{
Bitmap.LoadBitmap (IDB_MEETPAN_TOPBG) ;
MemDC.CreateCompatibleDC ( GetDlgItem(IDC_TOP_BG)->GetDC() ) ;
MemDC.SelectObject( &Bitmap_TopBg ) ;
Bitmap_TopBg.GetObject ( sizeof ( bm ), &bm ) ;
Source.top = 0 ;
Source.left = 0 ;
Source.right= bm.bmWidth ;
Source.bottom = bm.bmHeight ;
}

GetDlgItem(IDC_TOP_BG)->GetDC() -> StretchBlt ( 0 , 0, rcMeetDlg.Width() - 65, Source.bottom-Source.top,
&MemDC, Source.left, Source.top, Source.right,Source.bottom, SRCCOPY ) ;
GetDlgItem(IDC_TOP_BG)->GetDC()->DeleteDC();
Bitmap_TopBg.DeleteObject( ) ;
MemDC.DeleteDC( ) ;

其中:
CDC MemDC; // 内存设备环境指针,在视的整个存在过程都将存在
CBitmap Bitmap_TopBg;
CRect Source; // 记录源位图尺寸和最终显示尺寸
BITMAP bm;
这是我做图片拉伸用的,不知道合不合适?
Good Luck!
zhaogaojian 2004-08-30
  • 打赏
  • 举报
回复
CDC *mDC;
...

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧