描述:
在窗口中添加了一个FLASH空间,导入FLASH后想让FLASH空间中的某个颜色透明
HWND hWnd = m_pFlash.m_hWnd;
long res=GetWindowLong(hWnd,GWL_EXSTYLE);
SetWindowLong(hWnd,GWL_EXSTYLE,res|0x80000);
HINSTANCE hInst = LoadLibrary(_T("User32.DLL"));
if(hInst)
{
typedef BOOL (WINAPI *MYFUNC)(HWND,COLORREF,BYTE,DWORD);
MYFUNC fun = NULL;
//取得SetLayeredWindowAttributes函数指针
fun=(MYFUNC)GetProcAddress(hInst, "SetLayeredWindowAttributes");// 获得函数地址
if(fun)
{
COLORREF co= RGB(255,255,255);
fun(hWnd,co,0,1);//这里老是返回参数错误
}
FreeLibrary(hInst);
}
直接用窗口句柄的话,可以把主窗口中的颜色透明,但是FLASH控件中的颜色还是不变
解决方案1:
我这边就这种现象,不过透明的flash在播放是有些毛边,这个我也不知道怎么处理掉了.
解决方案2: 怎么讲好呢,你可以这样实现:
COLORREF co= RGB(13,13,13); //设置成一个不常用的颜色
用上面的代码对窗口进行透明处理.
然后将flash控件的背景颜色设置成上面那个颜色,这样播放的flash是透明播放的.
某个颜色透明?什么意思