窗口 – 如何在窗口上绘制图像?
发布时间:2020-12-14 01:38:45 所属栏目:Windows 来源:网络整理
导读:我在 Windows Vista中的C中使用VS2005创建了一个带有createwindow()api的窗口 我的要求是在该窗口上绘制一个图像(任何格式). 我在这个应用程序中没有使用任何MFC. 请帮我一些代码片段. 不完全确定你的问题是什么:在窗体上画一个位图,或者你想知道如何使用各
我在
Windows Vista中的C中使用VS2005创建了一个带有createwindow()api的窗口
我的要求是在该窗口上绘制一个图像(任何格式). 请帮我一些代码片段.
不完全确定你的问题是什么:在窗体上画一个位图,或者你想知道如何使用各种图像格式,或者两者兼而有之.无论如何,下面是一个例子,您可以如何加载位图并在表单上绘制它:
HBITMAP hBitmap = NULL; LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam) { int wmId,wmEvent; switch (message) { <...> case WM_CREATE: hBitmap = (HBITMAP)LoadImage(hInst,L"c:test.bmp",IMAGE_BITMAP,LR_LOADFROMFILE); break; case WM_PAINT: PAINTSTRUCT ps; HDC hdc; BITMAP bitmap; HDC hdcMem; HGDIOBJ oldBitmap; hdc = BeginPaint(hWnd,&ps); hdcMem = CreateCompatibleDC(hdc); oldBitmap = SelectObject(hdcMem,hBitmap); GetObject(hBitmap,sizeof(bitmap),&bitmap); BitBlt(hdc,bitmap.bmWidth,bitmap.bmHeight,hdcMem,SRCCOPY); SelectObject(hdcMem,oldBitmap); DeleteDC(hdcMem); EndPaint(hWnd,&ps); break; case WM_DESTROY: DeleteObject(hBitmap); PostQuitMessage(0); break; default: return DefWindowProc(hWnd,message,wParam,lParam); } return 0; } LoadImage加载图标,光标,动画光标或位图.详情here 对于使用各种图像格式,您可以使用Windows映像组件(参见IWICBitmapDecoder)或代码从这里Loading JPEG and GIF pictures或第三方工具,如FreeImage或LeadTools 希望这有帮助,问候 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- windows – 如何打破某人进行测试?
- windows-7 – 以编程方式限制Windows 7上任何应用程序的CPU
- YAPI windows 二次开发 树形结构 多层级结构 拖拽 数据导入
- windows-server-2008 – 使用Hyper-V的合成驱动程序有什么好
- windows – 在我的应用程序退出之前终止的线程上调用CoUnin
- Windows CMD命令大全
- Windows服务 – 计划任务或Windows服务
- dll – LoadLibrary失败,找不到模块错误 – 可能存在依赖性
- Windows 2008故障转移群集中的VLAN连接
- 使R包在Windows和Linux中都可以工作