MFC GDI+双缓冲
来源:互联网 发布:如何生成数据字典 编辑:程序博客网 时间:2024/06/15 22:36
添加头文件
#include <GdiPlus.h>#pragma comment(lib, "Gdiplus.lib")using namespace Gdiplus;
定义变量:
ULONG_PTR gdiplusToken;DWORD dwScreenWidth;DWORD dwScreenHeight;
在OninitDialog()函数里面初始化对象
Gdiplus::GdiplusStartupInput gdiplusStartupInput;Gdiplus::GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);dwScreenWidth = GetSystemMetrics(SM_CXSCREEN);dwScreenHeight = GetSystemMetrics(SM_CYSCREEN);
在定时器里面绘制:
CClientDC dcDraw(this);{/************************************************************************//*创建logo的双缓冲dc *//************************************************************************/CBitmap bitmap;bitmap.CreateCompatibleBitmap(&dcDraw, dwScreenWidth, dwScreenHeight);// 创建内存DCCDC memDC;memDC.CreateCompatibleDC(&dcDraw);// 将创建的目标位图选入内存DCCBitmap* pOldBitmap = memDC.SelectObject(&bitmap);// 设置DC贴图模式dcDraw.SetStretchBltMode(COLORONCOLOR);// Gdi+绘制背景和logo部分Gdiplus::Graphics graphics(memDC);/************************************************************************//*if (iplCamera){Gdiplus::Bitmap bitmap(iplCamera->width, iplCamera->height, iplCamera->widthStep, PixelFormat24bppRGB, (BYTE*)iplCamera->imageData);graphics.DrawImage(&bitmap, 0, 0);}*/{{//画当前时间LOGFONT lf = { 0 };lf.lfHeight = 20;lf.lfWeight = FW_BOLD;wcscpy_s(lf.lfFaceName, _T("Arial"));//Gdiplus::Font font(_T("微软雅黑加粗"), (Gdiplus::REAL)60);Gdiplus::Font font(dcDraw, &lf);Gdiplus::RectF orgin(50, 50, 100, 100);Gdiplus::StringFormat stringformat;stringformat.SetAlignment(Gdiplus::StringAlignmentNear);Gdiplus::SolidBrush solidBrush(Gdiplus::Color(255, 251, 254, 255));SYSTEMTIME stNow;GetLocalTime(&stNow);WCHAR wcTime[MAX_PATH] = { 0 };wsprintf(wcTime, L"%d-%02d-%02d %02d:%02d:%02d", stNow.wYear, stNow.wMonth, stNow.wDay, stNow.wHour, stNow.wMinute, stNow.wSecond);graphics.DrawString(wcTime, -1, &font, orgin, &stringformat, &solidBrush);}// 贴图dcDraw.BitBlt(0, 0, dwScreenWidth, dwScreenHeight, &memDC, 0, 0, SRCCOPY);// 将旧的对象选择回来memDC.SelectObject(pOldBitmap);// 释放内存DCmemDC.DeleteDC();// 删除对象DeleteObject(pOldBitmap);// 是否Gdi+ DCgraphics.ReleaseHDC(dcDraw);}}
在Onclose函数里面关闭GDI+对象
Gdiplus::GdiplusShutdown(gdiplusToken);
0 0
- MFC GDI+双缓冲
- MFC中的GDI/GDI+和双缓冲绘图
- MFC中的GDI/GDI+和双缓冲绘图
- GDI双缓冲绘图
- gdi+ 双缓冲技术
- GDI双缓冲绘图
- GDI+双缓冲
- GDI+中的双缓冲
- GDI+ VC双缓冲
- gdi+ 双缓冲技术
- GDI+ 双缓冲
- windows gdi 双缓冲
- GDI 双缓冲贴图
- GDI+ 双缓冲实现
- GDI+ 双缓冲实现
- GDI+双缓冲
- GDI+ 双缓冲模板
- GDI双缓冲绘图
- 关闭迅雷首页播放视频的方法
- 深度学习与机器学习中开源图片数据库汇总
- 免费的论文查重网站
- (十四)RabbitMQ消息队列-启用SSL安全通讯
- 存储空间的分配和释放
- MFC GDI+双缓冲
- redis之set 集合命令详解
- java基础编程笔记3
- 端口号被占用
- 线程总结
- 解决HttpURLConnection setConnectTimeout超时无响应的问题
- 用java实现从txt文本文件批量导入数据至数据库
- Easy-34
- centos 7下启动mysql失败问题及 解决