vc mfc 如何获取当前程序的窗口并保存为图片

vc mfc 如何获取当前程序的窗口并保存为图片,第1张

这个好像没有办法,我试过在暴风影音最前段显示的时候,用alt+print截取一个被遮住的窗口,前面的窗口也会被截取下来。对于被遮住的窗口部分会被裁减掉,所以基本在被遮住的情况下应该都不能截取。

或者你可以让你的程序在最前端显示在截取。

你的思路不对

第一  直接把WriteLog里的值赋值给m_Log 然后刷新edit值就可以看见

第二  直接写个WriteLog函数 把内容赋值给m_Log 刷新edit值也可以

在初始化函数里你什么都没有  也不明白你说的关联是什么意思

把一个函数跟一个变量关联? 怎么个关联法?

以pPicture 取得你这个的高与宽

建一个同样大小的设备兼容位图,然后pPicture->Render 其中设备描述符句柄HDC使用这个

设备兼容位图的HDC作为参数,这样你的Picture就渲染到了这个设备兼容位图上,然后就是常规 *** 作了。如果你对设备兼容位图的 *** 作不清楚,就去看Win32程序设计这本书,百度文档上肯定有

看位图那章,很多例子的。

使用jpg或者png,则需要用到symbian提供的那个Multimedia ICL库里的类了。其中比较重的是CImageDecoder类,提供了对图像进行解码的功能。

来看看如何使用它的吧。先定义两个字串:

_LIT(KJPEGFile,"C:\\Data\\mejpg");

_LIT(KJPEGType,"image/jpeg");

使用的代码比较简单,如下所示:

iDec = CImageDecoder::FileNewL(iRFs,KJPEGFile);

iParent->iBkImageMask=new (ELeave) CFbsBitmap();

iParent->iBkImageMask->Create( iDec-> FrameInfo()iOverallSizeInPixels,iDec-> FrameInfo()iFrameDisplayMode );

iDec->Convert( &iStatus, (iParent->iBkImageMask) );

其中的iDec是CImageDecoder的实例,而iRFs是RFs的实例。而iParent->iBkImageMask则是一个CFbsBitmap对象实例。

也就是说,我们先利用CImageDecorder::FileNewL来打开一个图像文件(它会自已判断图像类型,我们也可以提供给它我们指定的图像类型)。然后这个图像的信息就保存在iDec->FrameInfo()中了,利用这个信息可以创建一个CFbsBitmap实例(因为symbian中所有显示的图像都是这种类型)。最后,调用CImageDecorder的异步函数Convert就可以将图像(jpeg 或者png格式的)转换成CFbsBitmap位图了。唯一的麻烦是Convert是一个异步函数,第一个参数是TRequestStatus类型(可以是一个活动对象的iStatus成员)。

除了CImageDecorder::FileNewL以外还有一个CImageDecorder:;DataNewL也可以用来从一个缓冲区的字节内容构造出图像数据,只是它第二个参数是TDesC8&类型的aSourceData。

[补充]

别忘了包括头文件 ImageConversionh,还有引入库imageconversionlib。

"wb+");这个读写方式是清空文件以前的数据。你要先判断是否是第一次传,那时候才清空或者建立一个新的文件,然后接下来收到的数据都用"ab"将数据加到末尾就是了,如果不用ab还得把文件指针用fseek移动到末尾。

以上就是关于vc mfc 如何获取当前程序的窗口并保存为图片全部的内容,包括:vc mfc 如何获取当前程序的窗口并保存为图片、如何用VC++2010编写一个获取屏幕分辨率的MFC 以下是我的编写过程,实在进行不下去了,求指导!、MFC对话框中用IPicture类加载了一幅图片,现在想对图片进行 *** 作,想获得指向该图像第一个像素的指针,怎么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存