Windows mobile 如何在wince 6.0中获得alphablending?如何在wince 6.0中删除背景图像?
如何在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 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,
谢谢你,因为在桌面上工作并不意味着它可以在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
);