获取Static控件位图问题 一个MFC对话框程序,主窗口嵌入一个子窗口,子窗口上有一个Picture控件,在Picture控件上绘图,然后通过获取它的HDC,调用GetCurrentObject(hDC, OBJ_BITMAP)去获取位图,但是取出的位图却是主窗口的,据说是因为DC没有分离?有什么解决办法? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不用这么麻烦吧,CStatic自己有一个相关的函数啊:CStatic::GetBitmap 你上面所说的绘图是用什么绘的呢?控件的DC绘图的话,直接用SelectObject加载另一个位图,返回的就是原来的位图。 回复于: 2013-02-23 17:29:45 引用 2 楼 PC_9527 的回复:引用 1 楼 wltg2001 的回复:不用这么麻烦吧,CStatic自己有一个相关的函数啊:CStatic::GetBitmap这个控件被子类化处理了,这样来处理好像不行,一调用就出错了。子类化应该不会产生这个问题的。 取出来的数据为空.....这个是jpg流数据,最初的方案是内存的image数据转HBITMAP(必须是HBITMAP),感觉开销很大,如果能直接GetCurrentObject那最好,省很多事,SelectObject是不可以行的,只要是从DC获取,必然是主窗口的位图,有没有方法让DC独立,不共用一个DC场景,对于一般的窗口可以让它创建的时候让它成为单独的窗口,没有父窗口,或者修改类样式,这个是在窗口上的控件子类化,构造函数里没有办法去重新注册类,当然也许我的思路就错了,还请高手指教,谢谢 getdc(传入picturecontrol的m_hwnd)不行么? 这个是jpg流数据,最初的方案是内存的image数据转HBITMAP(必须是HBITMAP),感觉开销很大,如果能直接GetCurrentObject那最好,省很多事,SelectObject是不可以行的,只要是从DC获取,必然是主窗口的位图,有没有方法让DC独立,不共用一个DC场景,对于一般的窗口可以让它创建的时候让它成为单独的窗口,没有父窗口,或者修改类样式,这个是在窗口上的控件子类化,构造函数里没有办法去重新注册类,当然也许我的思路就错了,还请高手指教,谢谢 ==============JPG数据流可能不会成功,GDI本身不支持JPG,只支持BITMAP 但是画在DC场景的数据应该是可以通过GetCurrentObject获取的,只是现在的问题是DC是共用的,在DC上有多幅位图吧?如何让Static控件和它的父窗口DC分离? 句柄是正确的,好像GetBitmap只能取picture控件预先设置好的,或者是SetBitmap设置的位图才可以获取。 为什么CBrush成员变量在成员函数中不起作用? COM传递结构体数组(VARIANT)在VB中的调用问题(在vc中已经实现)[急>>>>>>>>>>>] 局域网广播问题 一个程序启动另一个程序的问题,刚注意到的,大家来```讨论讨论``指点指点 顺祝大家新年快乐 请问:在ADO 中标签的使用:取得和给记录集给这个标签值. 请问哪位有《windows核心编程指南》的源码!? 【请问】VC中怎么设置全局变量? 如何以16进制格式读取文件内容? 极简单的问题,谢谢大家? 这里怎么没有斑竹了 WebBrowser 图片残影问题 请问数字图像处理毕业设计开题报告怎么写啊
CStatic::GetBitmap
回复于: 2013-02-23 17:29:45
引用 2 楼 PC_9527 的回复:
引用 1 楼 wltg2001 的回复:不用这么麻烦吧,CStatic自己有一个相关的函数啊:
CStatic::GetBitmap这个控件被子类化处理了,这样来处理好像不行,一调用就出错了。
子类化应该不会产生这个问题的。 取出来的数据为空.....
这个是jpg流数据,最初的方案是内存的image数据转HBITMAP(必须是HBITMAP),感觉开销很大,如果能直接GetCurrentObject那最好,省很多事,SelectObject是不可以行的,只要是从DC获取,必然是主窗口的位图,有没有方法让DC独立,不共用一个DC场景,对于一般的窗口可以让它创建的时候让它成为单独的窗口,没有父窗口,或者修改类样式,这个是在窗口上的控件子类化,构造函数里没有办法去重新注册类,当然也许我的思路就错了,还请高手指教,谢谢
==============
JPG数据流可能不会成功,GDI本身不支持JPG,只支持BITMAP
句柄是正确的,好像GetBitmap只能取picture控件预先设置好的,或者是SetBitmap设置的位图才可以获取。