在图像对象中写入窗口内容

dump_window_image 在图像对象中写入窗口内容。

1、直接保存

write_image( image , ‘bmp’ , 0 , ‘C:/桌面/1’ )

2、窗口保存 //带文字,region保存

dump_window_image( image , 20000) //图像名,窗口句柄

write_image( image , ‘bmp’ , 0 , ‘C:/桌面/1’ )
---------------------

版权声明:本文为CSDN博主「Mmagic1」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Mmagic1/article/details/81699444

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
利用业余时间,写了个貌似windows自带的任务管理器(私下认为其功能更甚windows自带的)。 封装了许多API接口成为类(一些源自网络,一些自己封装),方便C++使用。但是对整个代码的设计比较烂,打算在学完设计模式后改写其的框架,达到易复用,易维护,易扩展! 开发日志: 版本: 46 作者: YU_YU 日期: 19:04:44, 2009年2月8日 信息: 1.增加系统关机功能 ---- 已修改 : /TaskManager/DlgApplication.cpp 已修改 : /TaskManager/DlgProcess.cpp 已修改 : /TaskManager/DlgService.cpp 已修改 : /TaskManager/EnumNtSrv.cpp 已修改 : /TaskManager/EnumNtSrv.h 已修改 : /TaskManager/EnumProcess.cpp 已修改 : /TaskManager/EnumTaskWindow.cpp 已修改 : /TaskManager/EnumTaskWindow.h 已修改 : /TaskManager/TaskManager.cpp 已修改 : /TaskManager/TaskManager.h 已修改 : /TaskManager/TaskManager.rc 已修改 : /TaskManager/TaskManager.vcproj 已修改 : /TaskManager/resource.h 已增加 : /TaskManager/ExitWindows.cpp 已增加 : /TaskManager/ExitWindows.h 版本: 45 作者: YU_YU 日期: 23:20:13, 2009年2月6日 信息: ---- 已删除 : /TaskManager/Image/Disk_DVD1.png 已删除 : /TaskManager/Image/Disk_Hard1.png 已删除 : /TaskManager/Image/Disk_Network1.png 已删除 : /TaskManager/Image/Disk_Remove1.png 版本: 44 作者: YU_YU 日期: 23:18:55, 2009年2月6日 信息: ---- 已删除 : /TaskManager/res/XPStyle.manifest 版本: 43 作者: YU_YU 日期: 23:13:00, 2009年2月6日 信息: ---- 已修改 : /TaskManager/DlgService.h 已修改 : /TaskManager/EnumModule.cpp 已修改 : /TaskManager/EnumModule.h 已修改 : /TaskManager/EnumNtSrv.cpp 已修改 : /TaskManager/EnumNtSrv.h 版本: 42 作者: YU_YU 日期: 15:36:02, 2009年2月3日 信息: 1.增加服务的状态和类型控制 ---- 已修改 : /TaskManager/DlgService.cpp 已修改 : /TaskManager/DlgService.h 已修改 : /TaskManager/EnumNtSrv.cpp 已修改 : /TaskManager/TaskManager.rc 已修改 : /TaskManager/TaskManager.vcproj 已修改 : /TaskManager/resource.h 已增加 : /TaskManager/ico 已增加 : /TaskManager/ico/SERV.ico 版本: 41 作者: YU_YU 日期: 16:29:02, 2009年1月20日 信息: 1.修复移动不更新子控件bug ---- 已修改 : /TaskManager/XTabCtrl.cpp 版本: 40 作者: YU_YU 日期: 15:59:10, 2009年1月20日 信息: ---- 已增加 : /TaskManager/Image 已增加 : /TaskManager/Image/Disk_DVD1.png 已增加 : /TaskManager/Image/Disk_Hard1.png 已增加 : /TaskManager/Image/Disk_Network1.png 已增加 : /TaskManager/Image/Disk_Remove1.png 已增加 : /TaskManager/Image/Diak_Main.png 已增加 : /TaskManager/Image/Disk 已增加 : /TaskManager/Image/
首先,你需要将base64编码的图像数据解码成二进制数据。你可以使用任何base64解码库来完成这一步骤。 接下来,你需要使用GDI+库创建一个窗口并在其绘制图像。以下是一个简单的示例代码: ```c++ #include <Windows.h> #include <gdiplus.h> #include <string> #include <vector> using namespace Gdiplus; #pragma comment (lib, "Gdiplus.lib") LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } return 0; } int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { // 解码base64图像数据,得到二进制数据 std::string base64Data = "YOUR_BASE64_IMAGE_DATA_HERE"; std::vector<BYTE> imageData; // 解码过程省略 // 初始化GDI+库 GdiplusStartupInput gdiplusStartupInput; ULONG_PTR gdiplusToken; GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL); // 创建窗口 WNDCLASSEX wcex; memset(&wcex, 0, sizeof(wcex)); wcex.cbSize = sizeof(wcex); wcex.style = CS_HREDRAW | CS_VREDRAW; wcex.lpfnWndProc = WndProc; wcex.hInstance = hInstance; wcex.hCursor = LoadCursor(NULL, IDC_ARROW); wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); wcex.lpszClassName = L"MyWindowClass"; RegisterClassEx(&wcex); HWND hWnd = CreateWindow(L"MyWindowClass", L"Window Title", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL); if (!hWnd) return FALSE; // 绘制图像 HDC hdc = GetDC(hWnd); Bitmap* bitmap = new Bitmap(&imageData[0], imageData.size(), TRUE); Graphics graphics(hdc); graphics.DrawImage(bitmap, 0, 0); ReleaseDC(hWnd, hdc); // 显示窗口 ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd); // 消息循环 MSG msg; while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } // 清理资源 delete bitmap; GdiplusShutdown(gdiplusToken); return (int)msg.wParam; } ``` 在上面的示例代码,我们使用了GDI+库的`Bitmap`类来创建一个图片对象,并使用`Graphics`类将图片绘制到窗口上。注意,我们需要在程序退出前手动释放`Bitmap`对象,并调用`GdiplusShutdown`函数来清理GDI+库的资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值