怎样用API获取DC的缓冲区指针(就像DX那样,获得后可直接进行读写操作)

maptrix 2001-12-13 10:13:52
怎样用API获取DC的缓冲区指针,缓冲区中就是真实的点阵信息。就像DX那样,获得后可直接进行读写操作,我不愿意为了这样一个功能就给程序加上DX。

使用GetBitmapBits(HBITMAP,LONG,LPVOID);不太好,因为我的DC就是放在常规内存中的,不觉得在Copy一次会影响性能。

请各位帮忙?
...全文
305 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
maptrix 2001-12-14
  • 打赏
  • 举报
回复
散分了!
maptrix 2001-12-14
  • 打赏
  • 举报
回复
大家帮帮忙?
dog_dog 2001-12-14
  • 打赏
  • 举报
回复
study
maptrix 2001-12-13
  • 打赏
  • 举报
回复
提升(up)
maptrix 2001-12-13
  • 打赏
  • 举报
回复
谢谢各位的回答。

我是想获得这样一个效果,返回一个 char *的指针,比如char *pData,则pData[0]或者pData[0]-pData[3],就是第一个像素的值;pData[1]或者pData[4]-pData[7]就是第二个像素的值....
JoeXu 2001-12-13
  • 打赏
  • 举报
回复
CClient* pMyDC = new CClientDC(m_pWnd);
int iPixel = ChoosePixelFormat(pMyDC->m_hDC,&saveInfo); //saveInfo你要定义一下,里面有DC的Buffer Info;
SetPixelFormat(pMyDC->m_hDC,iPixel,&saveInfo);
............
我想到应该有更好的方法:buffer->Pixel Change->Pixel Data->Display List
。。让我再想想
另GetBitmapBits()?我几千年前才会用这个函数。。。。。。
wooingcn 2001-12-13
  • 打赏
  • 举报
回复
哦,把后面一个Get改成Set
wooingcn 2001-12-13
  • 打赏
  • 举报
回复
pDC->GetCurrentBitmap()->GetBitmap(pBmp)
emmai 2001-12-13
  • 打赏
  • 举报
回复
显示内存可能比你想象的要慢
maptrix 2001-12-13
  • 打赏
  • 举报
回复
请各位帮帮忙?
maptrix 2001-12-13
  • 打赏
  • 举报
回复
"不觉得在Copy一次会影响性能",写错了,因该是 "我觉得再Copy一次会影响性能"。
maptrix 2001-12-13
  • 打赏
  • 举报
回复
多谢code_cold(玉米)!
要是实在不行,我就只好用DX了!


不过我不会放弃的!难道只能这么说说而已了?
rockswang 2001-12-13
  • 打赏
  • 举报
回复
比较好的办法就是使用GetDIBits了,像素的具体格式是跟当前的显示模式相关的,你要是自己去Handle各种情况会非常累的。
code_cold 2001-12-13
  • 打赏
  • 举报
回复
我想DX可以取到DC的缓冲区指针,那绕过DX,通过编程来取DC缓冲区的指针也是可实现的,
DX = COM + WDM
那绕过DX,通过编程来取DC缓冲区的指针是 不太可能 实现的,
maptrix 2001-12-13
  • 打赏
  • 举报
回复
我这么做是为了完成这样的功能,在服务器上完成了一个GDI的画图操作,我想用客户端来取这次操作的结果,并将这个结果在显示出来,本来服务器上的操作可以保存成一个位图文件,然后供客户端使用。但我觉得这样的性能,不如直接将HDC中的内容传给客户端。

我知道在DirectX中有方法得到DC缓冲区的指针,我想DX可以取到DC的缓冲区指针,那绕过DX,通过编程来取DC缓冲区的指针也是可实现的,因为这是一个和DX联系的不是很紧的功能,如果就这样加上DX的一堆库,觉得不是很好。
code_cold 2001-12-13
  • 打赏
  • 举报
回复
1) MS GDI 不润许直接操作内存地址
2)用多个DC优化,速度是可以的
maptrixdummy 2001-12-13
  • 打赏
  • 举报
回复
提升(up)
maptrix 2001-12-13
  • 打赏
  • 举报
回复
加分!

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧