Windows mobile 如何在wince 6.0中获得alphablending?如何在wince 6.0中删除背景图像?

Windows mobile 如何在wince 6.0中获得alphablending?如何在wince 6.0中删除背景图像?,windows-mobile,windows-ce,winapi,Windows Mobile,Windows Ce,Winapi,如何在wince 6.0中获得n次特定子窗口的alphablend图像? 例如,如果我有一个音量条形图窗口,用于音量增加和减少,在点击音量+或音量-按钮时会发生变化,那么如果我想在wince 6.0中将音量条形图窗口保持为alphablend图像,那么我应该如何获得?因为我在win32应用程序中进行了尝试,并且我能够这样做,但在wince 6.0中无法执行相同的操作 我使用了以下功能在wince 6.0中为volBarGraph绘制图像 无效调整alphablendimage(intimgid,

如何在wince 6.0中获得n次特定子窗口的alphablend图像? 例如,如果我有一个音量条形图窗口,用于音量增加和减少,在点击音量+或音量-按钮时会发生变化,那么如果我想在wince 6.0中将音量条形图窗口保持为alphablend图像,那么我应该如何获得?因为我在win32应用程序中进行了尝试,并且我能够这样做,但在wince 6.0中无法执行相同的操作

我使用了以下功能在wince 6.0中为volBarGraph绘制图像 无效调整alphablendimage(intimgid,char axis\u id)

{

}

此处“handles”是“handles”类型的对象,“parent”是“HWND”类型的“handles”的数据成员

我的结构“句柄”如下所述 结构句柄

{

})

//下面的函数用于调用volBarGraph的AdjustAlphablendImage函数。 调整alphablendimage(

如何在wince 6.0中擦除背景图像?

请回复


谢谢你,因为在桌面上工作并不意味着它可以在Windows CE下工作。此外,由于CE是一个模块化操作系统,如果它可以在一台设备上工作,也不意味着它可以在另一台设备上工作

是否将alpha混合添加到CE图像中? 系统的显示驱动程序是否支持alpha混合

这两个问题的答案必须是“是”,然后你才能继续前进


如果答案是“是”,那么我们需要查看您已经尝试过的代码。

我从文档中看不出AlphaBlend为什么不适用于WinCE的任何原因——不过CE有时喜欢给您一个惊喜!
另一种方法,虽然有点笨拙,但基本上可以保证有效,就是回到旧的三元光栅操作码,并进行部分blit,即使用画笔修改blit,使其不显示所有像素。这是我从Win 3.1天以来使用的一种旧技术,据我所知,它在所有CE平台上都能工作-因此,挖出你的旧Petzold编程手册,看看你能找到什么!

(版主标志用于系统管理功能;版主不一定能为你的问题提供额外的帮助)告诉我们您正在使用的语言在这里会很有帮助。我正在使用c语言实现AlphaBlending AlphaBlend调用返回什么?我看到很多调用,并且没有检查任何返回值。它返回true或false。当我调用它时,会在父窗口上的特定坐标处打印图像,并具有AlphaBlend效果。是的,我添加了而且它支持alpha混合。我想知道如何实现这一点我修改了我的问题以便更好地理解…在调用AdjustAlphablendImage之前,我必须先删除背景图像…这样我才能在相同的坐标上粘贴正确的alphablend图像..点击按钮ev时是否仍要擦除背景图像每次。因为每次我点击按钮,即vol+或vol-,alphablend图像每次都会变暗,因为没有使图像看起来像alphablend。只有在开始时,第一个图像看起来是正确的alpha混合。之后,它会在点击按钮时变暗,使alphablend图像显示为正常图像。因此,如果我可以清除背景那么这个东西就可以工作了…请回复,非常感谢
LogEntry(L"Entered in AdjustAlphablendImage Function");
BLENDFUNCTION bf;
bf.BlendOp=AC_SRC_OVER;
bf.BlendFlags=0;
bf.SourceConstantAlpha=55;
bf.AlphaFormat=0;
HBITMAP bmp = LoadBitmap(handles.hInstance, 
    MAKEINTRESOURCE(imgId));
HDC wdc = GetWindowDC(handles.parent);
HDC tdc = CreateCompatibleDC(wdc);
SelectObject(tdc,bmp);
AlphaBlend(wdc ,
    imgs[axis_id].x,
    imgs[axis_id].y,
    imgs[axis_id].width ,
    imgs[axis_id].height,
        tdc ,0 ,0 ,
    imgs[axis_id].widthSrc, 
    imgs[axis_id].heightSrc,
            bf);
DeleteDC(wdc);
DeleteDC(tdc);
DeleteObject(bmp);
ReleaseDC(handles.parent,wdc);
LogEntry(L"Exited from AdjustAlphablendImage Function");
    HINSTANCE hInstance;
HWND parent;
HWND volUp;
HWND volDown;
HWND volOnOff;
HWND chUp;
HWND chDown;
HWND tvOnOff;
HWND tvTitle;
HWND volBarGraph; // I am doing alphablending on this...................
HWND chNo;
HWND chNoBcg;
HWND audioStatus;
HWND subTitleStatus;
HWND message;
HWND prevHandle;
WNDPROC oldButtonWndProc;
HWND pressedButton;
int prevButtonId;
char prevButtonAxis;
char screenMode;
                   volumeStatus.volume + volumeStatus.status + INITIAL_VOLUME,  // This is used for taking proper image on particular click of vol+ or vol- Button.
                   AXIS_VOL_BAR_GRAPH                     
                  );