社区
图形处理/算法
帖子详情
CImage 中的 operator HBITMAP() 返回的句柄无效,请问是怎么回事?
ckacka
2005-03-03 01:09:24
在 CDoc 中申明了 CImage m_img;
在 CView 中可以调用其功能
但是使用 ::GlobalLock(HBITMAP(pDoc->m_img)) 返回无效指针
使用 GetLastError() 得到 “无效句柄”
请问这是怎么回事,谢谢!
ckacka
...全文
467
21
打赏
收藏
CImage 中的 operator HBITMAP() 返回的句柄无效,请问是怎么回事?
在 CDoc 中申明了 CImage m_img; 在 CView 中可以调用其功能 但是使用 ::GlobalLock(HBITMAP(pDoc->m_img)) 返回无效指针 使用 GetLastError() 得到 “无效句柄” 请问这是怎么回事,谢谢! ckacka
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
21 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hushuangyan74
2005-03-03
打赏
举报
回复
请问你要锁住这个句柄干什么用,如果你是要读取图像的话:可以直接用CImage对象m_img来读取就行了,怎么要这样绕弯呢@!
你要加载图像用m_img.Load("abc.bmp");
要保存用m_img.Save("abc.bmp");
等等,,,,
你还锁定句柄干什么!
hushuangyan74
2005-03-03
打赏
举报
回复
上面的语句跟HBITMAP hBitMap = (HBITMAP)(pDoc->m_img);
是一样的,所以我是多此一举,,,,
算了,不讲了,去修炼去,,,,闪了!!!
ckacka
2005-03-03
打赏
举报
回复
hushuangyan74()
我不是得不到句柄,是无法锁定这个句柄
hushuangyan74
2005-03-03
打赏
举报
回复
那就这样吧,应该可以了。
HBITMAP hBitMap=(HBITMAP)pDoc->m_img.operator HBITMAP();
就这样!
ckacka
2005-03-03
打赏
举报
回复
>> 可以的,只要是内存对象,都可以用来锁住,并且返回对象的首个bit地址
纠错
可以的,只要是内存对象,都可以用来锁住,并且返回对象的首个byte地址
ckacka
2005-03-03
打赏
举报
回复
m_hBitmap 是私有成员
inline CImage::operator HBITMAP() const throw()
{
return( m_hBitmap );
}
hushuangyan74
2005-03-03
打赏
举报
回复
楼主不知道你现在要干什么事,
你说:如果使用HBITMAP hBitMap = (HBITMAP)(pDoc->m_img);
能返回正常值么?
这个肯定有错误,
1.HBITMAP是句柄(在内存中是漂移的),而m_img是一个CImage对象(在内存中是固定的)。当然把句柄锁定后,m_img就可以访问这个句柄指向的内存中的值了。。。。
你的问题可以这样用:
HBITMAP hBitMap=(HBITMAP)pDoc->m_img.m_hBitmap,或者就干脆用pDoc->m_img.m_hBitmap就可以了(不过在使用前请先打开图像文件,否则一切后果自负呀!)。
ckacka
2005-03-03
打赏
举报
回复
HBITMAP hBitMap = (HBITMAP)(pDoc->m_img);
可以返回正常值的,我早就试过了。
但是GlobalLock就不行。
可以的,只要是内存对象,都可以用来锁住,并且返回对象的首个bit地址。
晨星
2005-03-03
打赏
举报
回复
GlobalLock可以用来锁BitMap对象么?
晨星
2005-03-03
打赏
举报
回复
如果使用
HBITMAP hBitMap = (HBITMAP)(pDoc->m_img);
能返回正常值么?
快乐鹦鹉
2005-03-03
打赏
举报
回复
手头没有CImage类啊。
ckacka
2005-03-03
打赏
举报
回复
…… ft~~ who 怕 who?
你帮我把问题解决了多少分都可以。
Featured
2005-03-03
打赏
举报
回复
我帮你咬楼主
楼主快给我分,不然咬你了:)
晨星
2005-03-03
打赏
举报
回复
被咬了,郁闷。:(
ckacka
2005-03-03
打赏
举报
回复
steedhorse(晨星):
咬你哦……^_^
ckacka
2005-03-03
打赏
举报
回复
sigh... -_-!
我肯定要读入图像先,不然怎么“在 CView 中可以调用其功能”
我的 OnDraw 工作正常;
晨星
2005-03-03
打赏
举报
回复
就是,这么简单的东西也来问,小红帽的ID是不是被盗用了?
嘎嘎嘎嘎。。。。
晨星
2005-03-03
打赏
举报
回复
就是,这么简单的东西都搞不懂,小红帽的ID是不是被人盗用了?
嘎嘎嘎嘎。
老夏Max
2005-03-03
打赏
举报
回复
学习。估计一楼说的正确,Debug一下看看就知道了!
晨星
2005-03-03
打赏
举报
回复
帮顶。
加载更多回复(1)
C
Image
类
C
Image
提供增强的位图支持,包括加载和保存采用 JPEG、GIF、BMP 和可移植网络图形格式的图像 (PNG) 格式。 说明 无法在 Windows 运行时
中
执行的应用程序
中
使用此类及其成员。 语法 class C
Image
成员 公共构造函数 公共构造函数 “属性” 说明 C
Image
::C
Image
构造函数。 公共方法 公共方法 “属性” 说明 C
Image
::AlphaBlend 显示具有透明或半透明像素的位图。 C
Image
:.
C
Image
类的成员
最近常用C
Image
类,所以把他的类成员写出来,方便查询。 C
Image
成员操作符
operator
H
BITMAP
返回
绑定到C
Image
对象的Windows
句柄
.
ConstructionC
Image
构造函数.
OperationsAlphaBlend
Displays
bitmap
s that have transparent or semitransparent pixels.
显示包含透明或半透明像素的位图。Attach
Attaches
C
Image
类
Visual C++的C
Bitmap
类的功能是比较弱的,它只能显示出在资源
中
的图标、位图、光标以及图元文件的内容,而不像VB
中
的
Image
控件可以显示出绝大多数的外部图像文件(BMP、GIF、JPEG等)。如果想要在对话框或其他窗口
中
显示外部图像文件则只能借助于第三方提供的控件或代码,未免过于繁琐. 现在,.net引入了一个功能非常强大的新类 ----- C
Image
.有了C
Image
【无标题】c++ MFC图像处理C
Image
类常用操作代码
C
Image
使用详解
基于VC.NET的GDI+编程之C
Image
(VC图像处理新招)
我们知道,Visual C++的C
Bitmap
类和静态图片控件的功能是比较弱的,它只能显示出在资源
中
的图标、位图、光标以及图元文件的内容,而不像VB
中
的
Image
控件可以显示出绝大多数的外部图像文件(BMP、GIF、JPEG等)。因此,想要在对话框或其他窗口
中
显示外部图像文件则只能借助于第三方提供的控件或代码。现在,MFC和ATL共享的新类C
Image
为图像处理提供了许多相应的方法,这使得Visu
图形处理/算法
19,468
社区成员
50,698
社区内容
发帖
与我相关
我的任务
图形处理/算法
VC/MFC 图形处理/算法
复制链接
扫一扫
分享
社区描述
VC/MFC 图形处理/算法
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章