位图操作与GDI对象管理
CMemDC的功能:
最新推荐文章于 2021-03-08 16:43:36 发布

qiukapi 于 2018-10-29 20:39:58 发布
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
a)通过资源ID加载进程内位图:BOOL LoadBitmap(UINT nBitmap, CDC* pDC = NULL);
B)通过文件名加载进程外位图:BOOL LoadBitmap(LPCSTR szFile, CDC* pDC = NULL);
C)在构造对象时加载进程内位图:CMemDC(UINT nBitmap, CDC* pDC = NULL);
D)在构造对象时加载进程外位图:CMemDC(LPCSTR szFile, CDC* pDC = NULL);
E)获取位图信息:int GetWidth();和int GetHeigth();
F)摧毁时检查和处理GDI泄露问题(在析构函数中调用):BOOL DeleteDC();
G)创建一个指定高宽的空白位图:BOOL Create(int cx, int cy, CDC* pDC = NULL);
#pragma once
class My_CMemDC : public CDC
{
CSize m_size;
public:
My_CMemDC()
{
m_size.cx = m_size.cy = 0;
}
My_CMemDC(UINT nBitmap, CDC * pDC = NULL)
{
LoadBitmap(nBitmap, pDC);
}
My_CMemDC(CString szFile, CDC *pDC = NULL)
{
LoadBitmap(szFile, pDC );
}
~My_CMemDC()
{
DeleteDC();
}
int GetWidth(){ return m_size.cx; }
int GetHeight(){ return m_size.cy; }
BOOL DeleteDC()
{
if (!GetSafeHdc())
return FALSE;
CBitmap *pBitmap = GetCurrentBitmap();
if (pBitmap)
pBitmap->DeleteObject();
return CDC::DeleteDC();
}
BOOL Create(int cx, int cy, CDC* pDC = NULL)
{//创建空白位图
CBitmap bmp;
bmp.CreateCompatibleBitmap(pDC, cx, cy);
CreateCompatibleDC(pDC);
SelectObject(&bmp);
return TRUE;
}
BOOL LoadBitmap(UINT nBitmap, CDC * pDC = NULL)
{
CBitmap bmp;
if (!bmp.LoadBitmap(nBitmap))
return FALSE;
BITMAP bm;
bmp.GetBitmap(&bm);
m_size.cx = bm.bmWidth;
m_size.cy = bm.bmHeight;
CreateCompatibleDC(pDC);
SelectObject(&bmp);
return TRUE;
}
BOOL LoadBitmap(CString szFile, CDC *pDC = NULL)
{
HBITMAP hBitmap = (HBITMAP)LoadImage(NULL, szFile, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
if (!hBitmap)
return FALSE;
//CBitmap *pBitmap = CBitmap::FromHandle(hBitmap);
BITMAP bm;
//pBitmap->GetBitmap(&bm);
GetObject(hBitmap, sizeof(bm), &bm);
m_size.cx = bm.bmWidth;
m_size.cy = bm.bmHeight;
CreateCompatibleDC(pDC);
SelectObject(hBitmap);
return TRUE;
}
};
相关知识
易语言宠物店管理系统源码
宠物店管理台账,佳易王宠物医院电子处方管理系统操作教程
宠物商店管理系统功能详解与操作指南
宠物店管理系统哪里有宠物疫苗记录系统教程,佳易王宠物医院疫苗预约记录操作教程
软件应用实例,宠物医院处方笺模板实例,佳易王兽医电子处方开单管理系统软件操作教程
宠物医院药品台账,宠物店宠物处方单怎么写,佳易王宠物动物电子处方管理系统操作教程
Python面向对象与模块化:构建宠物管理系统的实战案例
2024亚洲宠物展【全馆展位图】发布
宠物处方单子怎么开,宠物门诊处方管理软件教程
14天Java基础学习——第6天:面向对象编程(类与对象)
原文链接: 位图操作与GDI对象管理 https://www.mcbbbk.com/newsview822405.html
| 上一篇: 佛弟子可以养宠物吗 | 下一篇: 【宠物行业招聘学徒】宠物行业招聘... |





