回 帖 发 新 帖 刷新版面

主题:菜鸟求助:关于DX装载位图的一个问题

当我向后备表面装载的一个800*600*24位图,把它BLT到主表面时能够成功;但从离屏表面装装载的位图如32*32*24的位图BLT到后备表后,可以移动,但不能够正常在主表面显示。是不是要做色彩转换,我也做过这方面的尝试,但没成功。
    另外,位图不能够很好的跟随鼠标移动。
    请知道的指教一下,先谢谢了。

回复列表 (共5个回复)

沙发

在全屏独占模式下,先blt到后台页面,再flip到主页面。
在窗口模式下,直接从离屏页面blt到主页面即可。

不知道你是如何让位图跟随鼠标移动的?

板凳

我是这么做的,只是位图不能够正常显示出来。
请问你有QQ吗?我的QQ是276592635。

3 楼

楼主能不能把你装载和显示的函数帖出来。

4 楼

是不是你的位图的Left或Top的值小于0 或  Bottom或Right的值大于屏幕的高和宽而你没有对位图进行相应的剪切 导致位图在屏幕边缘附近突然消失

5 楼

在filp的时候

    RECT Window;
    POINT pt;
    GetClientRect(hwnd, &Window);
    pt.x=pt.y=0;
    ClientToScreen(hwnd, &pt);
    OffsetRect(&Window, pt.x, pt.y);

    HRESULT rval=lpDDSFront->Blt(&Window, lpDDSBack, NULL, DDBLT_WAIT, NULL);
    if(rval == DDERR_SURFACELOST) lpDDSFront->Restore();
这样就可以了 
让离屏页面的坐标位置和主页面相同 

我来回复

您尚未登录,请登录后再回复。点此登录或注册