社区
游戏开发
帖子详情
有兴趣讨论讨论:VC中如何将图象快速显示在屏幕的任意区域
wine
2001-08-14 10:21:05
谁有好办法,只用MFC和API里的函数快速将内存里的内容显示到屏幕的任意矩形区域,
...全文
173
11
打赏
收藏
有兴趣讨论讨论:VC中如何将图象快速显示在屏幕的任意区域
谁有好办法,只用MFC和API里的函数快速将内存里的内容显示到屏幕的任意矩形区域,
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wine
2001-08-16
打赏
举报
回复
不好意思问题找到了:
pbMem[i*3] = clrr;
pbMem[i*3+1] = clrg;
pbMem[i*3+2] = clrb;
偶还是希望对SetDIBitsToDevice()更深点了解,哪位大虾有这方面的资料请
MIAL:zh_x_l@263.net
或告知 ths :)
这作为小游戏的屏幕刷新挺好的
wine
2001-08-15
打赏
举报
回复
那bmiColors[]在24、32位时填何内容,SetDIBitsToDevice()速度确实快,里面的参数太费解,填得不对,
没看出效果,哪为大侠有相关源码MIAL:zh_x_l@263.net或贴出来让偶研究研究,先谢了
c_z_y
2001-08-15
打赏
举报
回复
bmiColors[]在256色时是调色版,在16位色的时候,是颜色掩膜。24,32色没有意义。
c_z_y
2001-08-15
打赏
举报
回复
bmiColors[]是调色版,在16位色的时候,是颜色掩膜。
gamedragon
2001-08-15
打赏
举报
回复
24、32位色不需要调色板,图像数据里就直接包含了颜色的RGB分量
wine
2001-08-15
打赏
举报
回复
我试了在一对话框中画东西,但画出的矩形是黑的或灰的且矩形上3分之2部分一直是黑的,
下3分之1一直是按灰度方式闪烁,而没出现设想的彩色块,现附上关键源码,哪位大侠帮忙看看
//初始值
BITMAPINFOHEADER bmhead =
{sizeof(BITMAPINFOHEADER),
400, //宽
300, //高
1,
24, //24位真彩
BI_RGB, //非压缩
0,0,0,0,3000
};//不知此结构值是否有问题,未给bmiColors赋值
rgbBMINFO.bmiHeader = bmhead;
void* pviMem = ::GlobalAlloc(GMEM_FIXED,400*300*3);//分配全局内存
SetTimer(1, 50, NULL);
iWidth=400;
iHight=300;
//主要刷新工作
void CVideoDlg::OnTimer(UINT nIDEvent)
{
HDC hdc = this->GetDC()->GetSafeHdc() ;
long i,j;
BYTE clrr,clrg,clrb;
byte* pbMem = (byte*)pviMem;
if(!bStop)
{if(hdc)
{
clrr = rand();
clrg = rand();
clrb = rand();
for(i = 0; i <= 400*300; i++)//iWidth*iHight
{
pbMem[i] = clrr;
pbMem[i+1] = clrg;
pbMem[i+2] = clrb;
}
SetDIBitsToDevice(hdc,5,0,iWidth,iHight,0,
iHight,iHight,iHight,pviMem,&rgbBMINFO,DIB_RGB_COLORS);
}
CDialog::OnTimer(nIDEvent);
}
gamedragon
2001-08-14
打赏
举报
回复
用SetDIBitsToDevice()函数,只需要建一个BITMAPINFO结构
wine
2001-08-14
打赏
举报
回复
内存里的东西有近1M,只有数据没结构信息,我不想用CBITMAP类再耗一块存储区,各位谁编过类似程序的请指教
wine
2001-08-14
打赏
举报
回复
谁知道BITMAPINFO结构中RGBQUAD bmiColors[]是起什么作用的,我理解为使用到的颜色数组,如果24位的图片启不要分配2^24,本人理解有误请指教,
c_z_y
2001-08-14
打赏
举报
回复
SetDIBitsToDevice()速度极快,据我猜测,可能是用DMA方式传输内存到显存。不需要另外的
数据存储区。
wine
2001-08-14
打赏
举报
回复
gamedragon(gamedragon) 用SetDIBitsToDevice()需要额外的存储开销吗?如果还要另外的数据存储区的话,就得将1M的东西再拷贝一下,速度肯定快不了。
[音乐分享]发现自己原来的<雌雄同体>
这是五月天为"同志"而谱的一首很"断背"的歌曲 虽然我不是"同志" 也没有"断背"情结, 但是每次听到这歌 身体里的细胞却总会不自觉的跟着跳跃起来 我喜欢把歌曲里的"雌雄同体"延伸为 "我偶尔复杂多变的人格" 我喜欢把歌曲里那些对"同志"的偏见, 延伸为"世俗对我的不解与排斥" 于是 这首歌 就变成了 另一种宣言. [
我会永远记得那个十月里的 五月天
我一直在想,我该用怎样的方式来记录我在10月20日那天所感受到的一切. 想了很久,我依然一个字都写不出. 文字 照片 声音 视频... 没有任何方式能够表达出我在20日晚所经历过的疯狂与感动. 就像一位五迷在网上的留言写的那样:" 从五月我就开始猜想十月二十会是怎麽一副模样 以为自己已经把所有的东西都想过一遍 就不会那麽不堪一击 可是 还是... 有一种演唱会不...
跳舞的伤感心情日志:你恋或者不恋,爱就在那里
跳舞的伤感心情日志:你恋或者不恋,爱就在那里 — 跳舞的伤感心情日志:你恋或者不恋,爱就在那里 裙下无匍匐的小兵,库房没有存货,自己心里头连个可念想的人也没有——到目前为止, 我在爱情上仍然没有任何斩获,创造了自己连剩21年的纪录。 即使如此,我却常常被迫谈论关于爱情的话题,或是自己的择偶标准,越谈越耽误婚恋大事。所谓“清谈误国”就是这个意思。 我身边的人都谈了恋爱。姑娘们打电
【Reading Notes】(2)
社交媒体在诞生之初,本意是做一个最为透明、最为公平、普惠大众的公众传播平台,但由于算法基于人类偏好的推荐,及带有特定企图的传播者作祟,造成社交网络的破碎凌乱,煽动的、谬误的、偏见的信息被放大传播,不仅没法帮助我们理性
讨论
,也欠缺帮助人们做出最佳集体决策的能力。用最优秀的人去培养更优秀的人,基础研究+基础教育,对未来的投资,教师,马太效应,越来越差。北京,
中
官村(
中
关村),太监老了被轰出宫,大太监买了一块地,做坟地,保福寺北城,官宦,教授,富人,知识分子,说的基本就是普通话,南城,穷人(老北京),
双系统启动项修复文件-下载即用.zip
源码链接: https://pan.quark.cn/s/a4b39357ea24 双系统引导修复机制是为那些在个人计算机上部署了两个操作系统(例如Windows与Linux、Windows的不同版本组合等)的用户群体量身定制的辅助程序。在常规操作过程
中
,由于某些因素的影响,比如系统更新、驱动程序安装或意外操作,可能会导致双系统的启动选择界面出现故障,无法正常选择需要启动的操作系统。在此情形下,需要一款操作极为简便的双系统启动菜单自动修正工具来处理这一挑战。 标题
中
所指的“双系统引导修复机制”指的是这一工具的核心作用,它专门致力于修复引导
区域
或MBR(主引导记录),而这两个部分是计算机在启动时用来加载操作系统的核心组件。引导修复过程通常包括对BIOS或UEFI设置进行校准,以及修复或重建BCD(启动配置数据)存储,这在Windows操作系统环境
中
显得尤为重要。 描述
中
提及的“操作简便修复”表明该工具在设计上非常注重易用性,无需用户拥有专业的计算机技术背景。用户只需遵循基础的步骤指引,即可自动完成启动菜单的修正任务,显著简化了故障诊断的流程。 标签“双系统启动菜单自动修复工具”进一步突出了该软件的主要职能,即解决因各种原因引发的双系统启动菜单失效状况。此类工具通常会对已安装的操作系统进行扫描,识别出所有可用的启动选项,并重新构建准确的引导菜单,使用户能够在启动阶段自由选择要执行的系统。 关于压缩文件内的“bootitng”文件,很可能是一个用于实施引导修复流程的程序组件。BootIt Next Generation(BING)是一个广为人知的引导管理解决方案,其部分模块可能以“bootitng”命名,负责处理启动项的管理与修复工作。该文件在执行修复过程
中
具有核...
游戏开发
8,324
社区成员
23,685
社区内容
发帖
与我相关
我的任务
游戏开发
游戏开发相关内容讨论专区
复制链接
扫一扫
分享
社区描述
游戏开发相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章