中易网

一个严重打击初学者的问题,我只是想blt一张位图而已!

答案:2  悬赏:0  
解决时间 2021-01-14 09:49
  • 提问者网友:箛茗
  • 2021-01-14 06:02
一个严重打击初学者的问题,我只是想blt一张位图而已!
最佳答案
  • 二级知识专家网友:有你哪都是故乡
  • 2021-01-14 06:40
没看到调用lock锁定离屏缓冲 
调用Lock锁定之后向缓冲写入像素才会成功..
之后也一定要解锁后Blt才可以..不然会返回 0x887601AE (DDERR_SURFACEBUSY)
 (表面访问被拒绝 ..已经被另一个线程锁定.)


    lpddsback->Lock(NULL,&ddsd,DDLOCK_SURFACEMEMORYPTR | DDLOCK_WAIT,NULL) ;
     
       code..//绘图到离屏表面


lpddsback->Unlock(NULL) ;//绘图完成解锁Blt才有效果..
    lpddsprimary->Blt(&rect,lpddsback,NULL,DDBLTFAST_NOCOLORKEY,NULL) ;
全部回答
  • 1楼网友:行路难
  • 2021-01-14 07:00
楼主解决没 ? 我也碰到这问题了,无法理解为什么会blt失败。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息