emStart() { // TODO: Add your command handler code here SetTimer(1,5,NULL); }
view plaincopy to clipboardprint?// 没 有 使 用 双 缓 存 技 术 , 出 现 闪 屏 void CTest1View::ShowBmp() { CDC *pDC = GetDC(); CBitmap BmpBack,BmpFront; //背景,前景位图 CDC BackDC,FrontDC; //背景设备,前景设备,内 存设备 // 加 载 位 图 BmpBack.LoadBitmap(IDB_BITMAP_BACK); BmpFront.LoadBitmap(IDB_BITMAP_FRONT); // 创 建 与 显 示 设 备 兼 容 的 设 备 BackDC.CreateCompatibleDC(pDC); FrontDC.CreateCompatibleDC(pDC); //将 背景位图选入设备 BackDC.SelectObject(&;BmpBack); pDC->BitBlt(0, 0,
1024, 768, &;BackDC, 0, 0, SRCCOPY); //显示背景位图 //将前景位图选入设备 FrontDC.SelectObject(&;BmpFront); pDC->BitBlt(0, 0, 1024, 768, &;FrontDC, 0, 0, SRCCOPY); //显示前景位图 /************************ 分两次的显示位 图 ( 先 显 示 背 景 , 再 显 示 前 景 ), 结 果 就 出 现 了 闪 屏 . **************************/ // 释 放 资 源 pDC->DeleteDC(); BackDC.DeleteDC(); FrontDC.DeleteDC(); } //没有使用双缓存技术,出现闪屏 void CTest1View::ShowBmp() { CDC *pDC = GetDC(); CBitmap BmpBack,BmpFront; //背景,前景位图 CDC BackDC,FrontDC; //背景设备,前景设备,内存设备 //加载位图 BmpBack.LoadBitmap(IDB_BITMAP_BACK); BmpFront.LoadBitmap(IDB_BITMAP_FRONT); //创建与显示设备兼容的设备 BackDC.CreateCompatibleDC(pDC); FrontDC.CreateCompatibleDC(pDC); //将背景位图选入设备 BackDC.SelectObject(&;BmpBack); pDC->BitBlt(0, 0, 1024, 768, &;BackDC, 0, 0, SRCCOPY); //显示背景位图 //将前景位图选入设备 FrontDC.SelectObject(&;BmpFront); pDC->BitBlt(0, 0, 1024, 768, &;FrontDC, 0, 0, SRCCOPY); //显示前景位图 /************************ 分两次的显示位图(先显示背景,再显示前景), 结果就出现了闪屏. **************************/ //释放资源 pDC->DeleteDC(); BackDC.DeleteDC(); FrontDC.DeleteDC(); } view plaincopy to clipboardprint? view plaincopy to clipboardprint?// // view plaincopy to clipboardprint?// 添 加 一 菜 单 命 令 , 启 动 一 个 Timer void CTest1View::OnMenuitemStart() { // TODO: Add your command handler code here SetTimer(1,5,NULL); } //添加一菜单命令,启动一个 Timer void CTest1View::OnMenuitemStart() { // TODO: Add your command handler code here SetTimer(1,5,NULL);
}
view plaincopy to clipboardprint? //在 OnTimer()函数中,查看两种效果 void CTest1View::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default Show
BmpUseDbBuffer(); //使用双缓存技术,显示位图,防止闪屏 //ShowBmp(); //没有使用双缓存技术,出现闪屏
CView::OnTimer(nIDEvent); }