在MFC的对话中加载了一幅图像,现在想获取指向该图像的一个指针,如何 *** 作

在MFC的对话中加载了一幅图像,现在想获取指向该图像的一个指针,如何 *** 作,第1张

//选择图像

CDC bmDC;

bmDCCreateCompatibleDC(ctrlDC);

bmDCSelectObject(m_hbm);

//然后

CBitmap pbit = bmDCGetCurrentBitmap();

BITMAP bitmapInfo;

pbit->GetObject(sizeof(BITMAP),&bitmapInfo);

//你看看BITMAP bitmapInfo;里面的结构,你想要的东西都在里面了

//还是推荐你看看windows 程序设计里面的位图部分,非常详尽

LoadImage(AfxGetInstanceHandle(), CString("C:\\Users\\lenovo\\Desktop\\testbmp"), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);

这是你要的函数。

看一下我给你的例子,本例子是动态加载突变显示随着鼠标移动(防闪烁)。但是这个是VS2012运行的工程:

你看CDanamicLoadView::OnCreate中动态加载,并创建兼容DC中的代码。

在CDanamicLoadView::OnMouseMove中将加载的动态画到另一个虚拟DC中,将虚拟DC完全复制到兼容DC中。

OnEraseBkgnd(是一个背景重画的消息WM_ERASEBKGND,返回TRUE不重画背景)

CDanamicLoadView::OnDraw中将兼容DC中复制到pDC中。

希望你通过看我的例子能真正学到东西,这是vs2012的工程可能你没办法直接运行,也只能帮你到这里了,主要功能就看我前面几个函数中实现的代码,希望对你有帮助。

很简单啊! 打开图像的话,首先获取bmp的像素矩阵,然后用bitblit复制到内存dc上,再复制到窗口dc上,即可。 鼠标的问题,在onclick事件中处理,算一下鼠标点击位置的坐标,然后相对于bmp在窗口中的位置,计算出点击位置在bmp像素矩阵中的坐标,然后从bmp像素矩阵获取对应的各个像素rgb值,计算平均数,然后调用对话框函数显示即可。

以上就是关于在MFC的对话中加载了一幅图像,现在想获取指向该图像的一个指针,如何 *** 作全部的内容,包括:在MFC的对话中加载了一幅图像,现在想获取指向该图像的一个指针,如何 *** 作、关于MFC的问题,做一个基于对话框的MFC程序,从内存读取BMP图像并显示,刚刚接触不知道怎么去做,求大神知道、怎样用mfc读取一个bmp图片的像素矩阵啊等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9436958.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存